Questions des débutants MQL5 MT5 MetaTrader 5 - page 494
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
Jusqu'à hier, mon EA n'a ouvert qu'un seul ordre à la fois et le prochain ne s'ouvrira pas tant que je n'aurai pas placé un ordre. Maintenant, comment faire pour que mon EA ouvre des ordres lorsque la barre précédente s'est ouverte au-dessus (au-dessous) du canal ?
Si vous analysez ce fragment de code, alors, selon ce code, si la fonctionCountTrades() renvoie zéro, la condition if (CountTrades()==0) CheckForOpen()sera exécutée, et la fonctionCheckForOpen() sera appelée.Au tick suivant, si l'ordre a été ouvert, la fonctionCountTrades() doit retourner 1, puis la condition else est remplie.
S'il apparaît que CountTrades()<max_trades, la fonctionCheckForOpen() sera exécutée une nouvelle fois.Selon le code, la valeur de la variable max_trades est égale à 3. Ainsi, vous aurez 4 ordres ouverts.
Si l'EA n'ouvre pas les ordres correctement, vérifiez la logique, dans laquelle vous définissez les conditions d'ouverture des positions dans la fonction CheckForOpen(). Et vérifiez également les conditions de temps si (CurrTime < EaStartTime || CurrTime >= EaEndTime). Si j'étais vous, j'utiliserais la fonction if (TimeHour(TimeCurrent())) = heure de départ && TimeMinute(TimeCurrent()) = minutes de départ ). L'heure et les minutes sont définies dans des variables de type int ou uint.
Si l'Open Bar numéro 1 est au-dessus ou au-dessous du canal.
Ainsi, vous aurez 4 ordres ouverts.
Si l'EA n'ouvre pas les ordres correctement, vérifiez la logique, où vous spécifiez les conditions dans lesquelles les positions doivent être ouvertes dans la fonction CheckForOpen(). Et vérifiez également les conditions de temps si (CurrTime < EaStartTime || CurrTime >= EaEndTime). J'utiliserais la fonction if (TimeHour(TimeCurrent()) = heure de départ && TimeMinute(TimeCurrent()) = minutes de départ ). L'heure et la minute sont définies dans des variables de type int ou uint.
Je voulais ouvrir 3 ordres mais ce n'était pas ce que je souhaitais ; je voulais jusqu'à trois, mais un ordre pour chaque nouvelle barre.
Il n'y a pas de problème de temps, il fonctionne dans une période de temps strictement spécifiée.
Je voulais jusqu'à trois ordres, mais un ordre pour chaque nouvelle barre. Il arrive que plusieurs barres d'affilée donnent des signaux positifs.
Il n'y a pas de problème de temps, il fonctionne dans une période de temps strictement spécifiée.
2016.01.13_05:14AM. Bonjour M. Karputov ! J'ai écrit dans MQL4
.mq4, on a le fichier .ex4. Mais cela ne fonctionne pas dans le testeur de stratégie. Final
était d'écrire un EA pour MT4. Dans MQL5, j'ai obtenu .mq5 et
Les fichiers .ex5. Et le fichier .ex5 a ouvert des métiers. La quatrième version est différente de
La quatrième version a quelques différences avec la cinquième, et je ne suis pas encore un bon programmeur MQL, c'est pourquoi j'ai obtenu de mauvais résultats.
Je n'ai pas compris ce qui ne va pas maintenant, le fichier journal du testeur a été enregistré. Я
Je vais essayer de le traduire. En attendant, je vous demande de me dire
Qu'est-ce qui ne va pas avec le code du programme ? Pendant que vous répondez, je vais essayer
pour le découvrir.
J'ai été surpris de trouver dans ma quatrième version de l'éditeur l'option d'écrire
J'étais sur le point de l'écrire. Mais je ne l'ai pas écrit. Je joins
les fichiers journaux du testeur et une capture d'écran. 05:30 MSC.
2016.01.13_05:14AM MOSCOW TIME. Bonjour M. Karputov ! J'ai écrit en MQL4
.mq4, on a un fichier .ex4. Mais cela ne fonctionne pas dans le testeur de stratégie.
Où puis-je trouver des descriptions d'erreurs ?
Je ne comprends pas ce que le compilateur n'aime pas, pourquoi il m'avertit ?
vérifier la précédence des opérateurs pour détecter une éventuelle erreur ; utiliser les parenthèses pour clarifier la précédence
if(Low[X]>PriceBuy && High[X]>PriceBuy ||
Low[X]<PriceBuy && High[X]<PriceBuy)
calcBarX++;
et ici
l'expression n'a aucun effet
for(calc_day;calc_day>0; calc_day--)
{
if(iLow(Symbol(),TF_3Day,calc_day)<iLow(Symbol(),TF_3Day,calc_day+1)) calc_day_OK++;
else break;
}
Où puis-je trouver des descriptions d'erreurs ?
Je ne comprends pas ce que le compilateur n'aime pas, pourquoi me prévient-il ?
En fait, outre le texte de l'erreur, le compilateur signale également le numéro de la ligne de code où se trouve l'erreur et sa position dans la ligne.