Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 137
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
Bonjour à tous ! Comment rédiger ma condition ? J'ai besoin de placer un ordre stop-loss après que le prix ait dépassé la distance stop-loss.
pour Buy.....
si( )
{
------------
}
pour Sell.....
pour transférer le STB au Breakeven, le ticket d'ordre et la distance en pips sont passés dans la fonction
{
double sl=0.0;
if(OrderSelect(ticket,SELECT_BY_TICKET))
{
if(OrderType()==OP_BUY)
{
if(Bid>=OrderOpenPrice() && Bid-OrderOpenPrice()>=distance*_Point) sl=OrderOpenPrice();
if(OrderStopLoss()!=0 && OrderStopLoss()>=OrderOpenPrice())return;
}
if(OrderType()==OP_SELL)
{
if(Ask<=OrderOpenPrice() && OrderOpenPrice()-Ask>=distance*_Point) sl=OrderOpenPrice();
if(OrderStopLoss()!=0 && OrderStopLoss()<=OrderOpenPrice())return;
}
ResetLastError();
if(sl<=0)return;
if(!OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0))
{
int error=GetLastError();
rezult=StringConcatenate(OrderSymbol(),": error modifying StopLoss order ",OrderTicket()," ",TypeToStr(OrderType())," №- ",error);
Print(rezult);
}
}
}
...
Il n'y aura pas de peinture)
La logique de recherche elle-même est lourde, et je ne sais pas encore comment la rendre plus facile.
Vitaly, j'ai d'abord essayé de vous expliquer que ce ne sont pas les calculs qui ralentissent le testeur, mais les objets graphiques dans le test visuel. Faites-le comme il le conseille
Vous pouvez le rouler dans l'indicateur sans le dessiner). Et il est préférable de faire un choix. Hop - dessin, hop - pas de dessin:)
et voyez la différence de vitesse.
Ce n'est même pas le dessin qui est en retard, c'est simplement la présence de graphiques sur le graphique.
Ce n'est même pas le dessin qui ralentit les choses, c'est simplement la présence de graphiques sur le graphique.
Vitaly, j'ai d'abord essayé de vous expliquer que ce ne sont pas les calculs qui ralentissent le testeur, mais les objets graphiques dans le test visuel. Faites ce qu'il dit
et voyez la différence de vitesse.
Ce n'est même pas le dessin qui est en retard, c'est simplement la présence de graphiques sur le graphique.
Je teste la fonction sans aucun graphique, le graphique a été réalisé uniquement pour voir la justesse des calculs lors de l'écriture du code - il était purement technique et a été retiré du code depuis longtemps. Le tableau est vide pendant le test.
Ainsi, lorsque je n'ai pas de fonction, les tests "volent", mais si je connecte la fonction - ça va lentement.
P.S. En principe, je n'ai pas besoin d'objets graphiques. Oubliez les graphiques - je n'en ai pas et n'en aurai pas !
Je teste la fonction sans aucun graphique, le graphique a été fait uniquement pour voir la justesse des calculs lors de l'écriture du code - il était purement technique et a été retiré du code il y a longtemps. Le tableau est vide pendant le test.
Ainsi, lorsque je n'ai pas de fonction, les tests "volent", mais si je connecte la fonction - ça va lentement.
P.S. En principe, je n'ai pas besoin d'objets graphiques. Oubliez les graphiques - je n'en ai pas et n'en aurai pas !
Avez-vous regardé ici?
Cool, je vais essayer d'intégrer les fonctions dans l'EA. Je posterai le résultat plus tard.
Merci ! !!
S'il vous plaît, aidez-moi à comprendre comment écrire le code correctement pour obtenir l'indice des barres ouvertes à 4:00 et 15:00.
C'en est une.
int shift=Bars("EURUSD",PERIOD_CURRENT,some_time,TimeCurrent());
Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);
Ça fait deux.
int shift=iBarShift("EURUSD",PERIOD_CURRENT,some_time);
Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);
C'en est une.
int shift=Bars("EURUSD",PERIOD_CURRENT,some_time,TimeCurrent());
Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);
Ça fait deux.
int shift=iBarShift("EURUSD",PERIOD_CURRENT,some_time);
Print("index of the bar for the time ",TimeToStr(some_time)," is ",shift);