Kodlama yardımı - sayfa 658

 

sevgili mladen

Son kapatılan emir türünü bilmek istersem ve bir EA'da kâr ettiyse, aşağıdaki işlev işi yapabilir mi:

 int OrdersProfit()
  {
   int Profit;
   for ( int i= OrdersHistoryTotal (); i>= 0 ; i--)
     {
       if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY ))
       if ( OrderSymbol () == Symbol () && OrderMagicNumber () == Magic)
       if ( OrderType ()== OP_BUY   && OrderProfit ()> 0 ) Profit = "1" ;
       if ( OrderType ()== OP_SELL && OrderProfit ()> 0 ) Profit = "2" ;
     }    
   return (Profit);
  }


En iyi,

 
IXI :

sevgili mladen

Son kapatılan emir türünü bilmek istersem ve bir EA'da kâr ettiyse, aşağıdaki işlev işi yapabilir mi:


En iyi,

Hayır, değil (çünkü kapalı siparişler kapanış saatine göre sıralanmaz - en azından kılavuzun bize söylediği şey budur: siparişlerin kapanış saatine göre sipariş edileceğinin garantisi yoktur). Bunun gibi bir şey yapılmalı:

 int OrdersProfit()
{
   int       profit    = 0 ;
   datetime CloseTime = 0 ;
       for ( int i= OrdersHistoryTotal ()- 1 ;i>= 0 ;i--)
       {
           if ( OrderSelect (i, SELECT_BY_POS , MODE_HISTORY ))
           if ( OrderSymbol () == Symbol () && OrderMagicNumber () == MagicNumber && OrderCloseTime ()>CloseTime)
           {
              CloseTime = OrderCloseTime ();
               if ( OrderType ()== OP_BUY   && OrderProfit ()> 0 ) Profit = 1 ;
               if ( OrderType ()== OP_SELL && OrderProfit ()> 0 ) Profit = 2 ;
           } 
       }
       return (Profit);
}  
 

sevgili mladen

Mükemmel cevabınız için çok teşekkürler.

En iyi,

 

Sevgili arkadaşlar,

En son yapı mt4 için ekli göstergeleri güncelleyebilir misiniz lütfen?

Özellikle, "123PatternsV6" mt4'ü donduruyor ve çalışmıyor!

 
oguz :

Sevgili arkadaşlar,

En son yapı mt4 için ekli göstergeleri güncelleyebilir misiniz lütfen?

Özellikle, "123PatternsV6" mt4'ü donduruyor ve çalışmıyor!

123'ün donma terminali olmadan çalışması için zikzak göstergesine ihtiyacı olduğunu düşünüyorum.
 
mntiwana :
123'ün donma terminali olmadan çalışması için zikzak göstergesine ihtiyacı olduğunu düşünüyorum.

Zigzag göstergesi mt4'te zaten mevcut.

 
oguz :

Zigzag göstergesi mt4'te zaten mevcut.

Yeni zikzak önceki sürümler gibi çalışmıyor. iCustom() çağrılarından bazı parametreler kullanılıyorsa, terminali kapatacaktır.
 

Merhaba.

Son zamanlarda deneyim kazanmak için MQL4'ü programlamaya başladım, böylece önceden test etmek için kendi fikirlerimi kodlayabilirim.

Şimdi resmin zamanlaması ile mücadele ediyorum.

Diyelim ki bazı stokastikler için bir if ifadem var ve boyamadan önce MA'nın fiyatın üstüne veya altına düşmesini beklemek istiyorum, bunu nasıl yapabilirim?

Denediklerim ve aklıma gelen tek şey:

 if ( iStochastic ( NULL , PERIOD_CURRENT , _K_period, _D_period, Slowing, MODE_SMA , 0 , MODE_MAIN , i) > 80
      && iStochastic ( NULL , PERIOD_CURRENT , _K_period, _D_period, Slowing, MODE_SMA , 0 , MODE_MAIN , i+ 1 ) < 80

 while High [i] > iMA ( NULL , PERIOD_CURRENT , MAfilter, 0 , MODE_EMA , PRICE_CLOSE , i+1) //Candlestick High < Moving Average
            (
               1 + 1
            )
       
      )

{
         Buffer1[i] = High[i]; //Set indicator value at Candlestick High
         if(i == 0 && Time[0] != time_alert) { myAlert("indicator", "Selling opportunity"); time_alert = Time[0]; } //Instant alert, only once per bar
        }
      else
        {
         Buffer1[i] = 0;

1+1 sadece while döngüsünü doldurmak için, yapmaya çalıştığım şey, fiyatın en yükseği MA'nın altına düşene kadar oku boyamak için beklemek, ama yine de bunun olmasını istemiyorum ve çapraz gerçekleştiğinden beri ifade Ben boyayana kadar beklemek istiyorum.

ancak bu başarılı olmadı, bu yüzden topluluktaki profesyonel kodlayıcılara soruyorum

 
NWFstudent :

Merhaba.

Son zamanlarda deneyim kazanmak için MQL4'ü programlamaya başladım, böylece önceden test etmek için kendi fikirlerimi kodlayabilirim.

Şimdi resmin zamanlaması ile mücadele ediyorum.

Diyelim ki bazı stokastikler için bir if ifadem var ve boyamadan önce MA'nın fiyatın üstüne veya altına düşmesini beklemek istiyorum, bunu nasıl yapabilirim?

Denediklerim ve aklıma gelen tek şey:

1+1 sadece while döngüsünü doldurmak için, yapmaya çalıştığım şey, fiyatın en yükseği MA'nın altına düşene kadar oku boyamak için beklemek, ama yine de bunun olmasını istemiyorum ve çapraz gerçekleştiğinden beri ifade Ben boyayana kadar beklemek istiyorum.

ancak bu başarılı olmadı, bu yüzden topluluktaki profesyonel kodlayıcılara soruyorum

Şu şekilde deneyin:

Buffer1[i] = 0 ;
if (   iStochastic ( NULL , PERIOD_CURRENT , _K_period, _D_period, Slowing, MODE_SMA , 0 , MODE_MAIN , i)   > 80
   && iStochastic ( NULL , PERIOD_CURRENT , _K_period, _D_period, Slowing, MODE_SMA , 0 , MODE_MAIN , i+ 1 ) < 80 
   && High [i] > iMA ( NULL , PERIOD_CURRENT , MAfilter, 0 , MODE_EMA , PRICE_CLOSE , i+ 1 )) //Candlestick High < Moving Average
         Buffer1[i] = High [i]; //Set indicator value at Candlestick High

if (i == 0 && Time [ 0 ] != time_alert && Buffer1[i]!= 0 ) { myAlert( "indicator" , "Selling opportunity" ); time_alert = Time [ 0 ]; } //Instant alert, only once per bar
 
mladen :

Şu şekilde deneyin:

Bu bana "yalnızca geçiş MA üzerinde gerçekleştiğinde, MA altında istiyorum, ancak MA'nın üzerinde bir geçişim varsa ve birkaç çubuk sonra fiyat MA'nın altına düşerse sinyali de istiyorum" sinyalini verecek.

Bu while döngüsüyle denediğim şeydi, bu yüzden kod, argüman yanlış olana ve sinyali boyamaya devam edene kadar döngü yapacaktı.

Şematik çizim yaptım belki daha iyi anlarsınız.

neyse cevabın için teşekkür ederim

Dosyalar:
illust.png  24 kb