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

Рейтинг 2086



РЕКОМЕНДУЮ



Открытие рыночного ордера по времени

Нужен советник выставляющий рыночные ордера по времени. Есть в инете такой e-OpenByTime, но он выставляет ордера 0.1, 0.2, т.е. не выставляет мини ордера 0.01, 0.02 и т.д. и не выставляет ордера 0.12, 0.55, т.е. с сотовыми значениями.
Параметры советника:
1. Открые BUY — true\false
2. Открытие SELL — true\false
3. Тейкпрофит — если 0, то не выставляется
4. Стоплосс — если 0, то не выставляется
5. Часы выставления
6. Минуты выставления
7. Количество попыток открытия
8. Проскальзывание
9. Время (в мили секундах или в секундах) повтора открытия ордера (пп.7)
10. Количество открываемых ордеров
11. Мэджик

Заранее благодарен!!!
  • 0
  • Просмотров: 3503
  • 11 сентября 2015, 07:19
  • nonych
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
Написал, но на отладку не известно сколько времени уйдет. Пока отлаживаю на демо.
avatar

  34  AM2 Сообщений: 15876 - Андрей

  • 11 сентября 2015, 11:48
+
0
ОКЕЮШКИ!
avatar

  20  nonych Автор Сообщений: 125 - Евгеша

  • 11 сентября 2015, 11:59
+
0
Забыл: тейк и стоп выставлять с задержкой. Т.е. Market Execution
avatar

  20  nonych Автор Сообщений: 125 - Евгеша

  • 11 сентября 2015, 12:06
+
0
Сделал почти все, но на селл нормально работает а на бай ошибок много сыпет. Пока не знаю в чем дело?


//+------------------------------------------------------------------+
//|                                                     OpenTime.mq4 |
//|                                              Copyright 2015, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property description "OpenTime expert advisor"

#include <stdlib.mqh>

//--- Inputs
extern int    StopLoss       = 555; // лось 
extern int    TakeProfit     = 555; // язь
extern int    Buy            = 1;   // 1-есть бай
extern int    Sell           = 0;   // 1-есть селл
extern int    Try            = 5;   // количество попыток выставить ордер
extern int    SleepTime      = 555; // пауза в миллисекундах
extern int    StartHour      = 9;   // час начала торговли
extern int    StartMin       = 30;  // минута начала торговли
extern int    EndHour        = 23;  // час окончания торговли
extern int    EndMin         = 30;  // минута окончания торговли
extern double Lots           = 0.1; // лот
extern int    Slip           = 100; // проскальзывание
extern int    Count          = 5;   // количество открываемых ордеров
extern int    MAGIC          = 123; // магик

int errors;
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL) count++;
           }
        }
     }
   return(count);
  }
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 30.04.2009                                                     |
//|  Описание : Возвращает флаг разрешения торговли по времени.                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    hb - часы времени начала торговли                                       |
//|    mb - минуты времени начала торговли                                     |
//|    he - часы времени окончания торговли                                    |
//|    me - минуты времени окончания торговли                                  |
//+----------------------------------------------------------------------------+
bool isTradeTimeInt(int hb=0,int mb=0,int he=0,int me=0)
  {
   datetime db, de;           // Время начала и окончания работы
   int      hc;               // Часы текущего времени торгового сервера

   db=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+hb+":"+mb);
   de=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+he+":"+me);
   hc=TimeHour(TimeCurrent());

   if(db>=de)
     {
      if(hc>=he) de+=24*60*60; else db-=24*60*60;
     }

   if(TimeCurrent()>=db && TimeCurrent()<=de) return(True);
   else return(False);
  }
//+------------------------------------------------------------------+
void OpenOrd()
  {
   int res,err;
   double sl,tp;

//--- sell conditions
   if(Sell==1)
     {
      if(StopLoss>0) sl=NormalizeDouble(Bid+StopLoss*Point,Digits);   else sl=0;
      if(TakeProfit>0) tp=NormalizeDouble(Bid-TakeProfit*Point,Digits);   else tp=0;
      res=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slip,sl,tp,"",MAGIC,0,Red);
      if(res<0)
        {
         errors++;
         err=GetLastError();
         Print("ОШИБКА ВЫСТАВЛЕНИЯ ОРДЕРА SELL: ",err,"(",ErrorDescription(err),")");
           } else {
         RefreshRates();
        }
      return;
     }
   Sleep(SleepTime);

//--- buy conditions
   if(Buy==1)
     {
      if(StopLoss>0) sl=NormalizeDouble(Ask-StopLoss*Point,Digits);   else sl=0;
      if(TakeProfit>0) tp=NormalizeDouble(Ask+TakeProfit*Point,Digits);   else tp=0;
      res=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slip,sl,tp,"",MAGIC,0,Blue);
      if(res<0)
        {
         errors++;
         err=GetLastError();
         Print("ОШИБКА ВЫСТАВЛЕНИЯ ОРДЕРА BUY: ",err,"(",ErrorDescription(err),")");
           } else {
         RefreshRates();
        }
      return;
     }
   Sleep(SleepTime);
//---
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(errors>Try) return;

   if(isTradeTimeInt(StartHour,StartMin,EndHour,EndMin))
     {
      if(CountTrades()<Count) OpenOrd();
     }

   Comment("\n CountTrades: ",CountTrades(),
           "\n Errors: ",errors);
  }
//+------------------------------------------------------------------+

avatar

  34  AM2 Сообщений: 15876 - Андрей

  • 11 сентября 2015, 12:53
+
0
Все нашел причину: www.opentraders.ru/downloads/866/

avatar

  34  AM2 Сообщений: 15876 - Андрей

  • 11 сентября 2015, 13:05
+
0
Большое спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*bravo* 
avatar

  20  nonych Автор Сообщений: 125 - Евгеша

  • 11 сентября 2015, 14:01
комментарий был удален 2015-09-12 13:18:57 nonych

комментарий был удален 2015-09-12 13:19:07 nonych

комментарий был удален 2015-09-12 13:19:10 nonych


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