Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1527

 
MakarFX:

utiliser les relevés pour construire la logique de votre indicateur

Non, ça ne marche pas comme ça.

ici . 1 indicateur montre toujours un nombre - 2147483647. dès qu'un signal est reçu, il montre un nombre différent sur un des tampons. C'est ce que j'ai compris.

Mais le second indicateur affiche toujours soit 0 soit 2147483647 sur 2 tampons simultanément.

Dossiers :
 
Je crois que j'ai compris. C'est censé être comme ça
  
     if (in1b<2147483647 && in2b>0 && in2b<2147483647)
           Sell[i]=low[i];
     if (in1s<2147483647 && in2s>0 && in2s<2147483647)
            Buy[i]=high[i];
 
jarikn:
Je crois que j'ai compris. Cela devrait être comme ceci

aucune spécification n'est nécessaire dans ce cas, c'est-à-dire juste si >0

 
MakarFX:

dans ce cas les spécificités ne sont pas nécessaires, c'est-à-dire juste si >0

mais que se passe-t-il dans les tampons quand il n'y a pas de signal. je ne pense pas que >0 fonctionnera ici. mais je vais essayer maintenant.

Dossiers :
 
jarikn:

Mais voici ce qu'il y a dans les tampons lorsqu'il n'y a pas de signal. Je ne pense pas que >0 fonctionnera ici, mais je vais essayer maintenant.

le premier indicateur a la valeur EMPTY_VALUE lorsqu'il n'y a pas de signal.

allez comme ceci

   if(iCustom(NULL,0,"in1",1,i)>0&&iCustom(NULL,0,"in1",1,i)<Bid*2&&iCustom(NULL,0,"in2",0,i)>0) // индикатор стрелка вниз

   if(iCustom(NULL,0,"in1",0,i)>0&&iCustom(NULL,0,"in1",0,i)<Bid*2&&iCustom(NULL,0,"in2",1,i)>0) // индикатор стрелка вверх
 

Veuillez m'aider à résoudre ce problème avec le testeur. Je teste l'ouverture de position pour le CME sur les futures EUR/USD

A la hausse du marché dans le testeur, j'ouvre une position longue sur la baisse avec mon stop et le trade obtient un ticket #2. Le marché monte et la position suivante est ouverte avec un stop et le trade obtient le ticket n°3 dans le testeur.

Lorsque le marché va à l'encontre de la position n°3 et atteint son stop, idéalement, la position n°3 devrait clôturer au stop, et la position n°2 devrait rester là, en attendant que le prix atteigne le stop n°2. Mais pour une raison quelconque, lorsque l'arrêt n°3 se déclenche, le testeur ferme également la position n°2.

Le code pour mql5 est

MqlTradeRequest request={};
MqlTradeResult  result={};
                                 
request.action = TRADE_ACTION_DEAL; //Вход рынку
request.symbol = Symbol();
request.volume = 1.0; //Кол-во фьючей
request.type   = ORDER_TYPE_BUY; //Купить
request.price  = SymbolInfoDouble(Symbol(),SYMBOL_ASK);   
request.sl     = NormalizeDouble(sl,5); // Стоп

bool check     = OrderSend(request,result);


 
NastyaMaley:

Veuillez m'aider à résoudre ce problème avec le testeur. Je teste l'ouverture de position pour le CME sur les futures EUR/USD

A la hausse du marché dans le testeur, j'ouvre une position longue sur le breakout avec mon stop et le trade obtient le numéro 2. Le marché a augmenté et la position suivante est ouverte avec un stop, le trade obtient le numéro 3 dans le testeur.

Lorsque le marché va à l'encontre de la position n°3 et atteint son stop, l'idée est que le n°3 doit clôturer au stop et que le n°2 doit rester là, en attendant que le prix atteigne le stop n°2. Mais pour une raison quelconque, lorsque l'arrêt n°3 se déclenche, le testeur ferme également la position n°2.

Le code pour mql5 est


Je ne connais pas mql5, mais je ne vois pas où il y a un choix d'ordre de fermeture
 
MakarFX:

le premier indicateur a une valeur de EMPTY_VALUE lorsqu'il n'y a pas de signal

devrait être fait comme ceci

Oui, c'est vrai. C'est tout. Merci beaucoup.

 

Je pense que la raison du comportement du testeur est devenue claire. Le type de compte de démonstration sur lequel le robot est testé est Netting. Par conséquent, si le stop spécifié lors de l'ouverture de la position n°3 est déclenché, il fermera la totalité du volume de la position. Par conséquent, à l'arrêt du n° 3, il ferme également le n° 2, même si ce dernier avait son propre arrêt distinct défini lors de son ouverture.

Avec le type de compte Hedging, tout fonctionnerait comme dans le bon vieux mql4.

 
NastyaMaley:

Veuillez m'aider à résoudre ce problème avec le testeur. Je teste l'ouverture de position pour le CME sur les futures EUR/USD

A la hausse du marché dans le testeur, j'ouvre une position longue sur la baisse avec mon stop et le trade obtient un ticket #2. Le marché monte et la position suivante est ouverte avec un stop et le trade obtient le ticket n°3 dans le testeur.

Lorsque le marché va à l'encontre de la position n°3 et atteint son stop, idéalement, la position n°3 devrait clôturer au stop, et la position n°2 devrait rester là, en attendant que le prix atteigne le stop n°2. Mais pour une raison quelconque, lorsque l'arrêt n°3 se déclenche, le testeur ferme également la position n°2.

Le code pour mql5 est le suivant

Vous ne devez pas utiliser de butées. Au lieu d'utiliser des stops, nous devrions placer des ordres en attente dans la direction opposée.

Raison: