Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 51
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
Peut-être que je n'ai pas compris ma question.
Étant sur le graphique de la période M1, je veux remplir le tampon si sur la période M5, la ligne de l'indicateur " Stochastique " est maintenant au-dessus du niveau 55.
////////////////////////////////////////////////
for(int i=limit; i>=0; i--) {
int bar_sto2_0=iBarShift(Symbol(),TimeFrame2,iTime(Symbol(),TimeFrame2,i));
int bar_sto2_1=iBarShift(Symbol(),TimeFrame2,iTime(Symbol(),TimeFrame2,i+1));
double sto2_0=iStochastic(Symbol(),TimeFrame2,kperiod2,dperiod2,slowing2,MODE_LWMA,STO_CLOSECLOSE,MODE_MAIN,bar_sto2_0);
double sto2_1=iStochastic(Symbol(),TimeFrame2,kperiod2,dperiod2,slowing2,MODE_LWMA,STO_CLOSECLOSE,MODE_MAIN,bar_sto2_1);
if(sto2_0>55.0)
{
BufferUP[i]=low[i]-distance*MyPoint;
}
if(sto2_0<44.0)
{
BufferDN[i]=high[i]+distance*MyPoint;
}
Comment(sto2_0);
}
Dans le commentaire la valeur actuelle est correcte avec M5, mais sur l'historique les flèches mises pas sur condition, chaos.
Qu'est-ce que ça peut être ?
Dans le " sous-sol", le stochastique de M5
Les flèches sont encerclées pas selon le signal
J'écris un Conseiller Expert qui place simultanément deux StopOrdres, un à la vente et un à l'achat.
Comment puis-je écrire la condition qui fait que lorsqu'un StopOrder se déclenche, le second (opposé) est supprimé ?
Merci.
J'écris un Conseiller Expert qui place simultanément deux StopOrdres, un à la vente et un à l'achat.
Comment puis-je écrire la condition qui fait que lorsqu'un StopOrder se déclenche, le second (opposé) est supprimé ?
Merci.
La condition est simple. Lorsqu'un StopOrder se déclenche, une position apparaît sur le marché, cela signifie que nous devons suivre cette position et si elle existe, nous devons supprimer l'ordre opposé.
Ceci est un morceau de code pour la réflexion)
bool b, s;
switch(op) {
case OP_BUY : b=ExistPositions(sy, OP_BUY , mn); break;
case OP_SELL: s=ExistPositions(sy, OP_SELL, mn); break;
}
if(b) {
DeleteOrders(sy, OP_SELLLIMIT, mn, cl);
DeleteOrders(sy, OP_SELLSTOP , mn, cl);
}
if(s) {
DeleteOrders(sy, OP_BUYLIMIT, mn, cl);
DeleteOrders(sy, OP_BUYSTOP , mn, cl);
}}
Vitaly Muzichenko, d'après ce que je comprends, nous devons maintenant ajouter les fonctionsExistPositions etDeleteOrders.
Vitaly Muzichenko, d'après ce que je comprends, nous devons maintenant écrire les fonctionsExistPositions etDeleteOrders.
Tu n'as pas besoin de les écrire, ils sont tous deuxprêts à l'emploi.
Eh bien..., à des fins éducatives, c'est assez utile...
Pour des raisons pratiques, il est très coûteux d'exécuter des cycles dans chaque fonction.
Eh bien..., pour la formation, c'est très utile...
Pour des raisons pratiques, il est très coûteux d'exécuter des cycles dans chaque fonction.
Que faire si le stop/stop est de 200
mais
tp=NormalizeDouble((price+(TakeProfit*_Point)),Digits) ;
sur un dollar-yen rapportera 317.000 au taux de change de 117.000
le résultat attendu est 117.200
Que faire si le stop/stop est de 200
mais
tp=NormalizeDouble((price+(TakeProfit*_Point)),Digits) ;
sur un dollar-yen rapportera 317.000 au taux de change de 117.000
le résultat attendu est 117.200
Pourquoi tant de parenthèses ? C'est une question de goût, bien sûr, mais c'est toujours trop.
tp=NormalizeDouble(price+TakeProfit*_Point,_Digits) ;
Les valeurs sont substituées de manière incorrecte si le résultat est incorrect dans la sortie, car cette ligne de code calculera tout correctement, même avec des parenthèses supplémentaires.