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

 

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

Суть скриптика проста. Хочю вводить число и время свечи типа ( 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 значений минуты
  { М000102030405060708091011121314,
    М151617181920212223242526272829,
    М303132333435363738394041424344,
    М454647484950515253545556575859};

  enum Часы    // 24 значения часов
  { Ч000102030405060708091011,
    Ч121314151617181920212223,};

  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("Итог");
}
Причина обращения: