Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 4277
- Рейтинг:
- Опубликован:
- 2017.08.28 14:01
- Обновлен:
- 2021.03.12 04:13
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Скрипт "Pending orders DOWN" выставляет сетку ордеров ВНИЗ от текущей цены.
Входные параметры
- Gap for pending orders DOWN from the current price (in pips) - отступ от текущей цены для первого отложенного ордера;
- Step between orders DOWN (in pips) - шаг между отложенными ордерами;
- Type of pending orders DOWN - тип отложенного ордера (может быть или Buy Limit или Sell Stop);
- DOWN quantity - количество выставляемых ордеров;
- Lots - объем каждого отложенного ордера;
- Stop Loss (in pips) - стоп лосс;
- Take Profit (in pips) - тейк профит.
Скрипт осуществляет максимально быструю отправку торговых приказов на размещение отложенных ордеров благодаря включению асинхронного режима торговых операций:
m_trade.SetAsyncMode(true);
Вот пример отправки торговых приказов для пяти отложенных ордеров:
2018.02.26 13:06:11.073 script Pending orders DOWN (EURCAD,H1) loaded successfully 2018.02.26 13:06:13.736 '7884130': sell stop 0.01 EURCAD at 1.55817 sl: 1.56017 tp: 1.55617 2018.02.26 13:06:13.736 '7884130': sell stop 0.01 EURCAD at 1.55517 sl: 1.55717 tp: 1.55317 2018.02.26 13:06:13.736 '7884130': sell stop 0.01 EURCAD at 1.55217 sl: 1.55417 tp: 1.55017 2018.02.26 13:06:13.736 '7884130': sell stop 0.01 EURCAD at 1.54917 sl: 1.55117 tp: 1.54717 2018.02.26 13:06:13.737 '7884130': sell stop 0.01 EURCAD at 1.54617 sl: 1.54817 tp: 1.54417 2018.02.26 13:06:13.737 script Pending orders DOWN (EURCAD,H1) removed
Пять приказов БЫЛИ ОТПРАВЛЕНЫ за 1 миллисекунду!
А теперь полный отчет, от начала старта скрипта и до его выгрузки (время отправки первого торгового приказа 2017.08.28 09:00:35.272):
2017.08.28 09:00:30.227 Scripts script Pending orders DOWN (AUDCAD,Daily) loaded successfully 2017.08.28 09:00:35.272 Trades '6121033': sell stop 0.01 AUDCAD at 0.98893 sl: 0.99143 tp: 0.98693 2017.08.28 09:00:35.272 Trades '6121033': sell stop 0.01 AUDCAD at 0.98743 sl: 0.98993 tp: 0.98543 2017.08.28 09:00:35.273 Trades '6121033': sell stop 0.01 AUDCAD at 0.98593 sl: 0.98843 tp: 0.98393 2017.08.28 09:00:35.273 Trades '6121033': sell stop 0.01 AUDCAD at 0.98443 sl: 0.98693 tp: 0.98243 2017.08.28 09:00:35.273 Trades '6121033': sell stop 0.01 AUDCAD at 0.98293 sl: 0.98543 tp: 0.98093 2017.08.28 09:00:35.274 Scripts script Pending orders DOWN (AUDCAD,Daily) removed 2017.08.28 09:00:35.340 Trades '6121033': accepted sell stop 0.01 AUDCAD at 0.98893 sl: 0.99143 tp: 0.98693 2017.08.28 09:00:35.341 Trades '6121033': order #164992356 sell stop 0.01 / 0.01 AUDCAD at market done in 68.657 ms 2017.08.28 09:00:35.341 Trades '6121033': accepted sell stop 0.01 AUDCAD at 0.98743 sl: 0.98993 tp: 0.98543 2017.08.28 09:00:35.342 Trades '6121033': order #164992357 sell stop 0.01 / 0.01 AUDCAD at market done in 69.645 ms 2017.08.28 09:00:35.342 Trades '6121033': accepted sell stop 0.01 AUDCAD at 0.98593 sl: 0.98843 tp: 0.98393 2017.08.28 09:00:35.343 Trades '6121033': order #164992358 sell stop 0.01 / 0.01 AUDCAD at market done in 70.006 ms 2017.08.28 09:00:35.343 Trades '6121033': accepted sell stop 0.01 AUDCAD at 0.98443 sl: 0.98693 tp: 0.98243 2017.08.28 09:00:35.343 Trades '6121033': order #164992359 sell stop 0.01 / 0.01 AUDCAD at market done in 70.346 ms 2017.08.28 09:00:35.343 Trades '6121033': accepted sell stop 0.01 AUDCAD at 0.98293 sl: 0.98543 tp: 0.98093 2017.08.28 09:00:35.343 Trades '6121033': order #164992360 sell stop 0.01 / 0.01 AUDCAD at market done in 70.312 ms
время подтверждения размещения последнего отложенного ордера 2017.08.28 09:00:35.343. Итого, все операции заняли ВСЕГО 71 миллисекунду!
Также в начале работы осуществляется проверка корректности введенного объема для отложенных ордеров:
//+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- if(InpLots<=0.0) { Print("The \"Lots\" can't be smaller or equal to zero"); return; } //--- if(!m_symbol.Name(Symbol())) // sets symbol name return; if(!RefreshRates()) return; string err_text=""; if(!CheckVolumeValue(InpLots,err_text)) { Print(err_text); return; } //---
![Pending orders UP](https://c.mql5.com/i/code/script.png)
Скрипт выставляет несколько отложенных ордеров вверх от текущей цены.
![Expert](https://c.mql5.com/i/code/library.png)
Библиотека чтения/записи параметров произвольных советников.
![MA Zigzag Trend](https://c.mql5.com/i/code/indicator.png)
Очередной индикатор тренда ZigZag, основанный на точках экстремумов индикатора SMA.
![RSI Trend Indicator](https://c.mql5.com/i/code/indicator.png)
Простой индикатор тренда на основе изменений RSI.