[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 947

 

Je n'arrive pas à mettre en place le TrailingStop.... (j'essaie d'écrire un EA).

J'utilise une plateforme Alpari MT4 avec la fonction Trailing Stop (c'est-à-dire que je peux mettre un Trailing Stop de 18 pips). Question de clarification, est-il possible d'utiliser la fonctionnalité de la plateforme lors de l'ouverture d'un ordre (par exemple, mettre programmatiquement un TrailingStop tick) ?

 
001:

Cela semble fonctionner, mais pour une raison quelconque, il ouvre deux positions opposées.


Si vous êtes confus à propos de quelque chose - ce sont des extraits de mon code "avalanche" - pour vous avec des changements mineurs. Tout fonctionne bien pour moi. Regardez en plus ce snippet (similaire) ici - tout fonctionne bien, cherchez votre erreur, c'est bon... Il s'agit de la version de base d'Avalanche - tout est détaillé ici - pour vous-même (selon vos besoins), je suis sûr que c'est spécial.

Ce ne serait pas difficile à refaire, il y a un fragment similaire...

Dossiers :
av02.mq4  17 kb
 
artmedia70:
La logique est aussi simple que 2x2 :
1. Il faut d'abord déterminer que la pose précédente est fermée sur le pied.
2. Vérifiez ensuite l'absence de déjà ouvert dans la position opposée.
Et ensuite, après avoir déterminé qu'il n'est pas encore là - vous l'ouvrez (la position opposée qui s'est fermée sur l'arrêt).

Il y a une petite omission ici. Lorsque la position opposée s'ouvre, puis se ferme au stop ou à la prise, les conditions d'ouverture se reproduisent. Et j'ai besoin d'un seul moment.
 

Est-ce que j'ai bien saisi les données ? Je demande parce que ça ne marche pas. Il n'y a pas d'erreur pendant la compilation. C'est pourquoi je pense qu'il y a un problème de logique. Vérifiez-le.

La photo ne montre que deux barres, mais il y en a plus.

Indicateur de poissons FX. J'ai besoin de signaux d'achat - sur la première barre, l'histogramme est supérieur au niveau d'achat et l'histogramme de la première barre est supérieur à celui de la deuxième.

on sell - sur la première barre, l'histogramme est inférieur au niveau de vente et l'histogramme de la première barre est inférieur à l'histogramme de la deuxième barre.

J'ai écrit le code comme ceci

      double fx_fishUp1=iCustom(NULL,0,"FX Fish",FX_Period,FX_Price,ModeFast,Signals,0,1);
      double fx_fishUp2=iCustom(NULL,0,"FX Fish",FX_Period,FX_Price,ModeFast,Signals,0,2);
      double fx_fishDn1=iCustom(NULL,0,"FX Fish",FX_Period,FX_Price,ModeFast,Signals,1,1);
      double fx_fishDn2=iCustom(NULL,0,"FX Fish",FX_Period,FX_Price,ModeFast,Signals,1,2);
      
      if(fx_fishUp1-UpLevel>0 && fx_fishUp1-fx_fishUp2>0){fx_fUp=true; fx_fDown=false;}
      if(DnLevel-fx_fishDn1<0 && fx_fishDn2-fx_fishDn1<0){fx_fDown=true; fx_fDown=false;}


      if(fx_fUp) res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);    
        
      if(fx_fDown) res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);
                 
Dossiers :
fxdfish.mq4  5 kb
 
Une dernière question. J'ai joint le fichier FX Fish. Il porte le même nom dans le dossier des indicateurs, mais après l'avoir joint, le nouveau nom FXdFish.mq4 est apparu.
 
Roman.:


Si vous êtes confus à propos de quelque chose - ce sont des coupures de mon code "avalanche" - à vous avec des modifications mineures. Tout fonctionne bien pour moi. Regardez en plus ce snippet (similaire) ici - tout fonctionne bien, cherchez votre erreur, tout va bien... Il s'agit de la version de base d'Avalanche - ici tout est détaillé - pour vous (selon vos besoins) je suis sûr, un spécial

difficile à refaire, un tel fragment est présent...


Voilà ce que j'ai obtenu. J'ai enlevé :

1.lots = NormalizeLots(lots) ; mettre un fixe de 0.1

2.J'ai fixé if (lastType == OP_SELL) OrderSend(Symbol(), OP_BUY, lots,...) ; puisque je teste d'abord les longs.

C'est tout.

Dossiers :
2.mq4  3 kb
 
001:

Il y a une légère omission ici. Lorsque la pose opposée s'ouvre puis se ferme au stop ou à la prise, les conditions d'ouverture se présentent à nouveau. Et j'ai besoin d'UN temps.


Notez les conditions normales d'ouverture, ce que signifie UN temps - par jour, par seconde, en général dans les métiers...

Formulez des conditions d'ouverture NORMALES et écrivez, par exemple - entrez une limite de temps, disons que si un ordre a déjà été ouvert dans une journée, alors les ordres suivants ne s'ouvriront pas - il s'agit de négocier une fois par jour - une limite de temps pour l'EA - déjà postée dans ce fil, utilisez la recherche, par exemple formulez le code ci-dessous dans la condition d'ouverture, c'est-à-dire si dans cette plage de temps a déjà été négocié, alors les ordres suivants ne s'ouvriront pas, etc.... Formulez spécifiquement ce dont vous avez besoin, pas incompréhensible comme "UNE fois", qui est une fois dans une vie ? Formulez des conditions commerciales normales, ne vous faites pas chier. Sans parler du site web - ce fil de discussion contient déjà tout cela...

2. Подскажите, пожалуйста, как сделать, чтобы советник прекращал торговать в 21 ч00 мин и потом начинал только в 01 ч00 мин следующего дня. 

int start()
  { 

   if (Hour()>20 && Hour<2) return(0);

.....

  }
 
Roman.:


Notez les conditions normales d'ouverture, ce que signifie UN temps - par jour, par seconde, en général dans les métiers...

Formulez des conditions d'ouverture NORMALES et écrivez, par exemple - entrez une limite de temps, disons que si un ordre a déjà été ouvert dans la journée, alors les ordres suivants ne s'ouvriront pas - il s'agit d'un trading une fois par jour - la limite de temps pour l'EA - déjà postée dans ce fil, utilisez la recherche, par exemple formulez le code ci-dessous dans la condition d'ouverture, c'est-à-dire si dans cette plage de temps était déjà le trading, alors les ordres suivants ne s'ouvriront pas, etc.... Formulez spécifiquement ce dont vous avez besoin, pas incompréhensible comme "UNE fois", qui est une fois dans une vie ? Formulez des conditions commerciales normales, ne vous faites pas chier. Sans parler du site web - ce fil de discussion contient déjà tout cela...

001:

J'essaie de mettre en place un simple retournement. Lorsqu'une position d'arrêt est atteinte --> ouvrir la position opposée. Je n'arrive pas à ce qu'il ouvre une fois la position opposée et qu'il n'ouvre rien d'autre. Veuillez me conseiller.

Lorsqu'une position atteint une butée . Il y a une position, il y a un arrêt. Lorsque le prix atteint le stop, ouvrez la position opposée. N'ouvrez rien d'autre sur la première position.
 
001:
Lorsqu'une position atteint une butée . Il y a une position, il y a un arrêt. Lorsque le prix atteint le stop, ouvrez la position opposée. N'ouvrez rien d'autre sur la première position.

Le site https://www.mql5.com/go?link=http://www.kimiv.ru// dispose d'une fonction qui définit exactement comment un ordre doit être clôturé par un stop loss. C'est-à-dire que lorsque vous connectez cette fonction, vous devez prescrire la condition si la position est fermée après avoir atteint le stop loss, si c'est le cas, vous devez ouvrir la position opposée et ajouter la condition de son ouverture unique dans la condition de votre position de base....
 
Existe-t-il une documentation supplémentaire sur les noms de tous les éléments utilisés dans le programme ? Par exemple : case, switch, os, bool, ++, ==, Ayant quelques connaissances, vous commencez à inventer une bicyclette, et puis il s'avère qu'il y a une fonction spéciale qui résout ce problème. Comme j'ai compris dans le tutoriel, pas tout, et comment trouver quelque chose que vous ne pouvez même pas deviner ?