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

 
anrei2002 #:

Le mot clé est AIDE !

Comme je l'ai déjà écrit : Vous feriez mieux de me dire tout de suite que cet indicateur ne peut pas être finalisé sur ce forum !

Et c'est tout... et je comprendrai.... pourquoi tant de scories ont été déversées ???

Je l'ai écrit en premier lieu.

tu ne peux pas le réparer, il est de travers...

C'est la première chose que j'ai écrite. Tu ne l'as pas vu, tu ne l'as pas réalisé, tu as pensé que c'était des conneries.

Le fait que vous considériez ma tentative de vous transmettre des déchets que vous avez remués ici - je ne suis pas offensé, je n'ai pas essayé pour votre bien, quelqu'un d'autre le lira et ne fera pas d'erreur. Quant à vous, bonne chance avec votre indicateur, cherchez d'autres forums si vous n'aimez pas celui-ci.

 
Nikolay Ivanov #:

J'ai écrit tout de suite.

Il n'y a aucun moyen de le réparer, il est de travers...

cela peut être corrigé, mais cela redessinera les 8 barres les plus extérieures.

 
anrei2002 #:

Le mot clé est AIDE !

Je t'ai aidé - j'ai écrit ce que tu devais faire - et...)

qu'avez-vous fait ?

 
Taras Slobodyanik #:

Cela peut être corrigé, mais cela redessinera les 8 barres les plus extérieures.

Il a également été dit que le signal peut être appliqué immédiatement à la 9ème barre et qu'il n'y aura aucun redécoupage.

Taras Slobodyanik#:

je vous ai aidé - j'ai écrit ce que vous devez faire - et ?)

qu'avez-vous fait ?

d'ailleurs, vous arriveriez (avec une certaine probabilité) à arbitrer, vous devez vous mettre d'accord à l'avance sur tout ce qu'il doit faire.

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2021.11.09
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Nikolay Ivanov #:

Il a également été mentionné... il a également été dit que vous pouvez envoyer un signal à la 9ème barre et qu'il n'y aura pas de surprix du tout... mais l'homme ne comprend pas...

au fait, vous auriez touché l'arbitrage, il faut tout négocier à l'avance... ce dont il a besoin ne peut se faire sans réserves

tout est possible ici, l'homme accepte les surcharges et signale 8 barres en retour, quel est le problème ?

ps. les divergences et les fractales apparaissent également dans le passé, rien de bien grave.
 
Taras Slobodyanik #:

Tout peut se faire ici, la personne accepte la réévaluation et les signaux 8 barres en retour, quel est le problème ?

Il doit "juste" enlever les flèches supplémentaires et c'est tout. Et comment le faire, en reclassant ou non, est votre problème... C'est ainsi que commence tout arbitrage :)

Cela dépend de la façon dont vous formulez les termes de référence, mais dans tous les cas - je ne m'y risquerais pas... Même un arbitrage réussi représente des mois de stress...

 
anrei2002 #:

Le mot clé est AIDE !

Comme je l'ai déjà écrit : Vous feriez mieux de me dire tout de suite que cet indicateur ne peut pas être finalisé sur ce forum !

Et c'est tout... et je comprendrai.... pourquoi tant de scories ont été déversées ???

Exactement. Si vous aidez à le faire, cela signifie que vous le faites, et que quelqu'un vous aide autant que vous le pouvez et autant que vous le pouvez et autant que vous le pouvez.

Si tout ce que vous faites est de demander, sans rien faire d'autre, et que quelqu'un le fait pour vous, alors c'est un bureau de bonne volonté.

Lorsque j'ai créé ce fil de discussion, je voulais parler d'aide, et non de la production de souhaits gratuits.

 

Bonjour Chers utilisateurs du forum et programmeurs expérimentés ! J'ai besoin d'aide pour finaliser le conseiller expert)) Veuillez me conseiller sur la façon d'ajouter deux éléments au conseiller en code :

1. Voici la situation : j'ouvre un ordre (1er) avec TP et SL et un certain lot (probablement 0.01). Si cet ordre se ferme au niveau du take profit - cool, rien ne change. Mais si ce (1er) ordre est fermé au SL, l'ordre suivant immédiatement après (2ème) est ouvert avec un lot 2 fois plus grand (0.01*2=0.02). Si ce 2ème ordre est fermé au Take Profit, alors l'ordre suivant (3ème ordre) est ouvert avec un lot régulier, c'est-à-dire qu'un lot 2 fois plus grand est nécessaire uniquement pour l'ordre suivant (2ème ordre) après que le précédent (1er) ait été fermé au SL. Si le 3ème ordre est clôturé en SL pour la deuxième fois consécutive, le lot restera augmenté de 2x jusqu'à ce qu'il n'y ait plus de clôture en TP. J'espère avoir décrit en détail la logique de ce qui doit être ajouté ;


2. et la deuxième chose que nous devons ajouter est le mouvement SL. maintenant, laissez-moi l'expliquer avec un exemple : supposons que nous avons un ordre avec des paramètres de base T.p. + 300, S.l. - 500. Le prix évolue dans la direction requise et dépasse +100 pips du prix d'ouverture de l'ordre. Une fois que le prix atteint +100 du prix d'ouverture de l'ordre, le SL doit passer de la base -500 à +90. C'est-à-dire que lorsque le prix atteint +100 pips par rapport au prix d'ouverture de l'ordre, nous transférons l'ordre au seuil de rentabilité en fixant S,L à +90 pips. Après cela, si le prix se déplace davantage dans la direction souhaitée et passe par un autre + 50 pips - S.L. est déplacé de 50 pips => il devrait maintenant être à + 140 pips du prix d'ouverture de l'ordre. C'est-à-dire que le S.L. se déplace d'abord de sa position de base à + 90 pips du prix d'ouverture de l'ordre et ensuite s'il passe par + 50 pips ( - 500 => + 90 => + 140 => + 190 etc.). Et ainsi de suite jusqu'à ce que le prix atteigne T.P. ou quand la tendance s'inverse et frappe le S.L.


J'espère avoir tout décrit en détail, et j'espère vraiment votre aide, car en ajoutant ces éléments manquants, le Conseiller Expert sera prêt ;)) Si vous avez des questions, n'hésitez pas à les poser)))) Je colle une partie du code de l'Expert Advisor ci-dessous :

extern string s1                = "Main options";
extern string Symbol            = "";     
extern int timeframe            = 30;     
extern int MagicNumber          = 122122; 
//+------------------------------------------------------------------+
extern string s2                = "Trading options";
extern int BarsForConfirm       = 40;     
extern double Lot               = 0.01;      // размер лота: 0 - авт.расчет (свободная маржа/9000 => 100/5000=0.02 лота); любое другое число - фиксированный лот
extern int StopLoss             = 50;     // стоплосс (в пунктах)
extern int TakeProfit           = 30;     // тейкпрофит (в пунктах)
//+------------------------------------------------------------------+

bool OrderBuy = true, OrderSell = true, Trade = false;  
int timeprev = 0, Slip = 3.0, Start, cnt=1, a;  
datetime newbar=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   if(CheckForOpen()==0) {a=1; Trade = false;}
   else
   if(CheckForOpen()==1) {a=0; Trade = false;}
   else {Trade = true;}
   if (Digits == 3 || Digits == 5) // Пересчет для 5-ти знаков, работает автоматически
     {                                                    
      TakeProfit *= 10;
      StopLoss *=10;
      Slip *=10;
     } 
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  
  {
  
   if(CheckForOpen()==a) Trade = true;
   if(newbar!=Time[0] && Trade==true)  
     {
      if(CheckForOpen()!=Start)        
        {Start=CheckForOpen(); cnt=1;}
      else {cnt+=1;}

      if(cnt==BarsForConfirm) {        
             
                
             
         if(CheckForOpen()==0)         
           {
            if(OrderSend(Symbol(),OP_BUY,Lots(),Ask,Slip,Bid-StopLoss*Point,Ask+TakeProfit*Point,"",MagicNumber,0,Blue))
              {Print("BUY OK");} else {Print(GetLastError());}
           } 
         if(CheckForOpen()==1)         
           {
            if(OrderSend(Symbol(),OP_SELL,Lots(),Bid,Slip,Ask+StopLoss*Point,Bid-TakeProfit*Point,"",MagicNumber,0,Red))
              {Print("SELL OK");} else {Print(GetLastError());}
           }
        }   
      newbar=Time[0];  //открытие ордера на цене открытия свечи
     }
  }
//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double Lots()  // Расчет объема лота
  {
   double Lots;
   if(Lot>0) return(Lot);           
   Lots=AccountFreeMargin()/9000;  // раcчёт лота - свободная маржа/9000 => 100/9000=0.01 лота 
   Lots=MathMin(15,MathMax(0.01,Lots));
   if(Lots<0.1) Lots=NormalizeDouble(Lots,2);
   else 
     {
      if(Lots<1) Lots=NormalizeDouble(Lots,1);
      else       Lots=NormalizeDouble(Lots,0);
     }
   return(Lots);
  }
//+------------------------------------------------------------------+
 
MakarFX #:

Attrapez

Merci beaucoup. Désolé de ne pas avoir répondu tout de suite - j'ai été distrait.
Je l'ai essayé, j'ai remarqué un petit problème...
Il ne dessine que si je l'exécute sur le symbole USDX.
Il n'apparaît pas sur l'EURUSD (il est clair que je change le Symbole_2).
Voir les photos, cela peut être plus facile à comprendre.
Une idée de la raison de cette situation et de la manière de la résoudre ?
Dossiers :
EURUSD.JPG  260 kb
USDX.JPG  318 kb
 

Bonjour.

Désolé pour cette question stupide... L'ordre est maintenant correctement placé, puis l'erreur 129 - mauvais prix. Ça commence à être une douleur dans le cul... Aidez-moi... ((


int f = OrderSend(para_2,OP_BUY,0.1,Ask_para_2,3,0,0,"",0,Blue) ; if(f < 0){Alert("Error setting Buy Stop order : ", GetLastError());}

Raison: