Logo

Вход

Войти с помощью соц. сетей
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения
ТОП СООБЩЕНИЙ
06.07.2015, 18:23
Лучший ответ
Выплачено: 619 RUB
Сообщение от Leschich Посмотреть сообщение
Обещался Вам написать советника, если никто не откликнется ...однако, уже написали...
Привет!
Ой, спасибо!!! Ну надо же, даже неудобно как-то
Я как Матроскин из мультфильма "Теперь буду вдвойне счастлив"
Сейчас смотрю его!
Нравится! Беру в работу!
По настройкам вопрос:
Сообщение от Leschich Посмотреть сообщение
По 4-5 пункту… При одинаковых лотах рыночного и отложенного, стоплос и тейкпрофит в стоповых ордерах не выставляются… нет смысла, так как, когда стоповый станет рыночным, все равно удаляем стопы и профиты…
Это если в настройках "Обнулять/нет данные при срабатывании отложки" - выбрано "да, обнулять". А если нет?
Например когда рынок туда-сюда пляшет, то локированные ордера (даже одинакового объема) могут закрыться и по одиночке, согласно данным в профите и стопах. А так будет всегда лок висеть?!

А по поводу 4 стопа/4 профита
Сообщение от alexana Посмотреть сообщение
А отдельные настройки по ордерам для стопов и профита (в пунктах от текущей цены) - это скорее к тому скрипту нужнее будет. Вы правы, в этом советнике это не столь важно. Так что не надо. Хватит одной настройки на любые ордера.
помните писала?
Так я потом этот вопрос обдумывала, и все таки пришла к выводу что все-таки надо отдельно.
Объясню почему:
Например рынок идёт зигзагом, но вверх. Мы открыли long позицию с отложкой (пусть рыночный ордер это А, отложка -Б). С данными по стопам и профиту . Отложка сработала. Так вот, хотелось бы чтобы стоплосс А, был намного дальше чем стоплосс Б. Тоже самое с настройками профита.
06.05.2015, 12:15
Лучший ответ
Выплачено: 2191 RUB
Сообщение от p7777 Посмотреть сообщение
Итак, что я хочу!
Я вручную выставляю ордер ( например, buy) с заданным тейкпрофитом ( например, 20п). В этот же момент советник выставляет отложенный ордер (sell) на расстоянии ххх пунктов от выставленного мною ордера. Лот sell=buy.
.....
Количество пунктов до выставляемого советником замкА.
Поможете?
Я могу написать такую программу - по сроку примерно неделя. Если кто будет писать быстрее, то отпишитесь, чтобы не писал дубль. По выставлению ордера в ручную, правильно понял, что когда запускается советник, то указываете параметры и этот ордер открывается сразу или это тоже отложенный ордер. Уточните, так как по реализации это разный код.
06.07.2015, 23:38
Лучший ответ
Выплачено: 95364 RUB
Сообщение от alexana Посмотреть сообщение
Ой, спасибо!!! Ну надо же, даже неудобно как-то
Да ладно, код не сложный... Вот вторая версия. С большего устранил замечания. Погоняйте, особо сильно не проверял. Особенно в разных положениях True/False. Замечания и конструктивная критика принимается.Хотелось бы сделать основу советника, чтобы к мелочам не возвращаться. Что за инфу хотите видеть на экране, что удалить.. да, и с тралом уточните, стоповый нужен или для рыночных позиций. Как со стороны, сов видится как помощник к ручной торговле, однако, не плохо было бы ему каких нить функций подкинуть, чтобы немножко был самостоятельнее. Так что жду "гениальных идей" По возможности сделаем
06.05.2015, 14:07
Лучший ответ
Выплачено: 358 RUB
Сообщение от AIV Посмотреть сообщение
Я могу написать такую программу - по сроку примерно неделя. Если кто будет писать быстрее, то отпишитесь, чтобы не писал дубль. По выставлению ордера в ручную, правильно понял, что когда запускается советник, то указываете параметры и этот ордер открывается сразу или это тоже отложенный ордер. Уточните, так как по реализации это разный код.
.
Я вручную открываю первый ордер. Советник при этом автоматом устанавливает отложенный замОк. Так понятно?
04.07.2021, 17:00
Лучший ответ
Выплачено: 568 RUB
если все таки повезет и кто нибудь напишет советник по таким условиям

1. открытие сделок — все в ручную и в бай и в сел (без кнопок на экране все только через стандартный мт 4)

2.в советнике используем стоп лосс. тейк профит. множитель лота — расчёт разницы лотов.

техническое задание.

1. вход в рынок в ручную — а. советник выставляет а. тейк профит (параметр регулируется )

б. выставляет в противоположную сторону отложенный

ордер в 2 — 3 раза увеличенный (параметр регулируется плюс возможность его отключать ) с тейком (параметр регулируется )

на отложенный ордер трелинг стоп если возможно .т.е чтобы отложенный одер передвигался в без убыток при

приближении первого к тейк профиту и настройки этого параметра (т.е при срабатывании отложенного ордера будет вероятность что уже будет + по сделкам что дает возможность закрыть вручную и не ждать замков.

г. стоп лосс у первого ордера ( ручного входа) должен стоять на уровне тейка второго (увеличенного ) ордера

д. если первый ордер или второй ордер закрылся по тейку или в ручную — отложенник ( 3 ордер ) удаляется

2. при срабатывании второго ордера советник должен выставлять отложенник ( 3 ордер )на уровень первого ордера на разницу в объёме

3.если цена возвращается и срабатывает третий ордер то все тейки и стопы удаляться

4. при открытии любой части замка выставляем отложенный ордер по движению на х пунктов (параметр регулируется )т.е разница между баями и селам
всегда компенсируется отложенным ордером равным разнице . чтобы если разница 1 то не было такого что советник удваивает или утраивает.

5 .если у нас замок ( 2 селл и 2 бай ) и мы заходим отдельном ордером -- советник должен с ним работать также как и с предыдущим замком. если возможен такой вариант .

вроде все продумал спасибо .
07.05.2015, 22:21
Лучший ответ
Выплачено: 2191 RUB
locker.ex4Нажмите на изображение для увеличения.

Название:	locker.png
Просмотров:	1
Размер:	29.4 Кб
ID:	25670425
Написал робот локер по предлагаемому алгоритму.
lot = 0.01 Лот
tip = 0 0 - sell, 1- buy
profit = 100 Прибыль в пунктах
dist = 300 Дистанция на которую отступаем от выставленного ордера и ставим отложенный
magic = 12345 - магик, отмечает этим номером пару выставленных ордеров (открытый и отложенный).
Проверяйте программу в работе. Пишите ваши пожелания по модификации и сообщайте о найденных багах, если такие будут....
  • #1 Свернуть

    Помогите написать простой замкОвый советник

    Итак, что я хочу!
    Я вручную выставляю ордер ( например, buy) с заданным тейкпрофитом ( например, 20п). В этот же момент советник выставляет отложенный ордер (sell) на расстоянии ххх пунктов от выставленного мною ордера. Лот sell=buy.
    Если мой ордер закрывается по ТП, то советник удаляет отложенный ордер (sell).
    Если же срабатывает отложник (sell), то с мною выставленного ордера (buy) убирается ТП. Получается замОк.

    Выставляемые параметры советника:
    Количество пунктов ТП.
    Количество пунктов до выставляемого советником замкА.
    Вроде всё. Достаточно просто :-)
    Поможете?
  • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
  • #2 Свернуть

    Сообщение от p7777 Посмотреть сообщение
    Итак, что я хочу!
    Я вручную выставляю ордер ( например, buy) с заданным тейкпрофитом ( например, 20п). В этот же момент советник выставляет отложенный ордер (sell) на расстоянии ххх пунктов от выставленного мною ордера. Лот sell=buy.
    .....
    Количество пунктов до выставляемого советником замкА.
    Поможете?
    Я могу написать такую программу - по сроку примерно неделя. Если кто будет писать быстрее, то отпишитесь, чтобы не писал дубль. По выставлению ордера в ручную, правильно понял, что когда запускается советник, то указываете параметры и этот ордер открывается сразу или это тоже отложенный ордер. Уточните, так как по реализации это разный код.

    Комментарий

    • #3 Свернуть

      Сообщение от AIV Посмотреть сообщение
      Я могу написать такую программу - по сроку примерно неделя. Если кто будет писать быстрее, то отпишитесь, чтобы не писал дубль. По выставлению ордера в ручную, правильно понял, что когда запускается советник, то указываете параметры и этот ордер открывается сразу или это тоже отложенный ордер. Уточните, так как по реализации это разный код.
      .
      Я вручную открываю первый ордер. Советник при этом автоматом устанавливает отложенный замОк. Так понятно?

      Комментарий

      • #4 Свернуть

        locker.ex4Нажмите на изображение для увеличения.

Название:	locker.png
Просмотров:	1
Размер:	29.4 Кб
ID:	25670425
        Написал робот локер по предлагаемому алгоритму.
        lot = 0.01 Лот
        tip = 0 0 - sell, 1- buy
        profit = 100 Прибыль в пунктах
        dist = 300 Дистанция на которую отступаем от выставленного ордера и ставим отложенный
        magic = 12345 - магик, отмечает этим номером пару выставленных ордеров (открытый и отложенный).
        Проверяйте программу в работе. Пишите ваши пожелания по модификации и сообщайте о найденных багах, если такие будут....

        Комментарий

        • #5 Свернуть

          Если ордер закрылся по профиту и был удален автоматически отложенный ордер, то что будет делать робот дальше? Его надо перезапускать снова или что-то менять в настройках, чтобы снова выставил ордер? Можно ли выставить несколько текущих ордеров по одной паре?

          Комментарий

          • #6 Свернуть

            Сообщение от miltonia78 Посмотреть сообщение
            Если ордер закрылся по профиту и был удален автоматически отложенный ордер, то что будет делать робот дальше? Его надо перезапу:-)
            скать снова или что-то менять в настройках, чтобы снова выставил ордер? Можно ли выставить несколько текущих ордеров по одной паре?
            В идеале я хочу, чтобы робот просто помоал выставлять отложники. Я пробовал это делать руками, но для этого надо не отходить от терминала, что напрягает :-)

            Плюс робот должен при срабатывании замка, убирать тейкпрофит.

            Зы: в лично переписке с AIV я немного подкорректировал тз. Этого пока в выложеннном локере нету, но.... Я хочу чтоб локер выставлял сразу два отложника 'сверху' и ' снизу' ордера. При срабатывании одного из них, второй должен удаляться!

            Комментарий

            • #7 Свернуть

              Вопрос по ТЗ и реализации - в процессе торговли будет только один открытый руками ордер (другой или два других) выставляет робот, ориентируясь на магик 0 или таких ордеров может быть много? Если много, то насколько много ? Вопрос вызван тем, что если ордеров больше чем один выставляемых вручную, то надо будет использовать массив для ведения истории. Задача из простой и относительно легкой переходит в разряд коммерческих.... Ниже исходный код того, что есть в данный момент.
              MQL код:

              //+------------------------------------------------------------------+
              //| locker.mq4 |
              //| Copyright 2015, Igor Anantchenko |
              //| [url]https://mstrewards.ru[/url] |
              //+------------------------------------------------------------------+
              #property copyright "Copyright 2015, Igor Anantchenko"
              #property link "https://mstrewards.ru"
              #property version "1.00"
              #property strict
              extern double lot = 0.01;
              extern int tip = 0; // 0 - sell, 1- buy
              int flag=0;
              extern int profit = 100 ;
              extern int dist = 300 ;
              bool finih;
              extern int magic = 12345;
              double minstoplevel;
              double takeprofit;
              int ticket = -1;
              int ticket1 = -1;
              double price;
              int order_type;
              //+------------------------------------------------------------------+
              //| Expert initialization function |
              //+------------------------------------------------------------------+
              int OnInit()
              {
              //---

              if (tip==1)
              {
              //--- получим минимальное значение Stop level
              price=Ask;
              takeprofit=NormalizeDouble(Bid+profit*Point,Digits );
              //--- размещаем рыночный ордер на покупку
              ticket=OrderSend(Symbol(),OP_BUY,lot,price,3,0,tak eprofit," Locker ",magic,0,clrGreen);
              if(ticket<0)
              {
              Print("OrderSend завершилась с ошибкой #",GetLastError());
              }
              else
              {Print("Функция OrderSend успешно выполнена"); flag=1;}
              //---
              }

              if (tip==0)
              {
              //--- получим минимальное значение Stop level
              price=Bid;
              takeprofit=NormalizeDouble(Ask-profit*Point,Digits);
              //--- размещаем рыночный ордер на продажу
              ticket=OrderSend(Symbol(),OP_SELL,lot,price,3,0,ta keprofit," Locker ",magic,0,clrGreen);
              if(ticket<0)
              {
              Print("OrderSend завершилась с ошибкой #",GetLastError());
              }
              else
              {Print("Функция OrderSend успешно выполнена"); flag=1;}
              //---
              }

              if (flag==1 && tip == 0)
              {
              // Выставляем отложенный ордер на покупку
              //--- получим минимальное значение Stop level
              price=Ask;
              //--- размещаем рыночный ордер на покупку 1 лота
              ticket1=OrderSend(Symbol(),OP_BUYSTOP,lot,Normaliz eDouble(Ask+dist*Point,Digits),3,0,0," Locker ",magic,0,clrGreen);
              if(ticket1<0)
              {
              Print("OrderSend завершилась с ошибкой #",GetLastError());
              }
              else
              {Print("Функция OrderSend успешно выполнена"); flag=2;}
              //---
              }
              if (flag==1 && tip == 1)
              {
              // Выставляем отложенный ордер на продажу
              //--- получим минимальное значение Stop level
              price=Bid;
              //--- размещаем рыночный ордер на продажу
              ticket1=OrderSend(Symbol(),OP_SELLSTOP,lot,Normali zeDouble(Bid-dist*Point,Digits),3,0,0," Locker ",magic,0,clrGreen);
              if(ticket1<0)
              {
              Print("OrderSend завершилась с ошибкой #",GetLastError());
              }
              else
              {Print("Функция OrderSend успешно выполнена"); flag=2;}
              //---
              }

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

              }
              //+------------------------------------------------------------------+
              //| Expert tick function |
              //+------------------------------------------------------------------+
              void OnTick()
              {
              Comment(" Ордер 1 номер = ",ticket," Ордер 2 номер = ",ticket1);
              //---
              if (flag==4) return;

              if(OrderSelect(ticket, SELECT_BY_TICKET)==true)
              {

              if(OrderCloseTime()==0)
              // Проверить не открыт ли второй ордер
              //-----------------------------------------------
              if(OrderSelect(ticket1, SELECT_BY_TICKET)==true)
              {
              order_type=OrderType();
              if (order_type>1) return; // Первый ордер открыт, второй не открыт - ждать

              // Второй ордер открыт - надо убрать стоп по профиту у первого ордера и при успехе сделать flag=4
              bool res=OrderModify(ticket,OrderOpenPrice(),0,0,0,Blue );
              if(!res)
              Print("Ошибка модификации ордера. Код ошибки=",GetLastError());
              else
              flag=4;

              }
              //-----------------------------------------------
              if(OrderCloseTime()!=0)
              {
              // Удалить второй ордер
              finih=OrderDelete(ticket1,clrRed);
              if(finih==true) flag=4;
              }
              }
              else
              Print("OrderSelect() вернул ошибку - ",GetLastError());

              }
              //+------------------------------------------------------------------+

              Комментарий

              • #8 Свернуть

                Сообщение от miltonia78 Посмотреть сообщение
                Если ордер закрылся по профиту и был удален автоматически отложенный ордер, то что будет делать робот дальше? Его надо перезапускать снова или что-то менять в настройках, чтобы снова выставил ордер? Можно ли выставить несколько текущих ордеров по одной паре?
                Робот ничего делать не будет. Нужно снова запустить его - вытащив на график. По одной паре отслеживает только один ордер (один ордер с уникальном магиком - magic), если ходите, то можно и несколько ордеров, но каждый желательно в своем окне нового графика и, обязательно, со своим собственным уникальным магиком.

                Комментарий

                • #9 Свернуть

                  Сообщение от AIV Посмотреть сообщение
                  Вопрос по ТЗ и реализации - в процессе торговли будет только один открытый руками ордер (другой или два других) выставляет робот, ориентируясь на магик 0 или таких ордеров может быть много? Если много, то насколько много ? Вопрос вызван тем, что если ордеров больше чем один выставляемых вручную, то надо будет использовать массив для ведения истории. Задача из простой и относительно легкой переходит в разряд коммерческих.... Ниже исходный код того, что есть в данный момент.
                  MQL код:

                  //+------------------------------------------------------------------+
                  //| locker.mq4 |
                  //| Copyright 2015, Igor Anantchenko |
                  //| [url]https://mstrewards.ru[/url] |
                  //+------------------------------------------------------------------+
                  #property copyright "Copyright 2015, Igor Anantchenko"
                  #property link "https://mstrewards.ru"
                  #property version "1.00"
                  #property strict
                  extern double lot = 0.01;
                  extern int tip = 0; // 0 - sell, 1- buy
                  int flag=0;
                  extern int profit = 100 ;
                  extern int dist = 300 ;
                  bool finih;
                  extern int magic = 12345;
                  double minstoplevel;
                  double takeprofit;
                  int ticket = -1;
                  int ticket1 = -1;
                  double price;
                  int order_type;
                  //+------------------------------------------------------------------+
                  //| Expert initialization function |
                  //+------------------------------------------------------------------+
                  int OnInit()
                  {
                  //---

                  if (tip==1)
                  {
                  //--- получим минимальное значение Stop level
                  price=Ask;
                  takeprofit=NormalizeDouble(Bid+profit*Point,Digits );
                  //--- размещаем рыночный ордер на покупку
                  ticket=OrderSend(Symbol(),OP_BUY,lot,price,3,0,tak eprofit," Locker ",magic,0,clrGreen);
                  if(ticket<0)
                  {
                  Print("OrderSend завершилась с ошибкой #",GetLastError());
                  }
                  else
                  {Print("Функция OrderSend успешно выполнена"); flag=1;}
                  //---
                  }

                  if (tip==0)
                  {
                  //--- получим минимальное значение Stop level
                  price=Bid;
                  takeprofit=NormalizeDouble(Ask-profit*Point,Digits);
                  //--- размещаем рыночный ордер на продажу
                  ticket=OrderSend(Symbol(),OP_SELL,lot,price,3,0,ta keprofit," Locker ",magic,0,clrGreen);
                  if(ticket<0)
                  {
                  Print("OrderSend завершилась с ошибкой #",GetLastError());
                  }
                  else
                  {Print("Функция OrderSend успешно выполнена"); flag=1;}
                  //---
                  }

                  if (flag==1 && tip == 0)
                  {
                  // Выставляем отложенный ордер на покупку
                  //--- получим минимальное значение Stop level
                  price=Ask;
                  //--- размещаем рыночный ордер на покупку 1 лота
                  ticket1=OrderSend(Symbol(),OP_BUYSTOP,lot,Normaliz eDouble(Ask+dist*Point,Digits),3,0,0," Locker ",magic,0,clrGreen);
                  if(ticket1<0)
                  {
                  Print("OrderSend завершилась с ошибкой #",GetLastError());
                  }
                  else
                  {Print("Функция OrderSend успешно выполнена"); flag=2;}
                  //---
                  }
                  if (flag==1 && tip == 1)
                  {
                  // Выставляем отложенный ордер на продажу
                  //--- получим минимальное значение Stop level
                  price=Bid;
                  //--- размещаем рыночный ордер на продажу
                  ticket1=OrderSend(Symbol(),OP_SELLSTOP,lot,Normali zeDouble(Bid-dist*Point,Digits),3,0,0," Locker ",magic,0,clrGreen);
                  if(ticket1<0)
                  {
                  Print("OrderSend завершилась с ошибкой #",GetLastError());
                  }
                  else
                  {Print("Функция OrderSend успешно выполнена"); flag=2;}
                  //---
                  }

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

                  }
                  //+------------------------------------------------------------------+
                  //| Expert tick function |
                  //+------------------------------------------------------------------+
                  void OnTick()
                  {
                  Comment(" Ордер 1 номер = ",ticket," Ордер 2 номер = ",ticket1);
                  //---
                  if (flag==4) return;

                  if(OrderSelect(ticket, SELECT_BY_TICKET)==true)
                  {

                  if(OrderCloseTime()==0)
                  // Проверить не открыт ли второй ордер
                  //-----------------------------------------------
                  if(OrderSelect(ticket1, SELECT_BY_TICKET)==true)
                  {
                  order_type=OrderType();
                  if (order_type>1) return; // Первый ордер открыт, второй не открыт - ждать

                  // Второй ордер открыт - надо убрать стоп по профиту у первого ордера и при успехе сделать flag=4
                  bool res=OrderModify(ticket,OrderOpenPrice(),0,0,0,Blue );
                  if(!res)
                  Print("Ошибка модификации ордера. Код ошибки=",GetLastError());
                  else
                  flag=4;

                  }
                  //-----------------------------------------------
                  if(OrderCloseTime()!=0)
                  {
                  // Удалить второй ордер
                  finih=OrderDelete(ticket1,clrRed);
                  if(finih==true) flag=4;
                  }
                  }
                  else
                  Print("OrderSelect() вернул ошибку - ",GetLastError());

                  }
                  //+------------------------------------------------------------------+

                  Принципе, мне достаточно открывать по одному ордеру. После его локирования, я хотел бы, чтобы была возможность открыть следующий ордер. И локер должен его тоже подхватить.
                  Та и так далее. Такое возможно?

                  Комментарий

                  • #10 Свернуть

                    Можно сделать подхват нового ордера, если нет других ордеров. Когда есть залокированные ордера то, сделать труднее, так как нужно учитывать историю и отмечать где-то, что данные ордера относятся к локированным. Например, есть ордер А для него сработал лок ордер Б. Затем вы закрыли А. Б остался, советник видит, что ордер без пары и пытается ему выставить отложенный ордер, но это будет не правильно по требуемому подходу. Так? Идеальный вариант - только один ордер, который открывает пользователь и его подхватывает советник, ставя парный отложенный.

                    Комментарий

                    • #11 Свернуть

                      Сообщение от AIV Посмотреть сообщение
                      Можно сделать подхват нового ордера, если нет других ордеров. Когда есть залокированные ордера то, сделать труднее, так как нужно учитывать историю и отмечать где-то, что данные ордера относятся к локированным. Например, есть ордер А для него сработал лок ордер Б. Затем вы закрыли А. Б остался, советник видит, что ордер без пары и пытается ему выставить отложенный ордер, но это будет не правильно по требуемому подходу. Так? Идеальный вариант - только один ордер, который открывает пользователь и его подхватывает советник, ставя парный отложенный.
                      ок! давайте, для начала "Идеальный вариант - только один ордер, который открывает пользователь и его подхватывает советник, ставя парный отложенный. "
                      И как только происходит закрытие замка и открытие нового ордера - советник вновь ставит отложенные замки. Так?

                      Комментарий

                      • #12 Свернуть

                        Сообщение от AIV Посмотреть сообщение
                        Ниже исходный код того, что есть в данный момент.
                        Не ругается на размещение торговых функций в теле функции OnInit()?

                        Комментарий

                        • #13 Свернуть

                          Сообщение от Sanic Посмотреть сообщение
                          Не ругается на размещение торговых функций в теле функции OnInit()?
                          Не ругается, т.к. код корректный. Функция OnInit() вызывается однократно при инициализации программы. По реализованному алгоритму ордер открывается однократно, затем советник его сопровождает до закрытия (манипулируя с выставленным отложенным ордером) или до превращения отложенного ордера в сработавший локирующий. Формального запрета на размещение торговых функций в секции инициализации или завершения нет.

                          Комментарий

                          • #14 Свернуть

                            Уважаемые коллеги, подскажите, что поменять в существующем коде, чтобы я мог сам выставлять ордер buy или sell, а советник по тем же условиям выставлял отложник?

                            Сейчас в настройках советника можно выставить sell или buy, но при этом он сам выставляет ордер. Я же хочу вручную выставлять нужный мне ордер в нужном объёме!

                            Комментарий

                            • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
                            • #15 Свернуть

                              Добрый день!
                              Сообщение от p7777 Посмотреть сообщение
                              Уважаемые коллеги, подскажите, что поменять в существующем коде, чтобы я мог сам выставлять ордер buy или sell, а советник по тем же условиям выставлял отложник?

                              Сейчас в настройках советника можно выставить sell или buy, но при этом он сам выставляет ордер. Я же хочу вручную выставлять нужный мне ордер в нужном объёме!
                              Я тоже ищу советника, который будет удалять отложки по условию. Смотрю что ваша стратегия схожа с моей. Может объединим усилия и добьём?!

                              В теме "MQL4: Бесплатное написание программ" написала что хочу:
                              Сообщение от alexana Посмотреть сообщение
                              А что, а вдруг?!

                              Уважаемые программисты! Может кого-то заинтересует данная стратегия, и под неё напишет кто-то советника, так как ничего подобного найти к сожалению не могу, а заказать платно дороХо.

                              Стратегия такая:
                              Советник согласно настройкам запускает сразу 2 ордера:
                              Рыночный Buy и отложенный sell stop
                              ИЛИ
                              Рыночный Sell и отложенный BuyLimit

                              1. Главная задача советника отслеживать эти 2 своих ордера (рыночный и отложенный) таким образом:
                              - При закрытии рыночного ордера по профиту/стоплоссу/, отложенный ордер тоже сразу закрывается. Идентифицировать эту пару ордеров можно по одинаковому комментарию.

                              2. При откате цены, когда срабатывал отложенный ордер, когда происходит лок, то обнуляются все данные в СТОПлосс/тейк профит (если имеются) и прекращается трал (если был настроен). Советник останавливает работу.


                              3. Чтобы был выбор чтобы разрешать/нет советнику торговать (закольцевать работу). При разрешении торговать, когда ордера закроются, СОВ снова запускается, до тех пор пока не войдёт в лок. (потом как в п.2).
                              4. Выставляемые ордера имеют один комментарий (для идентификации).
                              5. Советник работает только со своими ордерами, другие не трогает.

                              В настройках должен быть выбор:
                              1. Buy = true/false; //открыть Buy ордер
                              Sell = true/false; //открыть Sell ордер
                              BuyLimit = true/false; //открыть BuyLimit ордера
                              SellStop = true/false; //открыть SellStop ордера

                              2. Настраиваемый объем лота для ордеров (для каждого вида ордера - отдельно)
                              3. Стоплосс и ТейкПрофит (для каждого вида ордера - отдельно)
                              4. Настраиваемый Трейлинг Стоп в пунктах от текущей цены (если "0" то трал не ведется)

                              Фактически по этим настройкам настраивается 2 разных советника:
                              1.Первый открывает только рыночный Buy и отложенный sell stop. Его использую когда цена ползёт вверх.
                              2.Второй открывает только рыночный Sell и отложенный BuyLimit. А его использую, когда цена идёт вниз.

                              Вот как-то так..
                              Последний раз редактировалось alexana; 29.06.2015, 16:53.

                              Комментарий

                              working...
                              X