0
… понятно, договорились, я правда «сижу» исключительно на CBPUSD, ну да это поправимо, нужно что бы Андрей взялся за бота, пока же сроки не назначил…
avatar

mishelbb

  • 21 июля 2020, 15:25
0
Здравствуйте, могу выступить поручителем раз такое дело… я давненько не обращался к Андрею, а Вам видимо есть необходимость…
avatar

mishelbb

  • 21 июля 2020, 13:52
0
… ну как же??? Программа и должна всё «вести», а настройки — это её регулятор,«от сих — до сих», условно… Ваш же другой, подобный робот, работает нормально!!! ПОДОБНЫЙ!!!.. логика одна у них, они похожи!!!, этот вариант изначально не рабочий был, я и скинул РАБОЧИЙ ВАРИАНТ, туда просил внести изменения, это то вариант «не мой»… на мой взгляд с этим что то в коде, может быть посмотрите прикреплённый сов.???
avatar

mishelbb

  • 30 мая 2020, 09:20
0
Здравствуйте уважаемый Андрей, в процессе выявились проблемы, сов.по ссылке, работает не «чётко», я припоминаю эту ссылку, она и без доработки так себя «вела», наиболее серьёзный «прокол» это исполнение срока опциона, такое впечатление, что он это делает когда вздумается, может сработать раз нормально, потом 5 минутку закрыть через 15 минут, потом опять нормально, а в следующий раз ордер может зависнуть вообще на час, скажем???!!!.. Я к чему, я помню этот сов., он некорректен был, потом Вы делали другой, я его прикрепил изначально, нельзя ли именно по прикреплённому сделать то, что я просил, он нормально пашет, но в оном направлении, а я хочу уменьшить лот путём разных направлений одновременно… в любом случае признателен!!!.. скрины торговли обоих прикреплю, для наглядности...
avatar

mishelbb

  • 30 мая 2020, 08:08
0
Здравствуйте, спасибо, буду пробовать…
avatar

mishelbb

  • 24 мая 2020, 06:30
0
Андрей, здравствуйте, обрисовалась проблема с переходом за полночь, не корректно рассчитывает время, когда полные сутки наступили(GMT, по терминалу, локальное...)всё нормально.., а вот в тот момент когда идёт «разнобой», чё попало получается.Пробовал по всякому, и в сове и на конпе, результат — тот же… посмотрите пожалуйста, если не обременительно…
avatar

mishelbb

  • 23 марта 2020, 03:59
0
… ага, спасибо огромное, на мой взгляд не заменимая вещь, что на автомате, что полуавтомате, как у меня, да и вообще всегда пригодится, мало ли… спасибо.
avatar

mishelbb

  • 21 марта 2020, 03:42
0
Здравствуйте Андрей, огромное спасибо за работу, у меня, уже, подвижки есть… По п.2.3., я сделал два варианта Вашей работы, файлы прилагаю, вместо скринов.
1.Мне нужно всё это связать в одно целое(сам пока ещё«слабоват»).
2.Добавить возможность переключения режимов работы по аналогии со временем(локальное/терминальное), ну, т.е., если 0 то общий режим(ВКЛ.по времени и ВЫКЛ.по времени),1 то только ВКЛ. и 2 только ВЫКЛ, соответственно… вот как то так вижу, и сейчас и далее примного благодарен...
//+------------------------------------------------------------------+
//|                                                   AutoTrader.mq4 |
//|                                              Copyright 2020, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

#include <WinUser32.mqh>

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

extern int Slip         = 30;       // реквот
extern int StartHour    = 0;        // час начала торговли
extern int StartMin     = 30;       // минута начала торговли
extern int Times        = 0;        // 0-терминальное 1-локальное

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool Times(int aStartHour,int aStartMinute,datetime aTimeCur)
  {
//--- время начала сессии
   int StartTime=3600*aStartHour+60*aStartMinute;
//--- текущее время в секундах от начала дня
   aTimeCur=aTimeCur%86400;
   if(StartTime)
     {
      //--- переход через полночь
      if(aTimeCur>=StartTime)
        {
         return(true);
        }
     }
   else
     {
      //--- внутри одного дня
      if(aTimeCur>=StartTime)
        {
         return(true);
        }
     }
   return(false);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void ClosePositions()
  {
   bool c;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderType() == OP_BUY)
            c=OrderClose(OrderTicket(), OrderLots(), Bid, Slip, Blue);
         if(OrderType() == OP_SELL)
            c=OrderClose(OrderTicket(), OrderLots(), Ask, Slip, Red);
         Sleep(1000);
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Key()
  {
   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);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(Times==0)
      t=TimeCurrent();
   else
      t=TimeLocal();

// включение кнопки если выключена 
   if(!IsTradeAllowed() && !Times(StartHour,StartMin,t))
     {
      Key();
     }

   Comment("\n Time Current: ",TimeCurrent(),
           "\n Time Local: ",TimeLocal());
  }
//+------------------------------------------------------------------+  
                                                                        
                                                                        
//+------------------------------------------------------------------+
//|                                                   AutoTrader.mq4 |
//|                                              Copyright 2020, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

#include <WinUser32.mqh>

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

extern int Slip         = 30;       // реквот
extern int EndHour      = 23;       // час окончания торговли
extern int EndMin       = 30;       // минута окончания торговли
extern int Times        = 0;        // 0-терминальное 1-локальное

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool Times(int aStopHour,int aStopMinute,datetime aTimeCur)
  {
//--- время окончания сессии
   int StopTime=3600*aStopHour+60*aStopMinute;
//--- текущее время в секундах от начала дня
   aTimeCur=aTimeCur%86400;
   if(StopTime)
     {
      //--- переход через полночь
      if(aTimeCur<StopTime)
        {
         return(true);
        }
     }
   else
     {
      //--- внутри одного дня
      if(aTimeCur<StopTime)
        {
         return(true);
        }
     }
   return(false);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void ClosePositions()
  {
   bool c;
   for(int i=OrdersTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderType() == OP_BUY)
            c=OrderClose(OrderTicket(), OrderLots(), Bid, Slip, Blue);
         if(OrderType() == OP_SELL)
            c=OrderClose(OrderTicket(), OrderLots(), Ask, Slip, Red);
         Sleep(1000);
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void Key()
  {
   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);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(Times==0)
      t=TimeCurrent();
   else
      t=TimeLocal();

// отключение кнопки если включена когда время вышло
   if(IsTradeAllowed() && !Times(EndHour,EndMin,t))
     {
      ClosePositions();
      Key();
     }

   Comment("\n Time Current: ",TimeCurrent(),
           "\n Time Local: ",TimeLocal());
  }
//+------------------------------------------------------------------+
avatar

mishelbb

  • 20 марта 2020, 09:26
0
Здравствуйте Андрей, я тут подумал, а если упростить задачу, до минимума, может возьмётесь, чисто по открытию ордеров по линиям и времени, Вы похожие делаете…
Вариант ТЗ такой…
1.Бот начинает работу по времени(включать кнопку я буду заранее, ему нужно будет только приступить к исполнению обязанностей в определённое время), только время начала работы, отключать его будет другой сов.
2.Робот включился(линии уже прорисованы индюком), и выставляет оложки по БЛИЖАЙШИМ ЛИНИЯМ(желательно бы реверс Limit\Stop, зависит от дня, новости, там, сколько их и когда).
3.Так, ордера выставлены, теперь ожидает какой сработает.Ордер сработал и бот должен выставить отложку на следующей логической линии(с лимитами проблем не будет, а вот со стоповыми… если сможете сделать, там же нужно будет после сработки СТОП ордеров открывать лимитные.., ну да если на стоповые не получится сделайте хотя бы лимитные)соответственно с увеличением лота(указываем в параметрах)… сработала вторая отложка, выставляемся отложкой на третьей линии… на этом всё, только выставление ордеров, всё остальное будут контролировать другие роботы.
4.Если возможно, исполнить задержку, по времени, в выставлении ордеров(ну там 1м,3,5… мм), что бы другие роботы успевали разобраться в ситуации.
Тетерь о параметрах, как я говорил стопов, лосей, времени выключения не нужно, нужно следующее…
1.Лот
2.Увеличение лота
3.Время начала работы
4.Время задержки выставления отложек(в сек.можно и в мин.)
5.Проскальзывание
6.Магик
7.Реверс отложек(если возможно)
Ну вот, вроде бы всё, гляньте пожалуйста, может возьмётесь за такое «чудо»… заранее, да в в любом случае благодарю, даже за внимание…
На всякий случай прикреплю скрины, для наглядного представления, так сказать.
avatar

mishelbb

  • 5 марта 2020, 06:41
0
… менял, но вот не помню, при переустановке или текущий, попробую, в любом случае благодарю, тоже вариант…
avatar

mishelbb

  • 13 февраля 2020, 00:55
0
… просто сброс счётчика, допустим, при переустановке сова или когда сам посчитаю нужным, а то losses 7 в ауте и никак не сбросить, при переустановке он подхватывает старое и всё...
avatar

mishelbb

  • 12 февраля 2020, 02:14