Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 911
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Les gars, aidez-moi s'il vous plaît ! !!
Est-il plus facile de faire une capture d'écran et de la poster ici que de copier le texte de l'EA ? Pensez-vous que quelqu'un va le saisir manuellement dans son ME à partir d'une capture d'écran et essayer de le comprendre ?
Si le compilateur indique qu'il faut vérifier le résultat de la fonction, il faut le vérifier. Ce n'est pas difficile :
if(S1a == S1b && S1a<20.0000 && S1b<20.0000 )
{OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), Slippage, SL, TP, NULL, 0, 0,clrBlue);
MyOrderStateB = 1;
if(!OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), 3, SL, TP, NULL, 0, 0,clrBlue))
Print("Opening Buy error #", GetLastError());}
else Sleep(2);
Merci. Vrai ou faux, cependant ? L'avertissement s'affiche toujours.
Bonjour !
Dans mon Expert Advisor, le chandelier précédent est vérifié et si les conditions le permettent, la position est ouverte, sinon, elle ne l'est pas. Le problème est que la position est ouverte avant que la condition de la bougie précédente ne soit vérifiée. Ensuite, je vois la position s'ouvrir dans le journal, puis je vois qu'elle ne devrait pas être ouverte. Comment le réparer ?
autre Sleep(2) ;
Et avec relative il donne la même chose(
if(S1a == S1b && S1a<20.0000 && S1b<20.0000 )
{OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), Slippage, SL, TP, NULL, 0, 0,clrBlue);
MyOrderStateB = 1;
if(!OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), 3, SL, TP, NULL, 0, 0,clrBlue))
Print("Opening Buy error #", GetLastError());}
else Sleep(2);
Merci. Vrai ou faux, cependant ? L'avertissement s'affiche toujours.
Faux, vous n'avez pas besoin d'appeler OrderSend deux fois. Et nous devrions calculer le SL et le TP par rapport au prix, et non en pips. Et nous devrions normaliser non pas les prix Ask et Bid ouverts, mais le résultat des calculs SL et TP.
En général, "apprendre, apprendre et encore apprendre" ))))
Faux, pas besoin d'appeler OrderSend deux fois. Et les SL et TP doivent être calculés par rapport au prix, et non en points. Et nous devons normaliser non pas les prix d'ouverture Ask et Bid, mais le résultat des calculs SL et TP.
En général, "apprendre, apprendre et encore apprendre" ))))
Encore une fois, merci beaucoup !
Maintenant il y a un problème, l'EA ouvre plusieurs ordres à la suite, et non un seul comme je le voulais(
int start()
{ S1a = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_MAIN, 1), 0);
S1b = NormalizeDouble(iStochastic(NULL, 0, S1_period, 3, S1_slowing, MODE_SMA, 1, MODE_SIGNAL, 1), 0);
if(MyOrderStateB == 1)Sleep(300000);
else MyOrderStateB = 0;
if(MyOrderStateS == 1)Sleep(300000);
else MyOrderStateS = 0;
if(S1a == S1b && S1a<20.0000 && S1b<20.0000 )
if(!OrderSend(Symbol(), OP_BUY, OrderValue, NormalizeDouble(Ask, Digits), Slippage, Bid - SL * Point, Ask + TP * Point, NULL, 0, 0,clrBlue))
Print("Opening Buy error #", GetLastError());
else Sleep(2);
MyOrderStateB = 1;
if(S1a == S1b && S1a>80.0000 && S1b>80.0000 )
if(!OrderSend(Symbol(), OP_SELL, OrderValue, NormalizeDouble(Bid, Digits), Slippage, Ask + SL * Point, Bid - TP * Point , NULL, 0, 0,clrRed))
Print("Opening Sell error #", GetLastError());
else Sleep(2);
MyOrderStateS = 1;
return(0);}
J'ai constaté un comportement étrange dans le testeur de stratégie. Mon EA fixe et traque les ordres stop en attente. Il se passe ce qui suit. Le conseiller expert fixe un Stop d'achat et un Stop de vente à 30 pips du prix actuel (symbole - GbpUsd. Quatre chiffres. Niveau minimal = 3 pips). Au bout d'un moment, il les fait remonter en suivant le marché, s'ils ne se sont pas déclenchés. Donc ce que je vois. la modification est réussie, la modification est réussie, et puis à un moment donné les claquements et l'erreur #1 apparaissent. C'est-à-dire que tout allait bien, l'EA faisait les mêmes actions et soudain cette erreur apparaît. Tous les prix ont été normalisés en chiffres. En général, toutes les valeurs qui sont transmises à l'entrée de la fonction OrderModify() sont normalisées !
Quelle peut être la raison d'un tel comportement de l'EA dans le testeur ?