Помогите определится

Всем мета трейдерам привет. Пишу маленький скриптик который должен мне помочь в торговле.

Суть скриптика проста. Хочю вводить число и время свечи типа ( 06.20 18:25) и ещо одну переменную чтоб мне прощитала уравень от максимума и минимума свечи.

Какую переменную лучше использавать в данной схеме скрипта для ввода времени свечи.

Заранее благодарен

В общем написал сам.

Выкладываю в общий доступ

//+------------------------------------------------------------------+
//|                                                           CL.mq4 |
//|                                              Kopanitskyy Evgeniy |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Kopanitskyy Evgeniy"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
extern double Level=0;
extern  double SHIFT=0;
string UPLINE="UPLINE";
string DOWNLINE="DOWNLINE";
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
double HIGHT=iHigh(Symbol(),0,SHIFT);
double LOW=iLow(Symbol(),0,SHIFT);
double normalLevel=Level*Point;

//Расчёт Уравня
double LEVELUP=HIGHT+normalLevel;
double LEVELDOWN=LOW-normalLevel;

Alert(Symbol()," UP ",LEVELUP," DOWN ",LEVELDOWN); 
//---
ObjectCreate(UPLINE,OBJ_HLINE,0,TimeCurrent(),LEVELUP);   
ObjectCreate(DOWNLINE,OBJ_HLINE,0,TimeCurrent(),LEVELDOWN);   return(INIT_SUCCEEDED);
  
  
  
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  

   
  }
//+------------------------------------------------------------------+


Автоматический трейдинг и тестирование торговых стратегий
Автоматический трейдинг и тестирование торговых стратегий
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
Yevheniy Kopanitskyy:

В общем написал сам.

Выкладываю в общий доступ



Может так

datetime тime = iTime(Symbol(),0,SHIFT);

Пианино тащить на 12-тый этаж удобнее вчетвером, а играть на пианино лучше одному. Также как и программировать.

Yevheniy Kopanitskyy:   В общем написал сам.   Выкладываю в общий доступ

Получился советник вместо скрипта. Разница такая: в советнике OnInit, OnDeinit (если пустая - можно выбросить), OnTick. В скрипте OnStart. Советник торчит на графике до тех пор, как изгонят. Правда, может сам уйти, выругавшись: ExpertRemove!!! Скрипт выполняет работу и быстро сам уходит. Правда, можно его задержать функцией Sleep или циклом. А время вот так можно задать, как в этом скрипте. Запустите и посмотрите, довольно-таки забавно!

//+---------------------------------------------------+
//| По времени                        С-ПоВремени.mq4 |
//+---------------------------------------------------+
#property strict
#property show_inputs

#define РежимENUM // Для отключения enum закомментировать эту строку

#ifdef РежимENUM
  enum Минуты  // 60 значений минуты
  { М00,М01,М02,М03,М04,М05,М06,М07,М08,М09,М10,М11,М12,М13,М14,
    М15,М16,М17,М18,М19,М20,М21,М22,М23,М24,М25,М26,М27,М28,М29,
    М30,М31,М32,М33,М34,М35,М36,М37,М38,М39,М40,М41,М42,М43,М44,
    М45,М46,М47,М48,М49,М50,М51,М52,М53,М54,М55,М56,М57,М58,М59};

  enum Часы    // 24 значения часов
  { Ч00,Ч01,Ч02,Ч03,Ч04,Ч05,Ч06,Ч07,Ч08,Ч09,Ч10,Ч11,
    Ч12,Ч13,Ч14,Ч15,Ч16,Ч17,Ч18,Ч19,Ч20,Ч21,Ч22,Ч23,};

  extern Часы Час=0;         // Выберите час из списка
  extern Минуты Минута=0;    // Выберите минуту из списка#else
#else
  extern int Час=0;
  extern int Минута=0;
#endif

void OnStart()
{
  string   Разделитель=":";
  int      ЧасСейчас, МинутаСейчас;
  datetime Время;
  string   Время1, Время2;
  do   
  {
    Время=TimeLocal();
    ЧасСейчас=TimeHour(Время);
    МинутаСейчас=TimeMinute(Время);

    if(ObjectFind("Итог")<0)   // Проверка наличия метки для вывода информации
    {
      ObjectCreate("Итог", OBJ_LABEL, 0, 0, 0);   // Создание
      ObjectSet("Итог", OBJPROP_CORNER, 1);       // Правый верхний угол
      ObjectSet("Итог", OBJPROP_XDISTANCE, 10);   //X   
      ObjectSet("Итог", OBJPROP_YDISTANCE, 10);   //Y
    }

    // Вывод в метку
    if(Разделитель==":")Разделитель=" "; else Разделитель=":";
    Время1=string(ЧасСейчас)+Разделитель;
    if(ЧасСейчас<10)Время1="0"+Время1;
    if(МинутаСейчас<10)Время1+="0";
    Время1+=string(МинутаСейчас);

    Время2=string(Час)+":";
    if(Час<10)Время2="0"+Время2;
    if(Минута<10)Время2+="0";
    Время2+=string(Минута);
    
    ObjectSetText("Итог", Время1 + " --> " + Время2,
      8,"Arial",Yellow);   // Размер, наименование и цвет шрифта

    Sleep(1000);
  } while(((Час!=ЧасСейчас)||(Минута!=МинутаСейчас)) && !IsStopped());

  // Теперь совершаем торговую операцию
  ObjectSetText("Итог", "Торгуем", 10,"Arial",GreenYellow);
  Sleep(4000); // Пауза 4 секунды
  // Совершили торговую операцию

  ObjectDelete("Итог");
}