[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 66

 
mais en fait, j'essaie généralement d'utiliser GetLastError() de manière plus intensive dans de tels cas. Bien sûr, je ne suis pas un pro.
 
pepsi писал(а) >>
En fait, dans de tels cas, j'essaie généralement d'utiliser plus largement GetLastError(). Bien sûr, je ne suis pas un pro.

Je comprends que GetLastError() est censé dire pourquoi quelque chose n'est pas fait, par exemple si un thread est occupé, mais je n'ai rien en cours du tout !

 
Skydiver >> :

Je suppose que vous avez juste besoin de 3 ordres à ouvrir pour des instruments différents ? Pourquoi ne pas faire une variable drapeau par exemple

Dans les variables globales, créez

int flag=0;
string Symb;

///////////////

puis

int start()
{
if (условие открытия)
{flag=1;}

if (flag==1)
{
Symb="EURUSD";
OrderSend(Symb,...)///Открываем, переносим флаг во 2 состояние для открытия след ордера и
flag=2; ///выходим тк больше мы ни чего не можем сделать
return(0);
}

if (flag==2)
{
Symb="AUDUSD";
OrderSend(Symb,...)
flag=3;
return(0);
}

if (flag==3)
{
Symb="USDJPY";
OrderSend(Symb,...)
flag=0;//Возвращаем флаг в начальное состояние..
return(0);
}
return(0);}


Il serait également bon d'ajouter la vérification de l'ouverture et de ne déplacer le drapeau qu'une fois la vérification réussie.

Merci beaucoup, je vais essayer !

 
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print ("position longue ouverte au prix",OrderOpenPrice( )) ;
}

else Print ("Error opening long position :",GetLastError()) ;


renvoie une erreur si OrderSelect() échoue.


if(OrderSend(Symbol(), OP_SELLSTOP, getLots, Bid, 0, 0, 0, WindowExpertName(),
Magic, 0, Red) < 0)
Print("Error Open Sellstop = ",GetLastError()) ;


Renvoie une erreur si OrderSend() échoue.
 
il existe une théorie selon laquelle c'est OrderSend() qui échoue.
 
Estimés experts, qui a un indicateur qui montrerait sur chaque cadre temporel les niveaux des niveaux max-min pour 25 et 50 barres et si le prix rebondit de ce niveau dans n'importe quel cadre temporel dans cet endroit est resté une ligne et est resté jusqu'à ce que le prix le casse ?
 
pepsi писал(а) >>
Il existe une version où c'est OrderSend() qui ne fonctionne pas.

Une idée de la raison pour laquelle cela fonctionne sur le testeur ?

 
sten1981 >> :

Une idée de la raison pour laquelle cela fonctionne sur le testeur ?

Non. Mais ce que je dis, c'est qu'en utilisant la fonction Print de manière plus extensive (même si sans le GetLastError ultérieur),

vous pouvez voir beaucoup mieux comment l'EA opère.

 

par exemple comme ceci :




if(MA1>MA2 && StochPrev<StohCur && StochPrev<SignPrev )

{

print(" La condition pour un ordre d' achat est remplie") ;

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,",16895,0,DeepSkyBlue) ;

si(ticket>0)

}

 
alors la démonstration du journal de bord montrera tout plus clairement. On sait mieux où chercher l'erreur. Par toi-même...