Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1062

 
Artyom Trishkin:

А проверить самому? Сложно? И зачем лишнего писать?

Я не проверял. Что вам мешает?

Можно такое делать или нет я запускал выбивается ошибка так делать нельзя это возможно не возможно?

 

Коллеги - как программно проверить ТФ, на котором запущен эксперт и для теста и для торгов, например для

получений значений индикаторов со  следующего ТФ-ма

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



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

Параметры

symbol

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

timeframe

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

вот пример где хочу использовать,  вообще ф-ия ИНИТ в тестере на каждом проходе запускается?

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:

Коллеги - как программно проверить ТФ, на котором запущен эксперт и для теста и для торгов, например для

получений значений индикаторов со  следующего ТФ-ма

вот пример где хочу использовать,  вообще ф-ия ИНИТ в тестере на каждом проходе запускается?


Так так функция вроде и называется Period(), есть ещё переменная которая хранит таймфрейм.

 
Seric29:

Так так функция вроде и называется Period(), есть ещё переменная которая хранит таймфрейм.

спс. буду смотреть...
 
Seric29:

Можно такое делать или нет я запускал выбивается ошибка так делать нельзя это возможно не возможно?

Казнить нельзя помиловать.

Какая ошибка?

 
Не торговал   1,5 месяца     захожу в мт 5  вот такая связь что нужно сделать что бы восстановить ее ?
Файлы:
 
допустим я просрочил принятие работы на фрилансе и теперь у исполнителя возник просроченный объект. это можно исправить? сейчас уже принял.
 
Zlaya_budka:
допустим я просрочил принятие работы на фрилансе и теперь у исполнителя возник просроченный объект. это можно исправить? сейчас уже принял.

Нельзя.

 
Artyom Trishkin:

Нельзя.

Ну тогда в отзыв допишу мол так то было.

 
Zlaya_budka:

Ну тогда в отзыв допишу мол так то было.

Статистика от этого не изменится.
Причина обращения: