- Par exemple - le lot de négociation dans les paramètres = 0, l'EA ne peut pas ouvrir une transaction parce que le lot = 0 .
- Limitation du spread dans l'Expert Advisor, ne permet pas d'ouvrir des positions.
- Il n'y a pas vraiment de signaux pour ouvrir des positions pendant la période de test.
Et les contrôles que vous voyez seulement, votre code n'est pas attaché.
Exemples par milliers....
- Par exemple - le lot de négociation dans les paramètres = 0, l'EA ne peut pas ouvrir une transaction parce que le lot = 0 .
- Limitation du spread dans l'Expert Advisor, ne permet pas d'ouvrir des positions.
- Il n'y a pas vraiment de signaux pour ouvrir des positions pendant la période de test.
Et les contrôles que vous voyez seulement, votre code n'est pas attaché.
Exemples par milliers....
- Par exemple - le lot de négociation dans les paramètres = 0, l'EA ne peut pas ouvrir une transaction parce que le lot = 0 .
- Limitation du spread dans l'Expert Advisor, ne permet pas d'ouvrir des positions.
- Il n'y a pas vraiment de signaux pour ouvrir des positions pendant la période de test.
Et les contrôles que vous voyez seulement, votre code n'est pas attaché.
Exemples par milliers....
La validation du lot est là, les signaux sont bien là - c'est un netminder, pas de limitation de diffusion...
alors il y a 100500 options de plus.
le nettoyeur passe tranquillement le test du marché.
alors il y a 100500 options de plus.
le nettoyeur passe tranquillement le test du marché.
Je suis d'accord, mais pour une raison quelconque, pas celui-là :)
Il est interdit de discuter ici des bots du marché. Et vous ne le publierez pas dans le domaine public. Et il y a déjà 100500 sujets avec ce nom, ainsi que les raisons d'un tel sujet.
Quelqu'un peut-il expliquer pourquoi le marché renvoie cette erreur ? Tous les contrôles de l'EA sont en place...
Je comprends bien sûr l'essentiel - pas de commerce, mais pour quelle raison ?
Est-il si difficile d'utiliser la recherche de site et de créer 100500 copies de branche !
https://www.mql5.com/ru/search#!keyword=no%20trading%20operations&method=2&module=mql5_module_forum
- www.mql5.com
Je veux juste discuter du code :
double CheckVolumeValue(double volume) { double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN); if(volume<min_volume) { Print("Volume is less than the minimum"); return(min_volume); } double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX); if(volume>max_volume) { Print("Volume is greater than the maximum"); return(max_volume); } double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP); int ratio=(int)MathRound(volume/volume_step); if(MathAbs(ratio*volume_step-volume)>0.0000001) { Print("Wrong lot size"); return(min_volume); } if(volume<MarketInfo(Symbol(),MODE_MINLOT)) { Print("Trade stop invalid lot size"); Comment("Trade stop invalid lot size"); return(MarketInfo(Symbol(),MODE_MINLOT)); } return(volume); }
J'ai modifié le contrôle standard pour qu'il renvoie le bon lot au lieu d'une erreur...
Nous appelons cette fonction ici :
if(!OrderSend(Symbol(),cmd,CheckVolumeValue(Lot),NormalizeDouble(priceStep,Digits()),Slippage,0,0,"",magic,0))
Dans mon testeur et sur mon compte réel, ce robot fonctionne parfaitement ! Même lorsqu'un lot erroné est saisi, il renvoie toujours le lot correct et travaille encore...
Et vous savez où revient l'erreur 4051 ! C'est en général... !
Je veux juste discuter du code :
J'ai modifié la vérification standard pour qu'elle renvoie le bon lot au lieu d'une erreur...
Nous appelons cette fonction ici :
Dans mon testeur et sur mon compte réel, ce robot fonctionne parfaitement ! Même lorsqu'un lot erroné est saisi, il renvoie toujours le lot correct et travaille encore...
Et vous savez où revient l'erreur 4051 ! C'est en général... !
Je veux juste discuter du code :
J'ai modifié le contrôle standard pour qu'il renvoie le bon lot au lieu d'une erreur...
Nous appelons cette fonction ici :
Dans mon testeur et sur mon compte réel, ce robot fonctionne parfaitement ! Même lorsqu'un lot erroné est saisi, il renvoie toujours le lot correct et travaille encore...
Et vous savez où revient l'erreur 4051 ! C'est en général... !
double CheckVolumeValue(double volume) { double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN); if(volume<min_volume) { Print("Volume is less than the minimum"); return(min_volume); } double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX); if(volume>max_volume) { Print("Volume is greater than the maximum"); return(max_volume); } double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP); int ratio=(int)MathRound(volume/volume_step); if(MathAbs(ratio*volume_step-volume)>0.0000001) { Print("Wrong lot size"); return(min_volume); } if(volume<MarketInfo(Symbol(),MODE_MINLOT)) { Print("Trade stop invalid lot size"); Comment("Trade stop invalid lot size"); return(MarketInfo(Symbol(),MODE_MINLOT)); } return(volume); }Et il n'arrivera jamais à ce point
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Quelqu'un peut-il expliquer pourquoi le marché renvoie cette erreur ? Tous les contrôles de l'EA sont en place...
Je comprends bien sûr l'essentiel - il n'y a pas de commerce, mais quelle en est la raison ?