[ARCHIVE] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 3. - page 66

 
vovan-gogan:

Quel est l'intérêt ? Le niveau SL est correct. Lorsque je règle la variable SL sur MA20 avec un décalage de 3, je sors le niveau SL par Alert et il est toujours au bon niveau. Je ne sais pas pourquoi le SL est supprimé avant d'atteindre le niveau SL.

Eh bien, si c'est important pour vous de ne pas régler le problème, mais de communiquer, alors je passe mon tour.
 
PapaYozh:

Non, si ce n'est pas pour régler le problème, mais pour communiquer, alors je passe mon tour.

Non, au contraire. Je vais suivre votre conseil. Voyons ce qui se passe.
 
Je suis confus par le fait que les deux types d'ordres BUYSTOP / SELLSTOP sont supprimés par la même condition, du moins ce sont des choses différentes. Je suppose qu'il existe un autre fragment de code similaire et qu'il supprimera tous les ordres en attente en série.
 
splxgf:
Je suis confus par le fait que les deux types d'ordres BUYSTOP / SELLSTOP sont supprimés par la même condition, du moins ce sont des choses différentes. Je suppose qu'il existe un autre fragment de code similaire et que tous les ordres en attente seront supprimés successivement.

Non. Pas d'un seul. Je viens de présenter une partie du fragment de code qui décrit le cas de la suppression des ordres SellStop pour le rendre plus clair.
 
vovan-gogan:

Non. Pas par un seul.
   if (OrderType() == OP_BUYSTOP || OrderType() == OP_SELLSTOP)

L'un des types d'ordre est inférieur au prix, l'autre est supérieur au prix... et la condition pour les fermer est la même Bid>SL... La question est de savoir où est la logique ici.

Je recommande de supprimer un type d'ordre de la condition, ou vous pouvez simplement simplifier davantage.

 
vovan-gogan:

Les gens, aidez-moi à comprendre ce que c'est ! Mon conseiller expert est conçu pour sortir un oplot, et si le prix ne l'atteint pas, mais se retourne vers le niveau de son stop, l'oplot devrait être supprimé. Mais sur le testeur, il arrive qu'un oplot soit sorti et immédiatement supprimé avant même d'atteindre le stop. Quel est le problème ? Voici une capture d'écran et le code de suppression.

Voici le code :

Quelle est l'erreur ici ?

Dans la toute première ligne (taisons-nous sur le reste)... Si le Bid est inférieur au StopLoss de votre ordre...
Et l'ordre est fixé en dessous du Bid et son StopLoss est également en dessous du Bid. La première ligne de code le supprime immédiatement.
 
Bonjour, une question bien nubile... je suppose. Dans les captures d'écran, je vois souvent sur les niveaux de Fibo standard (outils MT4 natifs) et les extensions de Fibo, après le numéro de Fibo il y a un prix sur lequel le niveau est ...... Ma question est : comment l'activer ?
 
Vinin:

Adapté de



Bonjour, aidez-nous s'il vous plaît... Il y a un indicateur ici. Puis-je joindre un signal sonore lorsque je dessine un nouveau segment ? ZigzagFr_v1.mq4 (4.4 Kb) Afficher
 
Bonjour ! Je ne comprends pas quelque chose. J'ai décidé d'attacher un stop suiveur à mon EA mais il continue à montrer l'erreur 130. Je ne comprends rien, et hier je ne pouvais pas non plus.
  } }
   
   
  //+------------------------------------------------------
  double JUN;int tiktik;
   for ( i=0; i<OrdersTotal(); i++) {   OrderSelect(i,SELECT_BY_POS );if(( OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol())) { 
      if( OrderType( )!=OP_BUY ) continue;
     if (price-OrderOpenPrice( )>30*Point) {JUN= price-OrderOpenPrice( );tiktik=OrderTicket();} }} 
     
     Alert("Позиция с тикетом #",tiktik," имеет JUN, ",JUN);Alert("JUN",JUN,"JUNpomnim",JUNpomnim);
    if (JUN>0){if (JUN>JUNpomnim){Alert("JUN",JUN,"JUNpomnim+++++++++++++++++++++++++",JUNpomnim);
      OrderModify(tiktik,OrderOpenPrice(),price-15*Point,OrderTakeProfit(),0,0);     JUNpomnim=JUN;
      Alert("OrderModify-BAY", GetLastError()); }}
      
      
      
  double BAN;int tiktAk;
   for ( i=0; i<OrdersTotal(); i++) {   OrderSelect(i,SELECT_BY_POS );if(( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol())) { 
      if( OrderType( )!=OP_SELL ) continue;
     if (OrderOpenPrice( )-price>30*Point) {BAN= OrderOpenPrice( )-price;tiktAk=OrderTicket();} }} 
     
     Alert("Позиция с тикетом #",tiktAk," имеет BAN, ",BAN);Alert("BAN",BAN,"BANpomnim",BANpomnim);
    if (BAN>0){ if (BAN>BANpomnim){Alert("BAN",BAN,"BANpomnim++++++++++++++++++++++++++++",BANpomnim);
      OrderModify(tiktAk,OrderOpenPrice(),price+15*Point,OrderTakeProfit(),0,0);  BANpomnim=BAN;
       Alert("OrderModify-SELL", GetLastError()); }}
    

  
   return(0);
  }
//+------------------------------------------------------

Veuillez voir la ligne avec la modification, il y a une erreur dans celle-ci. Ainsi, le stop loss est fixé 15 pips plus haut pour Bai, et vice versa pour Sell.

En général, un stop suiveur commence à tomber lorsque le stop d'achat et le stop de vente sont ouverts et qu'ensuite le prix se déplace de 30 pips vers le haut (ou vers le bas pour une vente), notez que le stop n'est pas en dessous de l'ouverture ; en d'autres termes, je ne vois pas d'erreur logique.

Je calcule le prix à chaque tick et cela donne ceci

int X,Y; double price=NormalizeDouble((Ask+Bid)/2,4); 

L'essentiel est de vérifier si les valeurs d'entrée sont correctes.

Bien que j'aie écrit un fragment de code sans plan et sans y avoir réfléchi, je l'ai quand même rédigé.

 
Dimka-novitsek:
Bonjour, je ne comprends pas quelque chose. J'ai décidé d'attacher un stop suiveur à mon EA mais il continue à montrer l'erreur 130. Je ne comprends rien, je ne pouvais pas non plus hier.

Veuillez voir la ligne avec la modification, il y a une erreur dans celle-ci. Ainsi, le stop loss est fixé 15 pips plus haut pour Bai, et vice versa pour Sell.

En général, un stop suiveur commence à tomber lorsque le stop d'achat et le stop de vente sont ouverts et qu'ensuite le prix se déplace de 30 pips vers le haut (ou vers le bas pour une vente), notez que le stop n'est pas en dessous de l'ouverture ; en d'autres termes, je ne vois pas d'erreur logique.

Je calcule le prix à chaque tick et cela donne ceci

L'essentiel est que l'entrée soit correcte.

J'ai écrit une partie du code sans plan, sans y penser, mais c'est toujours correct.

dans un tel désordre qu'il est difficile de suggérer quoi que ce soit.

Eh bien, pour commencer :

1) n'écrivez pas 2-3 opérateurs par ligne, tout se mélange et est mal lisible

2) Variable JUNpomnim. Où lui est-il "donné" une valeur initiale ? Est-ce la même chose pour tous les ordres ouverts ?

Pour un exemple simple, vous avez 2 ordres. Vous déplacez simplement le SL du premier, changez cette variable, et c'est tout. Le second ne sera pas déplacé car JUN = JUNpomnim.

3) Lorsque vous utilisez OrderModify(), normalisez tous les prix.

Raison: