как выключать терминал автоматически

 
sevak sargsyan:
подскажите  может кто знает есть такой  скрипт чтоб терминал отключался в заданное время
https://www.mql5.com/ru/docs/common/terminalclose
Документация по MQL5: Общие функции / TerminalClose
Документация по MQL5: Общие функции / TerminalClose
  • www.mql5.com
Общие функции / TerminalClose - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Andrey Barinov:
https://www.mql5.com/ru/docs/common/terminalclose

Просили скрипт, а не функцию ))

А скрипт (точнее, лучше индикатор) будет такой:

#property copyright "Scriptong"
#property link      "http://advancetools.net"
#property version   "1.00"
#property strict
#property indicator_buffers 0
#property indicator_chart_window

input int     i_closeHour = 22;
input int     i_closeMinute = 0;

int g_needMinutesFromDayStart = 0;

//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
//| Custom indicator initialization function                                                                                                                                                          |
//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
int OnInit()
{
   g_needMinutesFromDayStart = i_closeHour * 60 + i_closeMinute;
   EventSetTimer(1);
   return(INIT_SUCCEEDED);
}
//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
//| Custom indicator initialization function                                                                                                                                                          |
//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   EventKillTimer();
   Comment("");
}
//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
//| Custom indicator iteration function                                                                                                                                                               |
//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{      
   return(rates_total);
}
//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
//| Timer function                                                                                                                                                                                    |
//+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
void OnTimer()
{
   int minutesFromDayStart = TimeHour(TimeLocal()) * 60 + TimeMinute(TimeLocal());
   if (minutesFromDayStart < g_needMinutesFromDayStart)
   {
      int minutes = g_needMinutesFromDayStart - minutesFromDayStart;
      Comment("До выключения терминала осталось: ", minutes / 60, " ч. ", minutes % 60, " мин.");
      return;
   }

   Alert(WindowExpertName(), ": выключение терминала по достижении заданного времени.");
   TerminalClose(0);      
}

 Правда, после выключения терминала в эти сутки его уже не включишь без танцев с бубном ))

Но это можно решить путем переделки индикатора в зацикленный скрипт. Но тогда будет другая беда - невозможно переключить таймфрейм графика, на котором висит скрипт без удаления скрипта. 

 
Ihor Herasko:

Просили скрипт, а не функцию ))

А скрипт (точнее, лучше индикатор) будет такой:

 

 Правда, после выключения терминала в эти сутки его уже не включишь без танцев с бубном ))

По ссылке которую я дал и пример есть.
 
Andrey Barinov:
По ссылке которую я дал и пример есть.
вообще без разницы хоть советник лиш бы закрывал мт по времени
 
а почему именно скрипт?
 
FinFox:
а почему именно скрипт?
я же ответил. индикатор, скрипт, советник. надо чтоб мт4 выключился в назначенное время
 

Если прям очень надо....

фриланс в помощь.....

стоит 10$....конкретного скрипта именного готового,нет в библиотеке...да и потом скрипт сработает один раз,а советник пока он подключен на график работать будет постоянно...думаю что тема закрыта... 

 

Привет всем!

 

Нашел в сети СОВЕТНИК -какой хлам. Если плохой, то извините. Еще поищу.

 

//+------------------------------------------------------------------+
//|                                                Exp_Close MT4.mq4 |
//|                                                           Tempor |
//|                                                 http://mql5.com/ |
//+------------------------------------------------------------------+
#property copyright "Tempor"
#property link      "http://mql5.com/"

input int close_time_hour=5;
input bool Ne_vkluchat_OPASNO = False;
int Start_Hour =0;
int tc, st;
//+----------------------------------------------------------------------------+
//|  expert initialization function                                            |
//+----------------------------------------------------------------------------+
void init() {
}
//+----------------------------------------------------------------------------+
//|  expert deinitialization function                                          |
//+----------------------------------------------------------------------------+
void deinit() { 
 }

//+----------------------------------------------------------------------------+
//|  expert start function                                                     |
//+----------------------------------------------------------------------------+
void start() {
  Comment("             CLOSE_Time_MT4 :",  close_time_hour,
      "\n", "             DATE: ", Month(), "-", Day(), "-", Year(), " Server Time: ", Hour(), ":", Minute(), ":", Seconds(), 
   "\n"); 
//----
  tc=TimeCurrent(); 
    int dt=iTime(NULL,PERIOD_D1,0);
    st=dt+close_time_hour*3600;
 if (st== close_time_hour) {
    TerminalClose(0);  
  }
 if (Ne_vkluchat_OPASNO) {
 if (TimeHour(CurTime())>=Start_Hour) {
    TerminalClose(0);  
  }  
}
}
 

но почему то добавлена это, к чему?


 

 input bool Ne_vkluchat_OPASNO = False;