Aide au codage - page 630

 
Bonjour Mladen, j'ai besoin de l'image du filtre ci-dessous.
Dossiers :
filter.jpg  114 kb
 

Je demande un simple Aroon EA.

Acheter : Quand l'aroon up croise l'aroon down. Sortez quand l'aroon up traverse le niveau 50 vers le bas ou quand un signal opposé se produit, selon ce qui se produit en premier. (Un signal opposé signifie que la hausse de l'aroon croise la baisse de l'aroon).

Vendre : Quand l'aroon down croise l'aroon up. Sortez lorsque l'aroon down franchit le niveau 50 vers le bas ou lorsqu'un signal opposé se produit, selon ce qui se produit en premier. (Le signal opposé signifie que l'aroon down passe en dessous de l'aroon up).

Toutes les transactions doivent être ouvertes à l'ouverture de la bougie suivante après l'apparition du signal.

Fixez le stop loss au swing high/swing low précédent. Si cela n'est pas possible, utilisez le stoploss ATR ou le stoploss manuel.

Si possible, ajoutez également une fonction de gestion de l'argent.

Votre temps, vos compétences et votre générosité sont très appréciés. Cordialement,

Reymaq.

 
Salut quelqu'un a fps buysell signal mq4 ? si oui moyens pouvez-vous s'il vous plaît partager ici ... j'ai vu que les fichiers ex4 ...
 

sinon je veux une aide. dans cet indicateur les hauts et les bas sont montrés avec des lignes jaunes courtes ... comme cela après le prix du bas du zigzag ... du prix lui-même besoin de lignes courtes pour 0.326% ,0.5%, 0.618% , 1%, 1.618%,2.27%,2.618%,3.33%, 4,236% i signifie que le retracement de fibo est pour ce prix seul qui est comme (après avoir fixé le bas) low+(low*0.326/100)............ low +(low*0.5/100)........... comme...

après cela pour le haut fait signifie .... même procédure comme des lignes courtes en pointillés

haut(haut*0,326/100)........... haut -(haut*0,5/100)........

pouvez-vous s'il vous plaît quelqu'un faire cela pour moi ?

Je serai très reconnaissant à vous...

Dossiers :
 

Bonjour,

Je voudrais tester leurs deux indicateurs dans un EA.

1 - SAR parabolique de KAMA 1_5.mq4

2 - Macd - std normalized.mq4 1_2 (Filtre)


Je teste avec le code ci-dessous pour ouvrir les ordres.
J'ai fait un back test pendant 3 mois en H1.
Le résultat était très mauvais.

Y a-t-il un moyen d'améliorer le mode d ' ouverture des ordres ?

Résultat

extern int    BarToUse    = 1;       // Bar to test (0, for still opened, 1 for first closed, and so on)
extern string     IndicatorsSettings   = "===== INDICATORS SETTINGS=====";
extern string     _Indicator           = "===== Parabolic SAR =====";
extern double    AccStep         = 0.02;      // Accumulation step
extern double    AccLimit        = 0.2;       // Accumulation limit
extern int       AmaPeriod       = 10;        // Kaufman AMA period
extern int  AmaPrice        = 0;  // Price to be used by Kaufman AMA
extern double    FastEnd         = 2;         // Kaufman AMA fast end
extern double    SlowEnd         = 30;        // Kaufman AMA slow end
extern double    SmoothPower     = 2;         // Smooth power
extern bool      JurikFDAdaptive = true;      // Should the Kaufman AMA be Jurik fractal dimension adaptive?
//extern enDisplayType DisplayType = "" ; // What should be displayed?
extern int       LineWidth       = 2;         // Lines width
extern int       ArrowsWidth     = 0;         // Arrows (dots) width
extern bool      Interpolate     = true;      // Interpolate in multi time frame mode?
extern string PARAMETERS_INDICATOR_TWO = "Macd";
extern int                FastMAPeriod  = 23;            // Fast macd period
extern int                SlowMAPeriod  = 50;            // Slow macd period
extern int                SignalPeriod  = 9;             // Signal period
extern int                StdPeriod     = 50;            // Standard deviation used for normalization
extern int Price         = 0;   // Price to use 
extern double             Filter        = 0;             // Filter to apply to macd value
extern int                FilterPeriod  = 0;             // Filter period to use (<= to use the slow macd period)
extern colorOn            ColorChangeOn = clrOnSlope;    // Color change on : 

#define _doNothing 0
#define _doBuy     1
#define _doSell    2
int start()
{
   //MagicWarning();//Display a warning in case MagicNumber is changed
   AutoMagic();//Generate Magic Number based on Symbol and Long/Short params
   
      int doWhat = _doNothing;
      double sarUp = iCustom(NULL,0,"Parabolic SAR of KAMA 1_5",0,AccStep,AccLimit,AmaPeriod,AmaPrice,FastEnd,SlowEnd,SmoothPower,JurikFDAdaptive,0,BarToUse); 
      double sarDn = iCustom(NULL,0,"Parabolic SAR of KAMA 1_5",0,AccStep,AccLimit,AmaPeriod,AmaPrice,FastEnd,SlowEnd,SmoothPower,JurikFDAdaptive,1,BarToUse+1); 
      
      double macdUp= iCustom(NULL,0,"Macd - std normalized 1_2 histo",0,FastMAPeriod,SlowMAPeriod,SignalPeriod,StdPeriod,Price,Filter,FilterPeriod,ColorChangeOn,0,BarToUse);
      double macdDn= iCustom(NULL,0,"Macd - std normalized 1_2 histo",0,FastMAPeriod,SlowMAPeriod,SignalPeriod,StdPeriod,Price,Filter,FilterPeriod,ColorChangeOn,1,BarToUse+1);
      
         

        
      if (sarUp!=sarDn & macdUp!=macdDn)
         if (sarUp<sarDn & macdUp<macdDn) //buy
               doWhat = _doBuy;
         else  doWhat = _doSell;
         if (doWhat==_doNothing && !DisplayInfo) return(0);

   if (doWhat==_doBuy && openedBuys==0)
      {
         RefreshRates();
         //double BStopLossLevel   = Ask - StopLoss   *myPoint;
         //double BTakeProfitLevel = Ask + TakeProfit *myPoint;               
         double stopLossBuy   = 0; if (StopLoss>0)   stopLossBuy   =Ask - StopLoss   *myPoint; //Ask-StopLoss*Point*MathPow(10,Digits%2);
         double takeProfitBuy = 0; if (TakeProfit>0) takeProfitBuy =Ask + TakeProfit *myPoint; //Ask+TakeProfit*Point*MathPow(10,Digits%2);
         if (EcnBroker)
         {
            int ticketb = OrderSend(Symbol(),OP_BUY,LotSize,NormalizeDouble(Ask,digit),Slippage*myPoint,0,0,EASHORTNAME+"_"+Symbol()+"("+GetChartTimeFrame()+")_B",MagicNumber,0,Blue);
            if (ticketb>-1)
               dummyResult = OrderModify(ticketb,OrderOpenPrice(),NormalizeDouble(stopLossBuy,digit),NormalizeDouble(takeProfitBuy,digit),0,CLR_NONE);
              
              
         }
         else dummyResult = OrderSend(Symbol(),OP_BUY,LotSize,NormalizeDouble(Ask,digit),Slippage*myPoint,NormalizeDouble(stopLossBuy,digit),NormalizeDouble(takeProfitBuy,digit),EASHORTNAME+"_"+Symbol()+"("+GetChartTimeFrame()+")_B",MagicNumber,0,Blue);
          
      }
   if (doWhat==_doSell && diStcSell==true && openedSells==0)
      {
         RefreshRates();
         //double SStopLossLevel   = Bid + StopLoss   *Mypoint;
         //double STakeProfitLevel = Bid - TakeProfit *Mypoint;
         double stopLossSell   = 0; if (StopLoss>0)   stopLossSell=Bid + StopLoss   *myPoint; //Bid+StopLoss*Point*MathPow(10,Digits%2);
         double takeProfitSell = 0; if (TakeProfit>0) takeProfitSell =Bid - TakeProfit *myPoint; //Bid-TakeProfit*Point*MathPow(10,Digits%2);
         if (EcnBroker)
         {
            int tickets = OrderSend(Symbol(),OP_SELL,LotSize,NormalizeDouble(Bid,digit),Slippage*myPoint,0,0,EASHORTNAME+"_"+Symbol()+"("+GetChartTimeFrame()+")_S",MagicNumber,0,Red);
            if (tickets>-1)
                dummyResult = OrderModify(tickets,OrderOpenPrice(),NormalizeDouble(stopLossSell,digit),NormalizeDouble(takeProfitSell,digit),0,CLR_NONE);
         }
         
         else dummyResult = OrderSend(Symbol(),OP_SELL,LotSize,NormalizeDouble(Bid,digit),Slippage*myPoint,NormalizeDouble(stopLossSell,digit),NormalizeDouble(takeProfitSell,digit),EASHORTNAME+"_"+Symbol()+"("+GetChartTimeFrame()+")_S",MagicNumber,0,Red);
Dossiers :
 
borgesr:

Bonjour,

Je voudrais tester leurs deux indicateurs dans un EA.

1 - SAR parabolique de KAMA 1_5.mq4

2 - Macd - std normalized.mq4 1_2 (Filtre)


Je teste avec le code ci-dessous pour ouvrir les ordres.
J'ai fait un back test pendant 3 mois en H1.
Le résultat était très mauvais.

Y a-t-il un moyen d'améliorer le mode d ' ouverture des ordres ?

Veuillez lire ce post : https://www.mql5.com/en/forum/186208/page3 à propos d'une éventuelle optimisation. Quant à savoir pourquoi cela fonctionne ainsi : vous pourriez probablement réviser les règles que vous utilisez lorsque les ordres sont ouverts et fermés. Mais dans tous les cas, vérifiez les règles que vous utilisez et vérifiez quand vos ordres sont fermés.
 
ramzam:

sinon je veux une aide. dans cet indicateur les hauts et les bas sont montrés avec des lignes jaunes courtes ... comme cela après le prix du bas du zigzag ... du prix lui-même besoin de lignes courtes pour 0.326% ,0.5%, 0.618% , 1%, 1.618%,2.27%,2.618%,3.33%, 4,236% i signifie que le retracement de fibo est pour ce prix seul qui est comme (après avoir fixé le bas) low+(low*0.326/100)............ low +(low*0.5/100)........... comme...

après cela pour le haut fait signifie .... même procédure comme des lignes courtes en pointillés

haut(haut*0.326/100)........... haut -(haut*0.5/100)........

Pouvez-vous s'il vous plaît quelqu'un faire cela pour moi ?

Je vous en serai très reconnaissant.

Je ne peux pas vérifier le fichier pour le moment, mais vu le nom, êtes-vous sûr que l'utilisation de zigzag pour les signaux peut être utilisée de la façon dont vous l'attendez (étant donné que zigzag repeint) ?
 
mladen:
Veuillez lire ce post : https://www.mql5.com/en/forum/186208/page3 à propos d'une éventuelle optimisation. Quant à la raison pour laquelle cela fonctionne ainsi : vous pourriez probablement réviser les règles que vous utilisez lorsque les ordres sont ouverts et fermés. Mais dans tous les cas, vérifiez les règles que vous utilisez et vérifiez quand vos ordres sont fermés.

Cher Mladen,

La règle d'ouverture était fausse.

J'ai changé le code mais continue toujours avec une performance très faible perdant beaucoup d'argent.


Pour faire le filtre avec le Parabolique , serait-il préférable d'utiliser le RSI?

      int doWhat = _doNothing;
      double sarUp = iCustom(NULL,0,"Parabolic SAR of KAMA 1_5",0,AccStep,AccLimit,AmaPeriod,AmaPrice,FastEnd,SlowEnd,SmoothPower,JurikFDAdaptive,0,BarToUse); 
      double sarDn = iCustom(NULL,0,"Parabolic SAR of KAMA 1_5",0,AccStep,AccLimit,AmaPeriod,AmaPrice,FastEnd,SlowEnd,SmoothPower,JurikFDAdaptive,1,BarToUse+1); 
      
      double macdUp= iCustom(NULL,0,"Macd - std normalized 1_2 histo",0,FastMAPeriod,SlowMAPeriod,SignalPeriod,StdPeriod,Price,Filter,FilterPeriod,ColorChangeOn,0,BarToUse);
      double macdDn= iCustom(NULL,0,"Macd - std normalized 1_2 histo",0,FastMAPeriod,SlowMAPeriod,SignalPeriod,StdPeriod,Price,Filter,FilterPeriod,ColorChangeOn,1,BarToUse+1);
      
         

        
      
         if (sarUp<sarDn & macdUp<macdDn) doWhat = _doBuy;
         if (sarUp>sarDn & macdUp>macdDn)  doWhat = _doSell;
         if (doWhat==_doNothing && !DisplayInfo) return(0);
         
  for (int i = OrdersTotal()-1; i>=0; i--)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderSymbol()      != Symbol())            continue;
      if (OrderMagicNumber() != MagicNumber)         continue;

      //
      //
      //
      //
      //
      
      if (DisplayInfo) currentProfit += OrderProfit()+OrderCommission()+OrderSwap();
         
         //
         //
         //
         //
         //
         
         if (OrderType()==OP_BUY)
            if (doWhat==_doSell )
                  { RefreshRates(); if (!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Orange)) openedBuys++; }
            else  openedBuys++;
         if (OrderType()==OP_SELL)
            if (doWhat==_doBuy )
                  { RefreshRates(); if (!OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Green)) openedSells++; }
            else  openedSells++;            
   }
   if (DisplayInfo) Comment("Current profit : "+DoubleToStr(currentProfit,2)+" "+AccountCurrency()); if (doWhat==_doNothing) return(0);

   //
   //
   //
   //
   //
   if (doWhat==_doBuy && openedBuys==0)
      {
         RefreshRates();
         //double BStopLossLevel   = Ask - StopLoss   *myPoint;
         //double BTakeProfitLevel = Ask + TakeProfit *myPoint;               
         double stopLossBuy   = 0; if (StopLoss>0)   stopLossBuy   =Ask - StopLoss   *myPoint; //Ask-StopLoss*Point*MathPow(10,Digits%2);
         double takeProfitBuy = 0; if (TakeProfit>0) takeProfitBuy =Ask + TakeProfit *myPoint; //Ask+TakeProfit*Point*MathPow(10,Digits%2);
         if (EcnBroker)
         {
            int ticketb = OrderSend(Symbol(),OP_BUY,LotSize,NormalizeDouble(Ask,digit),Slippage*myPoint,0,0,EASHORTNAME+"_"+Symbol()+"("+GetChartTimeFrame()+")_B",MagicNumber,0,Blue);
            if (ticketb>-1)
               dummyResult = OrderModify(ticketb,OrderOpenPrice(),NormalizeDouble(stopLossBuy,digit),NormalizeDouble(takeProfitBuy,digit),0,CLR_NONE);
              
              
         }
         else dummyResult = OrderSend(Symbol(),OP_BUY,LotSize,NormalizeDouble(Ask,digit),Slippage*myPoint,NormalizeDouble(stopLossBuy,digit),NormalizeDouble(takeProfitBuy,digit),EASHORTNAME+"_"+Symbol()+"("+GetChartTimeFrame()+")_B",MagicNumber,0,Blue);
          
      }
   if (doWhat==_doSell & openedSells==0)
      {
         RefreshRates();
         //double SStopLossLevel   = Bid + StopLoss   *Mypoint;
         //double STakeProfitLevel = Bid - TakeProfit *Mypoint;
         double stopLossSell   = 0; if (StopLoss>0)   stopLossSell=Bid + StopLoss   *myPoint; //Bid+StopLoss*Point*MathPow(10,Digits%2);
         double takeProfitSell = 0; if (TakeProfit>0) takeProfitSell =Bid - TakeProfit *myPoint; //Bid-TakeProfit*Point*MathPow(10,Digits%2);
         if (EcnBroker)
         {
            int tickets = OrderSend(Symbol(),OP_SELL,LotSize,NormalizeDouble(Bid,digit),Slippage*myPoint,0,0,EASHORTNAME+"_"+Symbol()+"("+GetChartTimeFrame()+")_S",MagicNumber,0,Red);
            if (tickets>-1)
                dummyResult = OrderModify(tickets,OrderOpenPrice(),NormalizeDouble(stopLossSell,digit),NormalizeDouble(takeProfitSell,digit),0,CLR_NONE);
         }
         
         else dummyResult = OrderSend(Symbol(),OP_SELL,LotSize,NormalizeDouble(Bid,digit),Slippage*myPoint,NormalizeDouble(stopLossSell,digit),NormalizeDouble(takeProfitSell,digit),EASHORTNAME+"_"+Symbol()+"("+GetChartTimeFrame()+")_S",MagicNumber,0,Red);
      }
   return(0);
}
 
borgesr:

Cher Mladen,

La règle d'ouverture était fausse.

J'ai changé le code mais continue toujours avec une très mauvaise performance en perdant beaucoup d'argent.


Pour faire le filtre avec le Parabolique , serait -il mieux d'utiliser le RSI?

S'il vous plaît, essayez d'optimiser votre EA

 
kapoo:

M. Mladen, s'il vous plaît regardez les codes ci-dessous, la flèche n'apparaît pas en direct jusqu'à ce que je change de cadre temporel.


C'est une version repeinte de l'indicateur Sidus.

La version sans peinture peut être téléchargée ici : https://www.mql5.com/en/forum/180648/page293