Kodlama yardımı - sayfa 630

 
Merhaba Mladen, aşağıda ekli filtre resmine ihtiyacım var.
Dosyalar:
filter.jpg  114 kb
 

Basit bir Aroon EA istiyorum.

Satın al: Yukarı aroon aşağı yukarı kesiştiğinde. Yukarı seviye 50 aşağı seviyeyi geçtiğinde veya ters bir sinyal oluştuğunda (hangisi önce gelirse) çıkın. (Ters sinyal, yukarı aroon aşağı ile aşağı yukarı kesiştiğinde anlamına gelir)

Sat: Aroon aşağısı yukarıyı kestiğinde. Yukarı aşağı seviye 50 aşağıyı geçtiğinde veya ters bir sinyal oluştuğunda (hangisi önce gelirse) çıkın. (Ters sinyal, aşağı aroon aşağının aşağı aroon yukarı kesiştiği anlamına gelir)

Sinyal oluştuktan sonra tüm işlemler bir sonraki mumun açılışında açılmalıdır.

Durdurma kaybını önceki yüksek/düşük vuruşta ayarlayın. Bunu yapmak mümkün değilse, ATR stoploss veya manuel stoploss kullanın.

Mümkünse lütfen para yönetimi özelliğini de ekleyin.

Zamanınız, becerileriniz ve cömertliğiniz çok takdir edilmektedir. Saygılarımızla

Reymak.

 
merhaba mq4 fps al sat sinyali olan var mı? evet ise lütfen burada paylaşabilir misiniz demektir .. sadece ex4 dosyalarını gördüm ..
 

yoksa bir yardım istiyorum bu göstergede yüksek düşük kısa sarı çizgilerle gösteriliyor ... zikzak düşük fiyatından sonra seviyor.. fiyatın kendisinden %0.326, %0.5, %0.618, %1, %1.618,2.27 %,2.618,3.33, %4.236 i, fibo düzeltmesinin yalnızca bu fiyat için olduğu anlamına gelir, yani (düşük ayarlandıktan sonra) düşük+(düşük*0.326/100)............ düşük + (düşük*0.5/100)...........gibi...

bundan sonra yüksek yapılan araçlar için .... noktalı kısa çizgiler gibi aynı prosedür

yüksek-(yüksek*0.326/100)........... yüksek -(yüksek*0.5/100)........

lütfen biri bunu benim için yapabilir mi?

sana çok minnettar olacağım..

Dosyalar:
 

Merhaba,

İki göstergelerini bir EA'da test etmek istiyorum .

1 - KAMA 1_5.mq4'ün Parabolik SAR'ı

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


Siparişleri açmak için aşağıdaki kodla test ediyorum .
H1'de 3 ay boyunca geri test yaptım .
Sonuç çok kötüydü.

Siparişlerin açılma şeklini iyileştirmenin bir yolu var mı?

Sonuç

 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);
Dosyalar:
 
borgesr :

Merhaba,

İki göstergelerini bir EA'da test etmek istiyorum .

1 - KAMA 1_5.mq4'ün Parabolik SAR'ı

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


Siparişleri açmak için aşağıdaki kodla test ediyorum .
H1'de 3 ay boyunca geri test yaptım .
Sonuç çok kötüydü.

Siparişlerin açılma şeklini iyileştirmenin bir yolu var mı?

Lütfen bu gönderiyi okuyun: https://www.mql5.com/en/forum/186208/page3 nihai optimizasyon hakkında. Neden böyle çalıştığına göre : Emirler açılıp kapanırken kullandığınız kuralları muhtemelen revize edebilirsiniz. Ancak her durumda, kullandığınız kuralları kontrol edin ve siparişlerinizin ne zaman kapandığını kontrol edin.
 
ramzam :

yoksa bir yardım istiyorum bu göstergede yüksek düşük kısa sarı çizgilerle gösteriliyor ... zikzak düşük fiyatından sonra seviyor.. fiyatın kendisinden %0.326, %0.5, %0.618, %1, %1.618,2.27 %,2.618,3.33, %4.236 i, fibo düzeltmesinin yalnızca bu fiyat için olduğu anlamına gelir, yani (düşük ayarlandıktan sonra) düşük+(düşük*0.326/100)............ düşük + (düşük*0.5/100)...........gibi...

bundan sonra yüksek yapılan araçlar için .... noktalı kısa çizgiler gibi aynı prosedür

yüksek-(yüksek*0.326/100)........... yüksek -(yüksek*0.5/100)........

lütfen biri bunu benim için yapabilir mi?

sana çok minnettar olacağım..

Dosyayı her an kontrol edemiyorum. ancak adı görünce, sinyaller için zikzak kullanmanın beklediğiniz şekilde kullanılabileceğinden emin misiniz (bu zikzak yeniden boyanır)?
 
mladen :
Lütfen bu gönderiyi okuyun: https://www.mql5.com/en/forum/186208/page3 nihai optimizasyon hakkında. Neden böyle çalıştığına göre : Emirler açılıp kapanırken kullandığınız kuralları muhtemelen revize edebilirsiniz. Ancak her durumda, kullandığınız kuralları kontrol edin ve siparişlerinizin ne zaman kapandığını kontrol edin.

Sevgili Mladen,

Açılış kuralı yanlıştı.

Kodu değiştirdim ama hala çok düşük performansla çok para kaybediyor .


Filtreyi Parabolik ile birlikte yapmak için RSI kullanmak daha iyi olur mu ?

       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 :

Sevgili Mladen,

Açılış kuralı yanlıştı.

Kodu değiştirdim ama hala çok düşük performansla çok para kaybediyor .


Filtreyi Parabolik ile birlikte yapmak için RSI kullanmak daha iyi olur mu ?

Lütfen EA'nızı optimize etmeye çalışın

 
kapoo :

Bay Mladen, lütfen aşağıdaki kodlara bakın, ben zaman çerçevesini değiştirene kadar ok canlı görünmüyor.


Bu, sidus göstergesinin yeniden boyama versiyonudur.

Yeniden boyamayan sürüm buradan indirilebilir: https://www.mql5.com/en/forum/180648/page293