Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ



советник

здравствуйте.просьба написать советник.
нужно чтоб советник в определенное время закрывал все графики того инструмента на котором установлен сам, и удалял все стоплосы и тейкпрофиты.
нужен он для борьбы с ночными спредами.
допустим выставили время 23:50 и в это время советник закрыл все графики кроме своего(чтоб другие советники не смогли опять выставить стоплос и тейкпрофит)и потом уже удалил все стоплосы и тейкпрофиты.
в настройки вывести только время начала и конца работы советника
  • 0
  • Просмотров: 1228
  • 18 апреля 2024, 01:52
  • ivan1032612
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Parabolic_r2
Следующая запись в группе  
Сеточник с закрытием по мувингу
16 апреля 2024
19 апреля 2024

Брокер для ваших роботов, 15 лет на рынке

Комментарии (14)

+
0
avatar

  7  ivan1032612 Автор Сообщений: 320 - vorhyn

  • 18 апреля 2024, 01:53
+
0
avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 18 апреля 2024, 11:06
+
0
спасибо.буду пробовать.
avatar

  7  ivan1032612 Автор Сообщений: 320 - vorhyn

  • 18 апреля 2024, 13:15
+
0
проверил все работает как и хотел.спасибо еще раз.
avatar

  7  ivan1032612 Автор Сообщений: 320 - vorhyn

  • 18 апреля 2024, 13:37
+
0
Андрей здравствуйте.немного не то делает советник.стоплос и тейкпрофит закрывает и это супер.а вот график закрывает не тот.я наверное не правильно выразился в ТЗ.нужно чтоб гафик на котором он установлен оставался открытым а другие графики такой же валютной пары закрывались.
avatar

  7  ivan1032612 Автор Сообщений: 320 - vorhyn

  • 19 апреля 2024, 02:28
+
0
можете переделать пожалуйста
avatar

  7  ivan1032612 Автор Сообщений: 320 - vorhyn

  • 19 апреля 2024, 02:29
+
0
нужно чтоб гафик на котором он установлен оставался открытым а другие графики такой же валютной пары закрывались.


я так и сделал. сейчас скину скрины
avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 19 апреля 2024, 11:11
+
0
вот 3 графика по евре и поза с тейком:



поставили нужное время, тейк удалился остальные графики с этим символом закрылись:

avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 19 апреля 2024, 11:17
+
0
график с советником, должен быть крайний справа
avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 19 апреля 2024, 11:26
+
0
avatar

  7  ivan1032612 Автор Сообщений: 320 - vorhyn

  • 19 апреля 2024, 13:18
+
0
avatar

  7  ivan1032612 Автор Сообщений: 320 - vorhyn

  • 19 апреля 2024, 13:18
+
0
задумка такая.у меня работает советник и все хорошо только вот ночными спредами выбивает то стоплос то тейкпрофит.и естественно не по той цене где они выставлены а с учетом ночного спреда.что не есть хорошо, почти всегда из за этого ордера закрываются с убытком.
я хочу чтоб советник «CloseChart» закрывал гафик с моим советником и удалял стоплос и тейкпрофит.а я потом опять включал свой советник и он опять выставит стоплос и тейк профит там где ему надо
avatar

  7  ivan1032612 Автор Сообщений: 320 - vorhyn

  • 19 апреля 2024, 13:27
+
0
может вы предложите какое то другое решение(которое будет легче написать) я буду только рад.может после удаления стоплоса и тейкпрофита выключать кнопку автоторговля? но мне кажется закрыть график надежнее.
avatar

  7  ivan1032612 Автор Сообщений: 320 - vorhyn

  • 19 апреля 2024, 13:31
+
0

//+------------------------------------------------------------------+
//|                                                   CloseChart.mq4 |
//|                                              Copyright 2024, AM2 |
//|                                     https://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, AM2"
#property link      "https://www.forexsystems.biz"
#property version   "1.00"
#property strict

extern int StartHour     = 22;        // час начала торговли
extern int StartMin      = 30;       // минута начала торговли
extern int EndHour       = 23;       // час окончания торговли
extern int EndMin        = 30;       // минута окончания торговли
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

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

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool TimeSession(int aStartHour,int aStartMinute,int aStopHour,int aStopMinute,datetime aTimeCur)
  {
//--- время начала сессии
   int StartTime=3600*aStartHour+60*aStartMinute;
//--- время окончания сессии
   int StopTime=3600*aStopHour+60*aStopMinute;
//--- текущее время в секундах от начала дня
   aTimeCur=aTimeCur%86400;
   if(StopTime<StartTime)
     {
      //--- переход через полночь
      if(aTimeCur>=StartTime || aTimeCur<StopTime)
        {
         return(true);
        }
     }
   else
     {
      //--- внутри одного дня
      if(aTimeCur>=StartTime && aTimeCur<StopTime)
        {
         return(true);
        }
     }
   return(false);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   //long  ChartID();
   if(TimeSession(StartHour,StartMin,EndHour,EndMin,TimeCurrent()))
     {
      long currChart,prevChart=ChartFirst();

      int i=0,limit=100;
      Print("ChartFirst = ",ChartSymbol(prevChart)," ID = ",prevChart);

      while(i<limit)// у нас наверняка не больше 100 открытых графиков
        {
         currChart=ChartNext(prevChart); // на основании предыдущего получим новый график
         if(currChart<0)
            break;          // достигли конца списка графиков
         Print(i,ChartSymbol(currChart)," ID =",currChart);
         if(currChart!=ChartID())
           {
            if(ChartSymbol(currChart)==_Symbol)
               ChartClose(currChart);
           }

         prevChart=currChart;// запомним идентификатор текущего графика для ChartNext()
         i++;// не забудем увеличить счетчик
        }

      for(int k=OrdersTotal()-1; k>=0; k--)
        {
         if(OrderSelect(k,SELECT_BY_POS,MODE_TRADES))
           {
            bool m=OrderModify(OrderTicket(),OrderOpenPrice(),0,0,0,Yellow);
           }
        }
     }

   Comment("\n Time: ",TimeCurrent());
  }
//+------------------------------------------------------------------+

avatar

  14  verta81 Сообщений: 390

  • 21 апреля 2024, 00:05

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