Auteur de l'idée — Maksim Zerkalov, auteur du code mq5 — barabashkakvn.
Lorsqu'une nouvelle bougie s'ouvre, le système de trading analyse la valeur des quatre bougies précédentes :
if(iHigh(1)>iHigh(2) && iHigh(2)>iHigh(3) &&
iHigh(3)>iHigh(4) && iOpen(1)>iOpen(2) &&
iOpen(2)>iOpen(3) && iOpen(3)>iOpen(4))
BuyOp=true;
if(iHigh(1)<iHigh(2) && iHigh(2)<iHigh(3) &&
iHigh(3)<iHigh(4) && iOpen(1)<iOpen(2) &&
iOpen(2)<iOpen(3) && iOpen(3)<iOpen(4))
SellOp=true;
iHigh(3)>iHigh(4) && iOpen(1)>iOpen(2) &&
iOpen(2)>iOpen(3) && iOpen(3)>iOpen(4))
BuyOp=true;
if(iHigh(1)<iHigh(2) && iHigh(2)<iHigh(3) &&
iHigh(3)<iHigh(4) && iOpen(1)<iOpen(2) &&
iOpen(2)<iOpen(3) && iOpen(3)<iOpen(4))
SellOp=true;
Une fois qu'une position est ouverte, la valeur de la variable "HalfLots" est vérifiée dans le bloc de suivi. En d'autres termes, le système vérifie s'il est possible de fermer partiellement une position rentable. Si "HalfLots==true", la position est alors fermée partiellement :
m_trade_partial.PositionClose(m_position.Ticket(),-1,half_volume);
Commentaire 0