Auto-Forex

Auto-Forex

Le Forex Auto - Indicateurs et Experts Advisor sur Metatrader
 
Nous sommes le Mer 8 Fév 2012 19:41

Heures au format UTC




Poster un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
 Sujet du message: error 130 invalid stop tickets
MessagePosté: Jeu 27 Mai 2010 17:03 
Hors ligne
Touriste

Inscription: Mer 26 Mai 2010 09:57
Messages: 1
bonjour,

je suis encore nouveau dans le monde du Forex et Metatrader.

J'essaie de finaliser mon premier EA ( croisement de 2 moyennes mobiles ) pour la paire EURJPY.

Les backtests fonctionnent correctement mais lorsque j'utilise l'EA sur graphique au moment du croisement des 2 MM, le trade ne se fait pas et le message affiché indique: error 130 invalid stop ticket

Je n'arrive pas a trouver l'erreur.


Si quelqu'un peut m'aider, d'avance merci.




extern int period_SLOWLWMA = 20,
period_FASTLWMA = 7 ,
stoploss = 70,
takeprofit = 500,
risk = 20;
double LOT;
//--------------------------------------------------------------------
double SL,TP;
int TimeBar; //global variable
//--------------------------------------------------------------------
int start()
{
if (TimeBar==Time[0]) return(0);
if (TimeBar==0) {TimeBar=Time[0];return(0);}//first program run
double SLOWLWMA0 = iMA(NULL,0,period_SLOWLWMA,0,MODE_LWMA, PRICE_OPEN,0);
double FASTLWMA0 = iMA(NULL,0,period_FASTLWMA,0,MODE_LWMA,PRICE_OPEN,0);
double SLOWLWMA1 = iMA(NULL,0,period_SLOWLWMA,0,MODE_LWMA, PRICE_OPEN,1);
double FASTLWMA1 = iMA(NULL,0,period_FASTLWMA,0,MODE_LWMA,PRICE_OPEN,1);
if (SLOWLWMA0<FASTLWMA0&&SLOWLWMA1>FASTLWMA1) //Buy
{
TimeBar=Time[0];
TP = Ask + (takeprofit*Point);
SL = Ask - (stoploss*Point);
LOT = LOT(risk,1);
CLOSEORDER("Sell");
OPENORDER ("Buy");
}
if (SLOWLWMA0>FASTLWMA0&&SLOWLWMA1<FASTLWMA1) //Sell
{
TimeBar=Time[0];
TP = Bid - takeprofit*Point;
SL = Bid + stoploss*Point;
LOT = LOT(risk,1);
CLOSEORDER("Buy");
OPENORDER ("Sell");
}
return(0);
}
//--------------------------------------------------------------------
void CLOSEORDER(string ord)
{
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()==OP_BUY && ord=="Buy")
OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE);// Close Buy
if (OrderType()==OP_SELL && ord=="Sell")
OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE);// Close Sell
}
}
}
//--------------------------------------------------------------------
void OPENORDER(string ord)
{
int error;
if (ord=="Buy" ) error=OrderSend(Symbol(),OP_BUY, LOT,Ask,2,SL,TP,"", 1,3);
if (ord=="Sell") error=OrderSend(Symbol(),OP_SELL,LOT,Bid,2,SL,TP,"",-1,3);
if (error==-1) //operation failed
{
ShowERROR(error,0,0);
}
return;
}
//--------------------------------------------------------------------
void ShowERROR(int Ticket,double SL,double TP)
{
int err=GetLastError();
switch ( err )
{
case 1: return;
case 2: Alert("Error Connection with trade server absent ",Ticket," ",Symbol());return;
case 3: Alert("Error Invalid trade parameters Ticket ", Ticket," ",Symbol());return;
case 130: Alert("Error Invalid stops Ticket ", Ticket," ",Symbol());return;
case 134: Alert("Error Not enough money ", Ticket," ",Symbol());return;
case 146: Alert("Error Trade context is busy. ", Ticket," ",Symbol());return;
case 129: Alert("Error Invalid price ", Ticket," ",Symbol());return;
case 131: Alert("Error Invalid volume ", Ticket," ",Symbol());return;
case 4051:Alert("Error Invalid function parameter value ", Ticket," ",Symbol());return;
case 4105:Alert("Error No order selected ", Ticket," ",Symbol());return;
case 4063:Alert("Error Integer parameter expected ", Ticket," ",Symbol());return;
case 4200:Alert("Error ?????? ??? ?????????? ", Ticket," ",Symbol());return;
default: Alert("Error Object already exists " ,err," Ticket ", Ticket," ",Symbol());return;
}
}
//--------------------------------------------------------------------
double LOT(int risk,int ord)
{
double MINLOT = MarketInfo(Symbol(),MODE_MINLOT);
LOT = AccountFreeMargin()*risk/100/MarketInfo(Symbol(),MODE_MARGINREQUIRED)/ord;
if (LOT>MarketInfo(Symbol(),MODE_MAXLOT)) LOT = MarketInfo(Symbol(),MODE_MAXLOT);
if (LOT<MINLOT) LOT = MINLOT;
if (MINLOT<0.1) LOT = NormalizeDouble(LOT,2); else LOT = NormalizeDouble(LOT,1);
return(LOT);
}
//--------------------------------------------------------------------


Haut
 Profil  
 

Forex expert advisor error 130 invalid stop tickets

                                         
 

Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 1 message ] 

Heures au format UTC


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Template made by DEVPPL Flash Games - Traduction par: phpBB-fr.com
phpBB SEO

Accueil du site - Forum - RSS - Sitemap -