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

Рейтинг 2146



РЕКОМЕНДУЮ



Доработка совы (по мартингейлу)

Андрей, Здравствуйте!
В сове нужно допилить следующее:

1) Функция открытия нового ордера, сразу же после закрытия серии ордеров или текущего ордера, должна быть отключаемая.

Переменная в настройки- вкл/откл.

2) В сову зашить индюка: FL23_Decompil.mq4 (4 Kb) Все настройки индюка вынести в сову и добавить в настройки два уровня:Level1, Level2. В индикаторе синяя линия (положительный сектор) должна быть привязана к ордерам-Buy, белая линия (отрицательный сектор) к ордерам- Sell!

Логика работы совы остается прежняя но с учетом добавки нового индюка, нужны следующие изменения:
Открытие любого ордера проходит через фильтр индюка Level1, Level2., если в этот момент линия индикатора находится в диапазоне уровней Level1/ Level2, то есть например (±0,5), это значит ЗАПРЕТ на открытие любого ордера, ожидаем следующего сигнала…
3) Если не трудно, добавьте фильтр времени: -В указанный период времени с 00,00 до 00,00 Запрет на открытие ордеров, при этом сов сопровождает свои ордера по любым дополнительным параметрам, например если в сов когда нибудь будет добавлен тралл и т.д.…

Сам советник:
//+------------------------------------------------------------------+
//|                                                         ExBB.mq4 |
//|                                              Copyright 2016, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, AM2"
#property link      "http://www.forexsystems.biz"
#property description "BBands expert advisor"

//--- Inputs
extern double Lots         = 0.1;  // лот
extern double KLot         = 2;    // умножение лота
extern double MaxLot       = 5;    // максимальный лот
extern int    StopLoss     = 5000; // лось
extern int    TakeProfit   = 5000; // язь
extern double Profit       = 50;   // язь в рублях
extern int    Shift        = 1;    // сдвиг
extern int    Slip         = 30;   // слипаж
//----
extern string IndName      = "BBands_Stop_v1";
extern int    Length       = 20;   // период BB 
extern int    Deviation    = 2;    // отклонение ВВ
extern double MoneyRisk    = 1;    // риск
extern int    Magic        = 20;   // магик

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

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

  }
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0)   sl=NormalizeDouble(price+StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price-TakeProfit*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0)   sl=NormalizeDouble(price-StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price+TakeProfit*Point,Digits);
     }

   r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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()<2) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   if(CountTrades()>0) lot=NormalizeDouble(Lots*MathPow(KLot,CountTrades()),2);
   if(lot>MaxLot)lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Закрытие позиции по типу ордера                                  |
//+------------------------------------------------------------------+
void CloseAll(int ot=-1)
  {
   bool cl;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0 && (ot==0 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slip,White);
              }
            if(OrderType()==1 && (ot==1 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slip,White);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double AllProfit()
  {
   double profit=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2) profit+=OrderProfit()+OrderSwap()+OrderCommission();
           }
        }
     }
   return (profit);
  }
//+------------------------------------------------------------------+
//| Результат последней сделки                                       |
//+------------------------------------------------------------------+
int LastDealResult()
  {
   int result=0;
   for(int i=OrdersHistoryTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderProfit()>0)
              {
               result=1;//tp 
               break; 
              }
           }
        }
     }
   return(result);
  }
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void OpenPos()
  {
//--- get Ind
   double BBBlue=iCustom(NULL,0,IndName,Length,Deviation,MoneyRisk,0,Shift);
   double BBRed=iCustom(NULL,0,IndName,Length,Deviation,MoneyRisk,1,Shift);
   double BBBlue2=iCustom(NULL,0,IndName,Length,Deviation,MoneyRisk,0,Shift+1);
   double BBRed2=iCustom(NULL,0,IndName,Length,Deviation,MoneyRisk,1,Shift+1);

//--- sell conditions
   if(BBRed>0 && BBBlue2>0)
     {
      PutOrder(1,Bid);
     }
//--- buy conditions
   if(BBBlue>0 && BBRed2>0)
     {
      PutOrder(0,Ask);
     }
//---
  }
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void Open2Pos()
  {
//--- get Ind
   double BBBlue=iCustom(NULL,0,IndName,Length,Deviation,MoneyRisk,0,Shift);
   double BBRed=iCustom(NULL,0,IndName,Length,Deviation,MoneyRisk,1,Shift);

   bool buy  = BBBlue>0;
   bool sell = BBRed>0;

//--- sell conditions
   if(sell)
     {
      PutOrder(1,Bid);
     }
//--- buy conditions
   if(buy)
     {
      PutOrder(0,Ask);
     }
//---
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(LastDealResult()==1 && CountTrades()<1) Open2Pos();

   if(t!=Time[0])
     {
      OpenPos();
      t=Time[0];
     }

   if(CountTrades()>1 && AllProfit()>Profit) CloseAll();

   Comment("\n Profit: ",AllProfit(),
           "\n Last Deal Result: ",LastDealResult());
  }
//+------------------------------------------------------------------+


С Уважением, Заранее благодарен!
  • +2
  • Просмотров: 2800
  • 6 декабря 2016, 14:18
  • Marik007
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
Сегодня или завтра буду смотреть.
avatar

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

  • 6 декабря 2016, 17:12
+
0
Хочу более правильно растолковать свою фразу: "… это значит ЗАПРЕТ на открытие любого ордера,..." --Более понятливо будет звучать так:… ЗАПРЕТ на открытие ордера Buy или Sell, линия индикатора которого находится в диапазоне уровней Level1/ Level2,… (далее по тексту).
Имелось в виду ЗАПРЕТ на одно направление, а не на оба сразу…, хотя вариант: на оба сразу, тоже возможен, когда обе линии находятся в данном диапазоне уровней.
-Да, и если будет 3) пункт- функция времени, то должна быть отключаемая в настройках.<img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' <img src='http://opentraders.ru/templates/skin/g6h/images/smilies/002.gif' alt=' :) '>&nbsp; '>&nbsp; 
Редактирован: 6 декабря 2016, 19:42
avatar

  19  Marik007 Автор Сообщений: 417 - Forexman

  • 6 декабря 2016, 17:58
+
0
Покажите на скрине входы?
avatar

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

  • 6 декабря 2016, 19:44
+
0
Сделал вариант: www.opentraders.ru/downloads/1415/


//+------------------------------------------------------------------+
//|                                                          FL2.mq4 |
//|                                              Copyright 2016, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, AM2"
#property link      "http://www.forexsystems.biz"
#property description "BBands expert advisor"

//--- Inputs
extern double Lots         = 0.1;  // лот
extern double KLot         = 2;    // умножение лота
extern double MaxLot       = 5;    // максимальный лот
extern int    StopLoss     = 5000; // лось
extern int    TakeProfit   = 5000; // язь
extern double Profit       = 50;   // язь в рублях
extern int    StartHour    = 0;    // час начала торговли
extern int    StartMin     = 30;   // минута начала торговли
extern int    EndHour      = 23;   // час окончания торговли
extern int    EndMin       = 30;   // минута окончания торговли
extern int    Shift        = 2;    // сдвиг
extern int    Slip         = 30;   // слипаж
extern int    Magic        = 123;  // магик
//----
extern string IndName      = "FL23_Decompil";
extern double LevelUP      = 0.3;      // уровень индикатора
extern double LevelDN      = -0.3;     // уровень индикатора

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

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

  }
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0)   sl=NormalizeDouble(price+StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price-TakeProfit*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0)   sl=NormalizeDouble(price-StopLoss*Point,Digits);
      if(TakeProfit>0) tp=NormalizeDouble(price+TakeProfit*Point,Digits);
     }

   r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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)+" "+(string)hb+":"+(string)mb);
   de=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+(string)he+":"+(string)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);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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()<2) count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;
   if(CountTrades()>0) lot=NormalizeDouble(Lots*MathPow(KLot,CountTrades()),2);
   if(lot>MaxLot)lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Закрытие позиции по типу ордера                                  |
//+------------------------------------------------------------------+
void CloseAll(int ot=-1)
  {
   bool cl;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==0 && (ot==0 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slip,White);
              }
            if(OrderType()==1 && (ot==1 || ot==-1))
              {
               RefreshRates();
               cl=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slip,White);
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double AllProfit()
  {
   double profit=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()<2) profit+=OrderProfit()+OrderSwap()+OrderCommission();
           }
        }
     }
   return (profit);
  }
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void OpenPos()
  {
//--- get Ind
   double fl=iCustom(NULL,0,IndName,0,Shift);

//--- sell conditions
   if(fl<LevelDN)
     {
      PutOrder(1,Bid);
     }
//--- buy conditions
   if(fl>LevelUP)
     {
      PutOrder(0,Ask);
     }
//---
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   double fl=iCustom(NULL,0,IndName,0,Shift);

   if(t!=Time[0] && isTradeTimeInt(StartHour,StartMin,EndHour,EndMin))
     {
      OpenPos();
      t=Time[0];
     }

   if(CountTrades()>1 && AllProfit()>Profit) CloseAll();

   Comment("\n Profit: ",AllProfit(),
           "\n FL: ",fl);
  }
//+------------------------------------------------------------------+



Советник какое то время идет нормально но потом попадает вот в такую полосу:


Редактирован: 6 декабря 2016, 21:30
avatar

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

  • 6 декабря 2016, 20:44
+
0
Андрей, я написал в ТЗ (прочтите внимательно):… Логика работы совы остается прежняя..., исходный код менять не нужно, то есть входы по индикатору BBands! с сохранением последующей логики…
Только не большое изменение:
1) Функция открытия нового ордера, сразу же после закрытия серии ордеров или текущего ордера, должна быть отключаемая.Переменная в настройки- вкл/откл
2)Открытие любого ордера проходит через фильтр индюка Level1, Level2.… ну и далее все по ТЗ.
Эти переменные: ( «BBands_Stop_v1»;
extern int Length = 20; // период BB
extern int Deviation = 2; // отклонение ВВ
extern double MoneyRisk = 1; // риск

нужны в настройках совы… все как было в исходном коде!
А так же в настройках нужны параметры (FL23_Decompil):

extern string Notealerts = "-----Alert Settings-----";
extern bool MsgAlerts = TRUE;
extern bool SoundAlerts = TRUE;
extern string SoundAlertFile = «alert.wave»;
extern bool eMailAlerts = FALSE;
int G_bars_104;
extern int BarsCount = 17;

И по поводу временного блока, не знаю в вашем варианте будет ли сохраняться, то что я просил в 3) пункте ТЗ?

Редактирован: 6 декабря 2016, 21:32
avatar

  19  Marik007 Автор Сообщений: 417 - Forexman

  • 6 декабря 2016, 21:28
+
0
Андрей, я написал в ТЗ (прочтите внимательно):… Логика работы совы остается прежняя..., исходный код менять не нужно, то есть входы по индикатору BBands! с сохранением последующей логики…

Желательно со скринами все делать, чтобы не было подобных недоразумений о чем я и просил в самом начале, поэтому я повторяю свой вопрос?

1) Функция открытия нового ордера, сразу же после закрытия серии ордеров или текущего ордера, должна быть отключаемая.Переменная в настройки- вкл/откл


Как это?
Редактирован: 6 декабря 2016, 21:41
avatar

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

  • 6 декабря 2016, 21:40
+
0
Сейчас в сове такая логика: (сразу же после закрытия накопленной (мартин)серии ордеров или одного (если он один) ордера, выставляется новый ордер того же направления.
Андрей, вот здесь подробное описание исходной совы которую Вы мне собирали. Новую сову собирать не нужно!, только допилить старую!
Нужно эту функцию: «открытия нового ордера», сделать отключаемую.Эту функцию в настройки — вкл/откл
Если отключено то ждем нового сигнала на вход от индикатора BBands_Stop_v1
Например: from new order- true/false

Редактирован: 7 декабря 2016, 00:42
avatar

  19  Marik007 Автор Сообщений: 417 - Forexman

  • 6 декабря 2016, 22:02
+
0
Андрей вот я сделал скрин, что нужно добавить в код исходного советника, что касается добавления еще одного индикатора(FL23_Decompil) в качестве своеобразного фильтра

За основу нужно взять сову в ТЗ и к ней прикрутить все по моему описанию…
Если я, что то не понятно написал, то я готов терпеливо объяснить и изложить свои мысли, что бы помочь Вам в реализации мной задуманного.
Вы, уж пожалуйста не сердитесь на меня, если я что то не так излагаю (давайте спишим на мой пенсионный возраст) ;)  Я буду стараться Вам помочь, всем чем только смогу..., только бы получить задуманный конечный результат по тех. заданию.*yes* 
avatar

  19  Marik007 Автор Сообщений: 417 - Forexman

  • 6 декабря 2016, 23:20
+
0
Андрей, я собрал основные параметры которые нужны в настройках совы:

extern double Lots         = 0.1;  // лот
extern double KLot         = 2;    // умножение лота
extern double MaxLot       = 5;    // максимальный лот
extern int    StopLoss     = 5000; // лось
extern int    TakeProfit   = 5000; // язь
extern double Profit       = 50;   // язь в рублях
extern int    Shift        = 1;    // сдвиг
extern int    Slip         = 30;   // слипаж
//----
extern string IndName      = "BBands_Stop_v1";
extern int    Length       = 20;   // период BB 
extern int    Deviation    = 2;    // отклонение ВВ
extern double MoneyRisk    = 1;    // риск
extern int    Magic        = 20;   // магик

extern string IndName      = "FL23_Decompil";
extern double LevelUP      = 0.3;      // уровень индикатора
extern double LevelDN      = -0.3;     // уровень индикатора
extern string Notealerts     = "-----Alert Settings-----";
extern bool   MsgAlerts      = TRUE;
extern bool   SoundAlerts    = TRUE;
extern string SoundAlertFile = "alert.wave";
extern bool   eMailAlerts    = FALSE;
extern int    BarsCount      = 17

from new order             = true/false // функция: «открытия нового ордера»

          Time parameters  = true/false //отключение блока времени         
extern int    StartHour    = 18;    // час начала запрет торговли
extern int    StartMin     = 30;   // минута начала запрет торговли
extern int    EndHour      = 09;   // час окончания запрет торговли
extern int    EndMin       = 30;   // минута окончания запрет торговли


С «Блоком времени», возможны варианты, может у Вас свое виденье реализации 3)-го пункта ТЗ. Но он обязательно должен быть отключаемый.
Андрей, если Вам сложно или покажется слишком много, то 3-й пункт ТЗ можно не делать.
Главное реализовать 1-й и 2-й пункты ТЗ!!! ЭТО ОСНОВНОЕ!
Повторюсь еще раз: ЗДЕСЬ описание исходной совы которую Вы мне собирали, которую нужно допилить по ТЗ.
avatar

  19  Marik007 Автор Сообщений: 417 - Forexman

  • 7 декабря 2016, 01:49
+
0
Вечером буду доделывать, п.3. тоже добавлю там просто.
avatar

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

  • 7 декабря 2016, 11:45
+
0
Спасибо, буду ждать.*good*  Вам УДАЧИ и ТЕРПЕНИЯ в Вашем не легком труде!!!;) 
avatar

  19  Marik007 Автор Сообщений: 417 - Forexman

  • 7 декабря 2016, 12:07
+
0
Сейчас по ТЗ все есть: www.opentraders.ru/downloads/1415/

avatar

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

  • 7 декабря 2016, 19:26
+
0
Андрей, Огромное спасибо! буду пробовать что получилось.
У меня пока один вопрос: --как работает TrailingStop в моем варианте, при каком то заданном значении? Потому как одна переменная нет ни шага не чего более?
avatar

  19  Marik007 Автор Сообщений: 417 - Forexman

  • 7 декабря 2016, 20:29
+
0
Если трал 300, начинает тянуть стоп при выходе в прибыль на это количество пунктов.
avatar

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

  • 7 декабря 2016, 20:36
+
0
Андрей, можно Вас попросить по тралу не большое уточнение до кодировать,:
--Что бы TrailingStop работал только тогда, когда открыт один ордер! Если появляется второй (включается мартин) то TrailingStop-отключается (прекращает тралить), так как если он будет тралить все ордера, может нарушится работа мартина и появятся зависшие ордера…
Ну и,(если не сложно) что бы больше не возвращаться к тралу сделайте его отключаемым: TrailingStop = true/false (вынести в настройки)
avatar

  19  Marik007 Автор Сообщений: 417 - Forexman

  • 7 декабря 2016, 22:09
+
0
А может TrailingStop при значении =0 не тралит… (правильно я думаю?) Тогда первую часть просьбы… пожалуйста сделайте.
avatar

  19  Marik007 Автор Сообщений: 417 - Forexman

  • 7 декабря 2016, 22:16
+
0
Сделаю чтобы трал работал только когда одна поза. Если 0 то трал отключен.
avatar

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

  • 8 декабря 2016, 07:30
+
0
avatar

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

  • 8 декабря 2016, 17:42
комментарий был удален 2016-12-12 11:31:01 Marik007

комментарий был удален 2016-12-12 11:30:49 Marik007

+
0
Просьба устранить не точность в логике сова: -нужно, что бы при отключенной переменной " NewOrder = false; // открытие нового ордера", происходило закрытие текущей поз. сигналом противоположного тренда, при смене цвета индикатора.
avatar

  19  Marik007 Автор Сообщений: 417 - Forexman

  • 22 февраля 2017, 01:58

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