Остановка автоторговли.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Andrey Chalaev
437
Andrey Chalaev  
Здравствуйте трейдеры и программеры, ни как не могу найти советника для отключения автоторговли в мт4, на указанный период, может есть у кого?
Konstantin Erin
2161
Konstantin Erin  
Andrey Chalaev:
Здравствуйте трейдеры и программеры, ни как не могу найти советника для отключения автоторговли в мт4, на указанный период, может есть у кого?
Посмотрите здесь
Andrey Chalaev
437
Andrey Chalaev  

Спасибо, но мне надо установить время когда будет отключатся и включатся.

Konstantin Erin
2161
Konstantin Erin  
Andrey Chalaev:

Спасибо, но мне надо установить время когда будет отключатся и включатся.

Вот здесь выкладывал скрипт с заданием времени. Сделайте из него советник и поместите на соседний график.
Konstantin Erin
2161
Konstantin Erin  
Вот, попробуйте. Удалите отладочные алерты
//+------------------------------------------------------------------+
//| Выключение авто-торговли по времени                 АвтоСтоп.mq4 |
//|                                                                  |
//+------------------------------------------------------------------+
#property strict
#include <WinUser32.mqh>

#define PAUSE      10
#define VK_CONTROL 0x11 //CTRL key
#define KEY_CODE   'E'

enum Минуты  // 60 значений минуты
{ М000102030405060708091011121314,
  М151617181920212223242526272829,
  М303132333435363738394041424344,
  М454647484950515253545556575859};

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

extern Часы ЧасНачала=8;
extern Минуты МинутаНачала=0;
extern Часы ЧасКонца=21;
extern Минуты МинутаКонца=0;

int      ЧасСейчас, МинутаСейчас;
datetime Время;
string   Время1, Время2, Время3;

//+------------------------------------------------------------------+
//| При инициализции задается                                        |
//+------------------------------------------------------------------+
void OnInit()
{
  Alert("---------------Запуск ------------------");  
  OnTick();   // Это для проверки в выходные, потом удалить
}


//+------------------------------------------------------------------+
//| Каждый тик                                                       |
//+------------------------------------------------------------------+
void OnTick()
{
  Время=TimeLocal();
  ЧасСейчас=TimeHour(Время);
  МинутаСейчас=TimeMinute(Время);

  ObjectCreate("Итог", OBJ_LABEL, 0, 0, 0);   // Создание
  ObjectSet("Итог", OBJPROP_CORNER, 1);       // Правый верхний угол
  ObjectSet("Итог", OBJPROP_XDISTANCE, 10);   //X   
  ObjectSet("Итог", OBJPROP_YDISTANCE, 30);   //Y

  // Вывод в метку
  Время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(МинутаКонца);

  Время3=string(ЧасСейчас)+":";
  if(ЧасСейчас<10)Время3="0"+Время1;
  if(МинутаСейчас<10)Время3+="0";
  Время3+=string(МинутаСейчас);

  ObjectSetText("Итог", Время1 + "  " + Время2+ "  " + Время3,
    8,"Arial",Yellow);   // Размер, наименование и цвет шрифта

  // для начала только часы и ЧасКонца > времени ЧасНачала
  if((ЧасСейчас>=ЧасНачала) && (ЧасСейчас<=ЧасКонца))
  {
    // Проверяем и Включаем
    Alert("Надо работать");
    if(!IsExpertEnabled() || !IsTradeAllowed()) // Запрещено
    {
      Alert("Включаю ++++");
      keybd_event(VK_CONTROL,0,0,0);
      Sleep(PAUSE);
      keybd_event(KEY_CODE,0,0,0);
      Sleep(PAUSE);
      keybd_event(KEY_CODE,0,2,0);
      Sleep(PAUSE);
      keybd_event(VK_CONTROL,0,2,0);
    }   
  }
  else
  {
    // Проверяем и ОТключаем
    Alert("Надо спать");
    if(IsExpertEnabled() && IsTradeAllowed()) // РАЗрещено
    {
      Alert("Стоп -----------");
      keybd_event(VK_CONTROL,0,0,0);
      Sleep(PAUSE);
      keybd_event(KEY_CODE,0,0,0);
      Sleep(PAUSE);
      keybd_event(KEY_CODE,0,2,0);
      Sleep(PAUSE);
      keybd_event(VK_CONTROL,0,2,0);
    }   
  }
}


//+------------------------------------------------------------------+
//| При Деинициализции удаляется информационная метка                |
//+------------------------------------------------------------------+
void OnDeinit(const int Зачем)
{
   ObjectDelete("Итог");
}
Renat Akhtyamov
16184
Renat Akhtyamov  

Я делаю авто-остановку авто-торговли за 2 часа до закрытия торгов следующим образом:

      int TRADE,HOUR,weekHOUR;
//-----------------------------------------------
      TRADE=1;//1-торгуем, 0-не торгуем ;)
      HOUR=TimeHour(TimeCurrent());
      weekHOUR=(TimeDayOfWeek(TimeCurrent())-1)*24+HOUR;
      if(weekHOUR>116)TRADE=0;
//добавить условие if(TRADE==1) перед всеми торговымим функциями OrderSend, OrderClose и др.
Konstantin Erin
2161
Konstantin Erin  
Renat Akhtyamov:  Я делаю авто-остановку авто-торговли за 2 часа до закрытия торгов следующим образом:

Приведенный выше вариант предназначен для внешнего управления одним или группой роботов при отсутствии их исходного кода

Renat Akhtyamov
16184
Renat Akhtyamov  
STARIJ:

Приведенный выше вариант предназначен для внешнего управления одним или группой роботов при отсутствии их исходного кода

В принципе я уже понял

присутсвие

#include <WinUser32.mqh>

сразу бросается в глаза

Konstantin Erin
2161
Konstantin Erin  
Renat Akhtyamov:

присутствие

#include <WinUser32.mqh>

сразу бросается в глаза

Поясните, пожалуйста

Renat Akhtyamov
16184
Renat Akhtyamov  
STARIJ:

Поясните, пожалуйста

крайне не перевариваю использование библиотек.

подождем конкретизации вопроса топик стартером

Vitalie Postolache
7145
Vitalie Postolache  
Renat Akhtyamov:

крайне не перевариваю использование библиотек.

подождем конкретизации вопроса топик стартером


А как вы хотите без WinAPI нажать кнопку на панели терминала?

123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий