Напишу советник бесплатно - страница 166

 
Здравствуйте. Хочу обратиться к вам за советом.  Подскажите пожалуйста можно ли изменить советник так чтобы он торговал не против тренда, а наоборот по тренду?  Открывал новые позиции с увеличением лота по тренду.
 

Ilan 2.0

 
kammann659 #:
Здравствуйте. Хочу обратиться к вам за советом.  Подскажите пожалуйста можно ли изменить советник так чтобы он торговал не против тренда, а наоборот по тренду?  Открывал новые позиции с увеличением лота по тренду.
 

Ilan 2.0

здравствуйте, возможно

 

Добрый день. Я торгую отложенными ордерами (селстопы, байстопы). Хочу попросить написать часть кода, где будет выполняться условие- все отложенные ордера, которые находятся на расстоянии (икс) от текущей цены удаляются. ТО есть условно говоря "не большая свора" отложенных ордеров постоянно "тянутся" за текущей ценой.

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


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

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

Спасибо.

 

Здравствуйте, @Andrey Kuharev.

Вам для MT5 или для MT4 нужно?

 
Yuriy Bykov #:

Здравствуйте, @Andrey Kuharev.

Вам для MT5 или для MT4 нужно?

МТ4
 

Перечитал еще раз ваше описание и понял, что, скорее всего, неточно понимаю, что именно нужно сделать. Похоже, что вам нужно следующее:

  • Скрипт, который вы будете вручную при необходимости запускать на графике или функция, которую можно вам будет вставить в ваш код (или это советник, который постоянно работает и удаляет ненужные ордера?).
  • У него есть один параметр X - количество пипсов (целое число)
  • Он будет удалять отложенные ордера (только BuyStop и SellStop?) на символе того графика к которому применятся (или по всем символам? В этом случае X должен задаваться для каждого символа?)
  • Отложенный ордер по нужному символу нужного типа будет удален, если расстояние между его ценой открытия и текущей ценой оказалось больше, чем X
  • Выставлять ордера в его задачу не входит

Поправьте, если не так.

 
Yuriy Bykov #:

Перечитал еще раз ваше описание и понял, что, скорее всего, неточно понимаю, что именно нужно сделать. Похоже, что вам нужно следующее:

  • Скрипт, который вы будете вручную при необходимости запускать на графике или функция, которую можно вам будет вставить в ваш код (или это советник, который постоянно работает и удаляет ненужные ордера?).
  • У него есть один параметр X - количество пипсов (целое число)
  • Он будет удалять отложенные ордера (только BuyStop и SellStop?) на символе того графика к которому применятся (или по всем символам? В этом случае X должен задаваться для каждого символа?)
  • Отложенный ордер по нужному символу нужного типа будет удален, если расстояние между его ценой открытия и текущей ценой оказалось больше, чем X
  • Выставлять ордера в его задачу не входит

Поправьте, если не так.

нет нет, всё очень просто: на том графике где стоит там и должен удалять. это советник, я написал код (ну как бы если это прям можно назвать кодом - пару строк ))), который открывает отложенные ордера сел стоп и бай стоп , мне нужно просто что бы те отложенные которые оказывались от цены (соответственно сел стопы от бид, бай стопы от аск) на ИКС пунктов удалялись. ПОчему попросил написать именно код, что бы потом просто вставить его в свой советник - это я уже сам сделаю, что бы не отвлекать умных людей своими глупостями. Для большего понимания вот код того "советника" в который я хочу вставить функцию по удалению, наверное так Вам будет всё таки проще. В моем советнике параметр ИКС я обозначил как extern double v_util = 50;     // расстояние от текущей цены до удаляемых отложенных ордеров

//+------------------------------------------------------------------+
//|                                            Отложенные ордера.mq4 |
//|                        Copyright 2022, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//------- Внешние параметры советника -----------------------------------------+
extern double delitel_Equity_lots   = 140000;   // Делитель для определения рабочего лота.
extern double schag = 2;                        // шаг открытия отложенного ордера от текущей цены
extern double v_util = 50;                       // расстояние от текущей цены до удаляемых отложенных ордеров
extern int StopLoss = 10000;                      
extern int TakeProfit = 5;
extern int MagicBuy = 1111111;  // MagicNumber для ордеров BUY
extern int MagicSell = 2222222;  // MagicNumber для ордеров SELL
//+------------------------------------------------------------------+
void OnTick()
   
   {double Lots = NormalizeDouble(AccountBalance()/delitel_Equity_lots, 2);   // Объем позиции.                                 
   
   OrderSend(Symbol(),OP_BUYSTOP,Lots,NormalizeDouble(Ask+schag*_Point,_Digits) ,0,NormalizeDouble(Ask-(StopLoss-schag)*_Point,_Digits),
   NormalizeDouble(Ask+(TakeProfit+schag)*_Point,_Digits),MagicBuy);           // Открытие BuyStop
   Print (GetLastError()); // Сообщение об ошибке
   OrderSend(Symbol(),OP_SELLSTOP,Lots,NormalizeDouble(Bid-schag*_Point,_Digits),0,NormalizeDouble(Bid+(StopLoss-schag)*_Point,_Digits),
   NormalizeDouble(Bid-(TakeProfit+schag)*_Point,_Digits),MagicSell);         // Открытие SellStop
   Print (GetLastError()); // Сообщение об ошибке
   }
//+------------------------------------------------------------------+

Всё просто, никаких наворот. Я ж понимаю что за всякие выкрутасы нужно платить, никто не будет мудрить супер стратегии и супер коды бесплатно. Я пока хочу в этом направлении потестировать работу и прошу сделать простое удаление, ничего более...единственное, что, если не долго и не сложно можно было бы добавить параметр - расстояние между выставляемыми стопордерами, тогда было бы идеально.НО я ж понимаю что всё это труд и время..поэтому хотя бы удаление. Спасибо!

Discover new MetaTrader 5 opportunities with MQL5 community and services
Discover new MetaTrader 5 opportunities with MQL5 community and services
  • 2022.04.13
  • www.mql5.com
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
 
Вот что получилось. Надеюсь, это поможет протестировать работу.
Файлы:
Pending.mq4  10 kb
 
Yuriy Bykov #:
Вот что получилось. Надеюсь, это поможет протестировать работу.

подскажите пожалуйста, а плюс 10 вот тут:

   double minOpenPriceBuy = 1e+10;
   double maxOpenPriceBuy = 0;
   double minOpenPriceSell = 1e+10;
   double maxOpenPriceSell = 0;

, это десятка та что extern int delta = 10;

 

Нет, это другая форма записи числа 10000000000, чтобы не писать так

double minOpenPriceBuy = 10000000000;

...

Причина обращения: