Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ilan 2.0
Ilan 2.0
здравствуйте, возможно
Добрый день. Я торгую отложенными ордерами (селстопы, байстопы). Хочу попросить написать часть кода, где будет выполняться условие- все отложенные ордера, которые находятся на расстоянии (икс) от текущей цены удаляются. ТО есть условно говоря "не большая свора" отложенных ордеров постоянно "тянутся" за текущей ценой.
Конечно, данную идею можно реализовать немного другим способом, например контролировать количество селстопов и байстопов и при этом тралить их, что бы дальние перемещались ближе к текущей цене.
Как по мне, по момему это одно и тоже, но мне почему то нравится первый вариант. Для первого случая расстояние икс должно быть изменяемым в условии.
Я понимаю, что это не особо много кода. Я пытался понять что и как нужно описать, смотрел, изучал похожие советники, но как это переделать в мой вариант, к сожалению мозгов не хватает.
Спасибо.
Здравствуйте, @Andrey Kuharev.
Вам для MT5 или для MT4 нужно?
Здравствуйте, @Andrey Kuharev.
Вам для MT5 или для MT4 нужно?
Перечитал еще раз ваше описание и понял, что, скорее всего, неточно понимаю, что именно нужно сделать. Похоже, что вам нужно следующее:
Поправьте, если не так.
Перечитал еще раз ваше описание и понял, что, скорее всего, неточно понимаю, что именно нужно сделать. Похоже, что вам нужно следующее:
Поправьте, если не так.
нет нет, всё очень просто: на том графике где стоит там и должен удалять. это советник, я написал код (ну как бы если это прям можно назвать кодом - пару строк ))), который открывает отложенные ордера сел стоп и бай стоп , мне нужно просто что бы те отложенные которые оказывались от цены (соответственно сел стопы от бид, бай стопы от аск) на ИКС пунктов удалялись. ПОчему попросил написать именно код, что бы потом просто вставить его в свой советник - это я уже сам сделаю, что бы не отвлекать умных людей своими глупостями. Для большего понимания вот код того "советника" в который я хочу вставить функцию по удалению, наверное так Вам будет всё таки проще. В моем советнике параметр ИКС я обозначил как 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()); // Сообщение об ошибке
}
//+------------------------------------------------------------------+
Всё просто, никаких наворот. Я ж понимаю что за всякие выкрутасы нужно платить, никто не будет мудрить супер стратегии и супер коды бесплатно. Я пока хочу в этом направлении потестировать работу и прошу сделать простое удаление, ничего более...единственное, что, если не долго и не сложно можно было бы добавить параметр - расстояние между выставляемыми стопордерами, тогда было бы идеально.НО я ж понимаю что всё это труд и время..поэтому хотя бы удаление. Спасибо!
Вот что получилось. Надеюсь, это поможет протестировать работу.
подскажите пожалуйста, а плюс 10 вот тут:
double minOpenPriceBuy = 1e+10;
double maxOpenPriceBuy = 0;
double minOpenPriceSell = 1e+10;
double maxOpenPriceSell = 0;
, это десятка та что extern int delta = 10;
Нет, это другая форма записи числа 10000000000, чтобы не писать так
...