← К каталогу
Исходный код · ID 3202

cm_script_opengread_30.12.13.mq4

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный продукт представляет собой торговый советник для платформы MetaTrader 4, предназначенный для автоматического открытия рыночных и отложенных ордеров после наступления заданного времени. Советник позволяет настраивать типы ордеров, объёмы сделок, шаги размещения и уровни стоп-лосса с тейк-профитом.

Советник поддерживает шесть типов ордеров: Buy, Sell, BuyStop, SellStop, BuyLimit и SellLimit. Каждый тип может быть включён или отключён отдельно. Отложенные ордера размещаются серией с заданным количеством позиций, при этом объёмы и цены рассчитываются по настраиваемым параметрам.

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

Настройки программы

НастройкаОписание
????? ??????????? ???????, ???? ??????? ????? ?????? ??????????????, ?? ???????????? ????? (TimeSet) Дата и время, после которых советник начинает размещение ордеров. До указанного времени советник ожидает.
??????? Buy ????? (Buy) Включает или отключает открытие рыночного ордера Buy (покупка).
??????? Sell ????? (Sell) Включает или отключает открытие рыночного ордера Sell (продажа).
??????? BuyStop ?????? (BuyStop) Включает или отключает размещение отложенного ордера BuyStop (покупка по цене выше текущей).
??????? BuyLimit ?????? (BuyLimit) Включает или отключает размещение отложенного ордера BuyLimit (покупка по цене ниже текущей).
??????? SellStop ?????? (SellStop) Включает или отключает размещение отложенного ордера SellStop (продажа по цене ниже текущей).
??????? SellLimit ?????? (SellLimit) Включает или отключает размещение отложенного ордера SellLimit (продажа по цене выше текущей).
__ Текстовый разделитель (визуальный разделитель параметров в списке настроек).
???? ??????????? ??????? BuyStop ??????, ???? 0 ?? ?????? BuyStop ????? ????????? ?? ???? Ask+FirstS (FirstBuyStop) Начальная цена для первого отложенного ордера BuyStop. Если 0, цена рассчитывается от текущей цены Ask с учётом начального расстояния.
???? ??????????? ??????? SellStop ??????, ???? 0 ?? ?????? SellStop ????? ????????? ?? ???? Bid-Firs (FirstSellStop) Начальная цена для первого отложенного ордера SellStop. Если 0, цена рассчитывается от текущей цены Bid с учётом начального расстояния.
???? ??????????? ??????? BuyLimit ??????, ???? 0 ?? ?????? BuyLimit ????? ????????? ?? ???? Bid-Firs (FirstBuyLimit) Начальная цена для первого отложенного ордера BuyLimit. Если 0, цена рассчитывается от текущей цены Bid с учётом начального расстояния.
???? ??????????? ??????? SellLimit ??????, ???? 0 ?? ?????? SellLimit ????? ????????? ?? ???? Ask+Fi (FirstSellLimit) Начальная цена для первого отложенного ордера SellLimit. Если 0, цена рассчитывается от текущей цены Bid с учётом начального расстояния.
?????????? (? ???????) ?? ??????? ???? ?? ??????? Stop ?????? ? ?????? First..Stop=0 (FirstStop) Начальное расстояние в пунктах для расчёта цены первого отложенного ордера Stop при значении параметра FirstBuyStop или FirstSellStop, равном нулю.
?????????? (? ???????) ?? ??????? ???? ?? ??????? Limit ?????? ? ?????? First..Limit=0 (FirstLimit) Начальное расстояние в пунктах для расчёта цены первого отложенного ордера Limit при значении параметра FirstBuyLimit или FirstSellLimit, равном нулю.
?????????? (? ???????) ????? Stop ???????? (StepStop) Шаг изменения цены для отложенных ордеров Stop в пунктах на каждой итерации серии.
??????????? ?????????? ????? (K_StepStop) Множитель для расчёта шага изменения цены отложенных ордеров Stop на каждой итерации серии.
?????????? (? ???????) ????? Limit ???????? (StepLimit) Шаг изменения цены для отложенных ордеров Limit в пунктах на каждой итерации серии.
??????????? ?????????? ????? (K_StepLimit) Множитель для расчёта шага изменения цены отложенных ордеров Limit на каждой итерации серии.
_ Текстовый разделитель (визуальный разделитель параметров в списке настроек).
???-?? ??????? ????? (Orders) Количество ордеров в серии для каждого типа отложенных ордеров.
????? ???????? ??????? (LotMarket) Объём лота для рыночных ордеров Buy и Sell.
????? ??????? Stop ?????? (LotStop) Начальный объём лота для отложенных ордеров Stop.
????????? ???? Stop ??????? (K_LotStop) Множитель для расчёта объёма лота отложенных ордеров Stop на каждой итерации серии.
?????????? ???? Stop ??????? (Plus_LotStop) Дополнительное фиксированное значение, прибавляемое к объёму лота отложенных ордеров Stop на каждой итерации.
????? ??????? Limit ?????? (LotLimit) Начальный объём лота для отложенных ордеров Limit.
????????? ???? Limit ??????? (K_LotLimit) Множитель для расчёта объёма лота отложенных ордеров Limit на каждой итерации серии.
?????????? ???? Limit ??????? (Plus_LotLimit) Дополнительное фиксированное значение, прибавляемое к объёму лота отложенных ордеров Limit на каждой итерации.
??????? ??????????? SL, ???? 0, ?? SL ?? ???????????? (stoploss) Расстояние стоп-лосса в пунктах от цены ордера. Если 0, стоп-лосс не устанавливается.
??????? ??????????? TP, ???? 0, ?? TP ?? ???????????? (takeprofit) Расстояние тейк-профита в пунктах от цены ордера. Если 0, тейк-профит не устанавливается.
???? ????????? ??????????? ?????? ? ????????, ???? 0, ?? ???? ?? ????????? (86400 - ?????) (Expiration) Время жизни отложенных ордеров в секундах. Если значение 0, ордера не имеют ограничения по сроку действия.
???-?? ??????? ???????? ?????? (attempts) Максимальное количество повторных попыток размещения ордера при возникновении ошибки.
?????????? ????? ?????? (Magic) Магическое число для идентификации ордеров, размещённых советником.
Получить полный код

Поиск по коду файла

#property show_inputs

extern datetime TimeSet        = D'2013.10.01 00:00:00'; //????? ??????????? ???????, ???? ??????? ????? ?????? ??????????????, ?? ???????????? ?????
extern bool     Buy            = true;     //??????? Buy ????? 
extern bool     Sell           = true;     //??????? Sell ????? 
extern bool     BuyStop        = true;     //??????? BuyStop ?????? 
extern bool     BuyLimit       = true;     //??????? BuyLimit ?????? 
extern bool     SellStop       = true;     //??????? SellStop ?????? 
extern bool     SellLimit      = true;     //??????? SellLimit ?????? 
extern string   __             = "";
extern double   FirstBuyStop   = 0;        //???? ??????????? ??????? BuyStop ??????, ???? 0 ?? ?????? BuyStop ????? ????????? ?? ???? Ask+FirstStop
extern double   FirstSellStop  = 0;        //???? ??????????? ??????? SellStop ??????, ???? 0 ?? ?????? SellStop ????? ????????? ?? ???? Bid-FirstStop
extern double   FirstBuyLimit  = 0;        //???? ??????????? ??????? BuyLimit ??????, ???? 0 ?? ?????? BuyLimit ????? ????????? ?? ???? Bid-FirstStop
extern double   FirstSellLimit = 0;        //???? ??????????? ??????? SellLimit ??????, ???? 0 ?? ?????? SellLimit ????? ????????? ?? ???? Ask+FirstStop
extern int      FirstStop      = 100;      //?????????? (? ???????) ?? ??????? ???? ?? ??????? Stop ?????? ? ?????? First..Stop=0 
extern int      FirstLimit     = 50;       //?????????? (? ???????) ?? ??????? ???? ?? ??????? Limit ?????? ? ?????? First..Limit=0
extern int      StepStop       = 30;       //?????????? (? ???????) ????? Stop ????????
extern double   K_StepStop     = 1;        //??????????? ?????????? ?????
extern int      StepLimit      = 30;       //?????????? (? ???????) ????? Limit ????????
extern double   K_StepLimit    = 1;        //??????????? ?????????? ?????
extern string   _              = "";
extern int      Orders         = 5;        //???-?? ??????? ?????
extern double   LotMarket      = 0.5;      //????? ???????? ???????
extern double   LotStop        = 0.5;      //????? ??????? Stop ??????
extern double   K_LotStop      = 1;        //????????? ???? Stop ??????? 
extern double   Plus_LotStop   = 0;        //?????????? ???? Stop ??????? 
extern double   LotLimit       = 0.1;      //????? ??????? Limit ??????
extern double   K_LotLimit     = 2;        //????????? ???? Limit ???????
extern double   Plus_LotLimit  = 0;        //?????????? ???? Limit ???????
extern int      stoploss       = 50;       //??????? ??????????? SL, ???? 0, ?? SL ?? ????????????
extern int      takeprofit     = 100;      //??????? ??????????? TP, ???? 0, ?? TP ?? ????????????
extern int      Expiration     = 36000;    //???? ????????? ??????????? ?????? ? ????????, ???? 0, ?? ???? ?? ????????? (86400 - ?????)
extern int      attempts       = 10;       //???-?? ??????? ???????? ?????? 
extern int      Magic          = 0;        //?????????? ????? ??????
extern string   Order_Comment  = "";

string txt;
int n,slippage=3,STOPLEVEL;
datetime expiration;

int start()
{
      // код доступен только после оплаты
   }

/*============================================*/if (IsTesting() && OrdersTotal()>0) return(0);/*===============================================*/

   if (Expiration>0) expiration=TimeCurrent()+Expiration; else expiration=0;
   Comment("?????? ??????? OpenStopOrderNetTime ",TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS));
   STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL);
   if (Digits==3 || Digits==5) slippage=30;
   while (TimeCurrent()<TimeSet)
   {
      Sleep(1000);
      Comment("?????? ??????????? ????? ?????????? ??????? Copyright ? 2013 c******n*@narod.ru\n",
      TimeToStr(TimeCurrent(),TIME_SECONDS)," ?? ??????????? ????? ???????? ",TimeToStr(TimeSet-TimeCurrent(),TIME_SECONDS));
      RefreshRates();
   }
   double PriceBS,PriceBL,PriceSS,PriceSL;
   double LOTs=LotStop;
   double LOTl=LotLimit;
   if (FirstBuyStop==0) PriceBS = NormalizeDouble(Ask+FirstStop*Point,Digits);
   else PriceBS = NormalizeDouble(FirstBuyStop,Digits);
   if ((PriceBS-Ask)/Point<STOPLEVEL) {Alert("?????? ????? BuyStop ?? ????? ???? ?????????? ????? ??? ",STOPLEVEL," ?");return(0);}

   if (FirstSellStop==0) PriceSS = NormalizeDouble(Bid-FirstStop*Point,Digits);
   else PriceSS = NormalizeDouble(FirstSellStop,Digits);
   if ((Bid-PriceSS)/Point<STOPLEVEL) {Alert("?????? ????? SellStop ?? ????? ???? ?????????? ????? ??? ",STOPLEVEL," ?");return(0);}

   if (FirstBuyLimit==0) PriceBL = NormalizeDouble(Bid-FirstLimit*Point,Digits);
   else PriceBL = NormalizeDouble(FirstBuyLimit,Digits);
   if ((Bid-PriceBL)/Point<STOPLEVEL) {Alert("?????? ????? BuyLimit ?? ????? ???? ?????????? ????? ??? ",STOPLEVEL," ?");return(0);}

   if (FirstSellLimit==0) PriceSL = NormalizeDouble(Ask+FirstLimit*Point,Digits);
   else PriceSL = NormalizeDouble(FirstSellLimit,Digits);
   if ((PriceSL-Ask)/Point<STOPLEVEL) {Alert("?????? ????? SellLimit ?? ????? ???? ?????????? ????? ??? ",STOPLEVEL," ?");return(0);}

   double Step_Stop=StepStop;
   double Step_Limit=StepLimit;
   if (Buy) OPENORDER (OP_BUY,Ask,LotMarket,0);
   if (Sell) OPENORDER (OP_SELL,Bid,LotMarket,0);
   for (int i=1; i<=Orders; i++)
   {
      if (BuyStop||SellStop)
      {
         Step_Stop=Step_Stop*K_StepStop;
         if (BuyStop)
         {
            OPENORDER (OP_BUYSTOP,PriceBS,LOTs,i);
            PriceBS = NormalizeDouble(PriceBS+Step_Stop*Point,Digits);
         }
         if (SellStop)
         {  
            OPENORDER (OP_SELLSTOP,PriceSS,LOTs,i);
 

Показано первые 50% кода (символов: 8579)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
857,90₽ ≈ $10.49