MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1062

 
Artyom Trishkin :

Kendiniz kontrol etmeye ne dersiniz? Karmaşık? Ve neden çok yazıyorsun?

kontrol etmedim. Seni ne durduruyor?

Bunu yapabilir miyim, yapamaz mıyım, bir hata yaptım, yapamazsınız, mümkün mü?

 

Meslektaşlar - Expert Advisor'ın hem test hem de ticaret için üzerinde çalıştığı TF'yi programlı olarak nasıl kontrol edebilirsiniz, örneğin,

sonraki TF'den gösterge değerleri almak

Возвращает значение времени открытия бара (указанного параметром shift) соответствующего графика. 



datetime    iTime ( 
   string            symbol,           // символ 
   int               timeframe,       // период 
   int               shift             // сдвиг 
   );
 

Параметры

symbol

[in]  Символьное имя инструмента. NULL означает текущий символ.

timeframe

[in]  Период. Может быть одним из значений перечисления ENUM_TIMEFRAMES . 0 означает период 

İşte kullanmak istediğim bir örnek, test cihazındaki INIT işlevi her geçişte çalışıyor mu?

 int OnInit ()
{
   MINLOT = MarketInfo( Symbol (),MODE_MINLOT);
   MAXLOT = MarketInfo( Symbol (),MODE_MAXLOT);  
   //double vbid    = MarketInfo(Symbol(),MODE_BID); 
   //double vask    = MarketInfo(Symbol(),MODE_ASK); 
   vpoint  = MarketInfo( Symbol (),MODE_POINT); 
   vdigits = ( int )MarketInfo( Symbol (),MODE_DIGITS); 
   
   if ( Digits == 5 || Digits == 3 )
     {
      StopLoss = StopLoss* 10 ;       
      slippage = slippage* 10 ;
      TakeProfit = TakeProfit* 10 ;   
      TralingStop = TralingStop * 10 ;
      DELTA = DELTA* 10 ; 
      SPREAD_MAX = SPREAD_MAX* 10 ;      
     }
     
//   --------------------------------------------------------------
 switch (signal_period)
  { 
   case 0 :            ПЕРИОД_ДИАПАЗОНА = 0 ;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = 0 ;
                       break ;
//  --------------------------------------------------------------- 
   case 1 :            ПЕРИОД_ДИАПАЗОНА = PERIOD_M1 ;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = PERIOD_M5 ;
                       break ;
//  ---------------------------------------------------------------
   case 2 :            ПЕРИОД_ДИАПАЗОНА = PERIOD_M5 ;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = PERIOD_M15 ;
                       break ;
//  ---------------------------------------------------------------
   case 3 :            ПЕРИОД_ДИАПАЗОНА = PERIOD_M15 ;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = PERIOD_M30 ;
                       break ;
//  ---------------------------------------------------------------
   case 4 :            ПЕРИОД_ДИАПАЗОНА = PERIOD_M30 ;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = PERIOD_H1 ;
                       break ;
//  ---------------------------------------------------------------
   case 5 :            ПЕРИОД_ДИАПАЗОНА = PERIOD_H1 ;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = PERIOD_H4 ;
                       break ;
//  --------------------------------------------------------------- 
   case 6 :            ПЕРИОД_ДИАПАЗОНА = PERIOD_H4 ;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = PERIOD_D1 ;
                       break ;
//  --------------------------------------------------------------- 
   case 7 :            ПЕРИОД_ДИАПАЗОНА = PERIOD_D1 ;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = PERIOD_W1 ;
                       break ;
      
   case 8 :            ПЕРИОД_ДИАПАЗОНА = PERIOD_W1 ;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = PERIOD_MN1 ;
                       break ;   
                                      
   case 9 :            ПЕРИОД_ДИАПАЗОНА = PERIOD_MN1 ;
                      ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА = PERIOD_MN1 ;
                       break ;             

 //  --------------------------------------------------------------- 
     default : 
    {
       Print ( " не соответствует signal_period для торгов " ); 
       return ( 0 );
    }  
 }                

iTmfrm = ПЕРИОД_ДИАПАЗОНА;
 
 
     
   Print ( " vpoint = " , vpoint, " vdigits = " , vdigits); 
   Print ( " MAXLOT = " , MAXLOT, " MINLOT = " , MINLOT); 
   Print ( " STOPLEVEL  = " , MarketInfo( Symbol (),MODE_STOPLEVEL));
   Print ( " SPREAD     = " , MarketInfo( Symbol (), MODE_SPREAD ));
   return ( INIT_SUCCEEDED );
}
//--------------------------------------------------------------------
void OnTick ()
{
                                 
   
   if ( iTime ( Symbol (),ПЕРИОД_ДИАПАЗОНА, 0 ) == prevtime) return ;             //ждем нового бара на текущем таймфрейме
      prevtime = iTime ( Symbol (),ПЕРИОД_ДИАПАЗОНА, 0 );                     //если появился новый бар на текущем графике, то включаемся 
 


// -------------------   РАСЧЕТ ИНДИКАТОРОВ    ---------------------------------------
  
   MacdCurrent = iMACD ( NULL ,ПЕРИОД_ДИАПАЗОНА, 12 , 26 , 9 , PRICE_OPEN ,MODE_MAIN, 0 );
   MacdPrevious= iMACD ( NULL ,ПЕРИОД_ДИАПАЗОНА, 12 , 26 , 9 , PRICE_OPEN ,MODE_MAIN, 1 );
   // SignalCurrent=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
   // SignalPrevious=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
   MaCurrent = iMA ( NULL ,ПЕРИОД_ДИАПАЗОНА,MATrendPeriod, 0 , MODE_EMA , PRICE_OPEN , 0 );
   MaPrevious= iMA ( NULL ,ПЕРИОД_ДИАПАЗОНА,MATrendPeriod, 0 , MODE_EMA , PRICE_OPEN , 1 ); 
   
   MaCurrent_СТАРШЕГО =   iMA ( NULL ,ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА,MA_СТАРШЕГО_ТФ, 0 , MODE_EMA , PRICE_OPEN , 0 );
   MaPrevious_СТАРШЕГО = iMA ( NULL ,ПЕРИОД_СТАРШЕГО_ДИАПАЗОНА,MA_СТАРШЕГО_ТФ, 0 , MODE_EMA , PRICE_OPEN , 1 );                        

   // ------------------------------------------------------------------------------------ 
 
Roman Shiredchenko :

Meslektaşlar - Expert Advisor'ın hem test hem de ticaret için üzerinde çalıştığı TF'yi programlı olarak nasıl kontrol edebilirsiniz, örneğin,

sonraki TF'den gösterge değerleri almak

İşte kullanmak istediğim bir örnek, test cihazındaki INIT işlevi her geçişte çalışıyor mu?


Bu nedenle işleve Period() adı verilir, ayrıca zaman çerçevesini saklayan bir değişken de vardır.

 
Seric29 :

Bu nedenle işleve Period() adı verilir, ayrıca zaman çerçevesini saklayan bir değişken de vardır.

TEŞEKKÜR. İzleyeceğim...
 
Seric29 :

Bunu yapabilir miyim, yapamaz mıyım, bir hata yaptım, yapamazsınız, mümkün mü?

İnfaz affedilemez.

Ne hata?

 
1.5 aydır alım satım yapmadım, mt 5'e gidiyorum, işte böyle bir bağlantı, onu eski haline getirmek için ne yapılması gerekiyor?
Dosyalar:
 
Diyelim ki serbest çalışmayı kabul etmekte geciktim ve şimdi müteahhitin gecikmiş bir nesnesi var. düzeltilebilir mi? çoktan kabul edildi.
 
Zlaya_budka :
Diyelim ki serbest çalışmayı kabul etmekte geciktim ve şimdi müteahhitin gecikmiş bir nesnesi var. düzeltilebilir mi? çoktan kabul edildi.

Yasaktır.

 
Artyom Trishkin :

Yasaktır.

Peki, o zaman öyle olduğunu söyleyen bir inceleme ekleyeceğim.

 
Zlaya_budka :

Peki, o zaman öyle olduğunu söyleyen bir inceleme ekleyeceğim.

İstatistikler değişmeyecek.