Jump to content

Несколько скриптов для упрощения торговли


cmillion

Recommended Posts

cmillion

Владимир, здравствуйте.

 

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

Задание уровня стоплосса/тейкпрофита и автоматическое определение типа отложки (лимит/стоп), зависящее от внешней переменной PriceOpen и фактической ценой рынка на момент выставления отложки - это уже из разряда "удобных наворотов".

 

В принципе, меня вполне устраивает стандартная панель терминала МТ, за исключением того, что в ней НЕВОЗМОЖНО задать магик номер. (Т. е. в стандартной панели установки отложенного ордера я могу руками задать цену отложки, её тип, пересчитать и задать цену стоплосса/тейкпрофита, написать необходимое примечание, но НЕ могу задать магик номер).

 

Во всех же существующих скриптах, дающих дополнительные удобства и возможность устанавливать магик номер, НАПРОЧЬ отсутствует возможность задать необходимые текстовые комментарии. А комментарий мне нужен. И важен.

 

Надеюсь объяснил не очень запутанно.

 

Любое решение, учитывающее все вышеописанные потребности меня устроит, но оптимальным конечно был бы скрипт, который при бросании на график инструмента, выдавал панель с такими внешними переменными:

extern double    Lot           = 0.01;        //объем ордера

extern double    PriceOpen     = 1.06000;     //цена открытия ордера (может быть как в 4-х, так и в 5-знаке)

extern bool      SELL          = true;        //выставить отложенный ордер SELL

extern bool      BUY           = true;        //выставить отложенный ордер BUY

extern int       Stoploss      = 50;          //уровень выставления SL в пунктах, если 0, то SL не выставляется

extern int       Takeprofit    = 50;          //уровень выставления TP в пунктах, если 0, то TP не выставляется

extern int       Magic         = 777;         //уникальный номер ордера

extern string    Text          = "Сменить!";  //текст комментария 15-20 символов

После задания всех переменных и нажатия "ОК", скрипт выставляет отложку и выгружается.

 

Если что-то упустил или непонятно объяснил - скажите. Объясню, уточню, дополню.

 

Заранее благодарен.

Вы указали BUY и  SELL это значит, что советник сам должен определять ставить ему buystop или buylimit в зависимости от указанной цены?


Пишу на заказ советники, индикаторы и скрипты для MT4 и MT5  

Link to post
Share on other sites
  • Replies 288
  • Created
  • Last Reply

Top Posters In This Topic

  • cmillion

    152

  • mike23

    14

  • Grum

    9

  • Fintera

    7

Top Posters In This Topic

Popular Posts

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

Минимальное значение должно быть не меньше стоплевел. А какой стоплевел на той паре, что Вы ставите, Вам нужно узнать у Вашего брокера.

Buy Stop Limit и Sell Stop Limit   Установка отложенных ордеров при достижении указанной цены   В терминале МТ5 есть такие ордера, как Buy Stop Limit и Sell Stop Limit в MetaTrader 4

Posted Images

Rodeo-Wilshire

Вы указали BUY и  SELL это значит, что советник сам должен определять ставить ему buystop или buylimit в зависимости от указанной цены?

Да. Правильно.

Для примера:

Цена рынка 1,23500. Мы задаем цену для открытия отложенного ордера PriceOpen = 1,24000.

При BUY = true; скрипт определяет что при таком условии необходимо выставить buy stop. При SELL = true; скрипт определяет, что при таком условии необходимо выставить ордер sell limit.   При BUY = true; и SELL = true; выставляется два противоположно направленных ордера. Один buy stop, второй sell limit.

 

Если это сложнореализуемо - можно применить решение с ручным указанием типа ордера. Это не проблема. Это лишь дополнительное удобство эксплуатации.

Edited by Rodeo-Wilshire
Link to post
Share on other sites
cmillion

Да. Правильно.

Для примера:

Цена рынка 1,23500. Мы задаем цену для открытия отложенного ордера PriceOpen = 1,24000.

При BUY = true; скрипт определяет что при таком условии необходимо выставить buy stop. При SELL = true; скрипт определяет, что при таком условии необходимо выставить ордер sell limit.   При BUY = true; и SELL = true; выставляется два противоположно направленных ордера. Один buy stop, второй sell limit.

 

Если это сложнореализуемо - можно применить решение с ручным указанием типа ордера. Это не проблема. Это лишь дополнительное удобство эксплуатации.

 

 

Да. Правильно.

Для примера:

Цена рынка 1,23500. Мы задаем цену для открытия отложенного ордера PriceOpen = 1,24000.

При BUY = true; скрипт определяет что при таком условии необходимо выставить buy stop. При SELL = true; скрипт определяет, что при таком условии необходимо выставить ордер sell limit.   При BUY = true; и SELL = true; выставляется два противоположно направленных ордера. Один buy stop, второй sell limit.

 

Если это сложнореализуемо - можно применить решение с ручным указанием типа ордера. Это не проблема. Это лишь дополнительное удобство эксплуатации.

 

Держите

удачной торговли!

_PendingOrders.mq4

  • Thanks 1

Пишу на заказ советники, индикаторы и скрипты для MT4 и MT5  

Link to post
Share on other sites
Rodeo-Wilshire

Держите

удачной торговли!

 

Владимир, благодарю.

 

То что требовалось. Проверил - все работает замечательно. Удобно и функционально.

 

Еще раз спасибо.

Благополучия Вам и процветания.

Link to post
Share on other sites
cmillion
В 16.03.2018 в 19:43, Rodeo-Wilshire сказал:

 

Владимир, благодарю.

 

То что требовалось. Проверил - все работает замечательно. Удобно и функционально.

 

Еще раз спасибо.

Благополучия Вам и процветания.

Рад был помочь, обращайтесь.


Пишу на заказ советники, индикаторы и скрипты для MT4 и MT5  

Link to post
Share on other sites
  • 2 weeks later...
cmillion

Скрипт cm tral stop orders del orders

При старте удаляет все отложенные ордера. Вычисляет разницу между суммой лотов  направлений и выставляет в недостающем направлении стоп ордер лотом равным разности лотов. Далее тралит этот ордер за ценой по экстремумам свечей до срабатывания.

Если кинуть скрипт выше текущей цены, то он выставит buystop, если ниже цены то sellimit

cm tral stop orders del orders.mq4


Пишу на заказ советники, индикаторы и скрипты для MT4 и MT5  

Link to post
Share on other sites
mike23

Владимир, добрый день!
Очень нужен скрипт, реализующий следующий алгоритм:

- скрипт при запуске строит на графике две линии: зеленую (назовем ее линией заявки) и красную (назовем ее стоп-линией). После построения линии можно перемещать мышью в любое место. При этом если зеленая линия выше красной, то в дальнейшем планируем выставить бай-стоп ордер, если зеленая ниже красной, то соответственно селл-стоп.
- рассмотрим на примере заявки на покупку: линии выставлены и цена перебивает линию заявки. Срабатывает стоп-ордер на покупку, а на уровне стоп-линии выставляется стоп-лосс (в идеале на n пунктов ниже самой линии, n задаем в настройках). Если же цена не идет в нашу сторону и пересекает красную стоп-линию, то заявка снимается, линии убираются и отправляется push- уведомление.
- Для входа в селе все аналогично, но линии соответственно располагается наоборот.

 

В готовых решениях такого не встречал.

Link to post
Share on other sites
cmillion
В 01.04.2018 в 15:17, mike23 сказал:

Владимир, добрый день!
Очень нужен скрипт, реализующий следующий алгоритм:

- скрипт при запуске строит на графике две линии: зеленую (назовем ее линией заявки) и красную (назовем ее стоп-линией). После построения линии можно перемещать мышью в любое место. При этом если зеленая линия выше красной, то в дальнейшем планируем выставить бай-стоп ордер, если зеленая ниже красной, то соответственно селл-стоп.
- рассмотрим на примере заявки на покупку: линии выставлены и цена перебивает линию заявки. Срабатывает стоп-ордер на покупку, а на уровне стоп-линии выставляется стоп-лосс (в идеале на n пунктов ниже самой линии, n задаем в настройках). Если же цена не идет в нашу сторону и пересекает красную стоп-линию, то заявка снимается, линии убираются и отправляется push- уведомление.
- Для входа в селе все аналогично, но линии соответственно располагается наоборот.

 

В готовых решениях такого не встречал.

 

Вы пишите "(в идеале на n пунктов ниже самой линии, n задаем в настройках)" А для чего? Вы хотите чтобы buystop ордер отменялся по цене линии, а если он сработает, то его стоплосс был ниже? Или тут другой скрытый смысл?


Пишу на заказ советники, индикаторы и скрипты для MT4 и MT5  

Link to post
Share on other sites
mike23
41 минуту назад, cmillion сказал:

 

Вы пишите "(в идеале на n пунктов ниже самой линии, n задаем в настройках)" А для чего? Вы хотите чтобы buystop ордер отменялся по цене линии, а если он сработает, то его стоплосс был ниже? Или тут другой скрытый смысл?

Добрый вечер! Совершенно верно, стоп-лосс нужен чуть ниже начальной линии.

Link to post
Share on other sites
cmillion
4 часа назад, mike23 сказал:

Добрый вечер! Совершенно верно, стоп-лосс нужен чуть ниже начальной линии.

Вы пишите, что нужен скрипт. Это принципиально или советник подойдет? Нужно ли заканчивать работу скрипта после удаления ордера? Или он и дальше анализирует цену и по новой должен открывать отложку при достижении ценой стартовой линии?


Пишу на заказ советники, индикаторы и скрипты для MT4 и MT5  

Link to post
Share on other sites
mike23
9 часов назад, cmillion сказал:

Вы пишите, что нужен скрипт. Это принципиально или советник подойдет? Нужно ли заканчивать работу скрипта после удаления ордера? Или он и дальше анализирует цену и по новой должен открывать отложку при достижении ценой стартовой линии?

В принципе эти линии при пробитии стоп-линии больше уже не нужны. Но если советник будет отправлять пуш-уведомления, то несложно и вручную все перестроить.

Edited by mike23
исправил ошибку
Link to post
Share on other sites
cmillion
4 часа назад, mike23 сказал:

В принципе эти линии при пробитии стоп-линии больше уже не нужны. Но если советник будет отправлять пуш-уведомления, то несложно и вручную все перестроить.

 

Проверьте

 

Советник при запуске строит на графике две линии: зеленую (старт) и красную (стоп).
Линии можно перемещать мышью в любое место. При этом если зеленая линия выше красной, то в дальнейшем планируем выставить бай-стоп ордер, если зеленая ниже красной, то соответственно селл-стоп.

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

 

установка стоп ордера при пересечении ценой линии.mq4


Пишу на заказ советники, индикаторы и скрипты для MT4 и MT5  

Link to post
Share on other sites
mike23

Спасибо, буду дома чуть позже и сразу постараюсь проверить.

Link to post
Share on other sites
mike23

Поставил, все встало, рожица улыбается и в журнале все ОК, но я сижу и туплю - как линии нарисовать? Самому? Или советник должен их рисовать? При запуске Автоторговли линии не появляются. Советнику торговать разрешил.

Edited by mike23
Дополнил
Link to post
Share on other sites
mike23

Владимир, все работает. Не знаю, почему не получалось первый раз. Может просто терминал перегружен и долго думал, а я просто не дожидался. Сегодня протестирую внимательней.

Link to post
Share on other sites
mike23

Попытка открыть сделку в шорт - сделка открылась, СЛ встал, советник самоудалился, уведомление пришло.

Сделка в лонг - все штатно, (неприятно удивился среду, обычно этого не видишь).

Нашел особенность - если на графике есть открытая позиция, советник загружается и удаляется не построив свои линии.

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

При пересечении стоп-линии вверх - аналогично, ничего не происходит, линии на месте, советник работает. Скрины прикладываю.

Скриншот 04-04-2018 Тест советника2.jpg

Скриншот 04-04-2018 Тест советника1.jpg

Link to post
Share on other sites
cmillion
36 минут назад, mike23 сказал:

Попытка открыть сделку в шорт - сделка открылась, СЛ встал, советник самоудалился, уведомление пришло.

Сделка в лонг - все штатно, (неприятно удивился среду, обычно этого не видишь).

Нашел особенность - если на графике есть открытая позиция, советник загружается и удаляется не построив свои линии.

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

При пересечении стоп-линии вверх - аналогично, ничего не происходит, линии на месте, советник работает. Скрины прикладываю.

Скриншот 04-04-2018 Тест советника2.jpg

Скриншот 04-04-2018 Тест советника1.jpg

На первом скрине не увидел "наших" линий и не понял причем тут Ask?

На втором скрине что должно было произойти? Там цена зацепила линию стоп. Если бы она зацепила линию старт, то тогда открылся бы стоп ордер.


Пишу на заказ советники, индикаторы и скрипты для MT4 и MT5  

Link to post
Share on other sites
mike23

На первом скрине наша линия красная верхняя. Это один и тот же график с разницей в пару минут. Вывел фид и аск, так как не был уверен, по какой цене сработает линия.

В 01.04.2018 в 15:17, mike23 сказал:

Если же цена не идет в нашу сторону и пересекает красную стоп-линию, то заявка снимается, линии убираются и отправляется push- уведомление.

Вот это должно было произойти по задумке. То есть, если цена пошла против прогноза и пересекла стоп-линию. то модель на вход сломана и нужно обе линии убрать и советнику закончить работу и отправить уведомление. Может путано формулирую?

Link to post
Share on other sites
cmillion
49 минут назад, mike23 сказал:

На первом скрине наша линия красная верхняя. Это один и тот же график с разницей в пару минут. Вывел фид и аск, так как не был уверен, по какой цене сработает линия.

Вот это должно было произойти по задумке. То есть, если цена пошла против прогноза и пересекла стоп-линию. то модель на вход сломана и нужно обе линии убрать и советнику закончить работу и отправить уведомление. Может путано формулирую?

 

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


Пишу на заказ советники, индикаторы и скрипты для MT4 и MT5  

Link to post
Share on other sites
mike23

Да, именно так - просто удалить линии, если модель для входа сломана. Спасибо!

Link to post
Share on other sites
mike23

Еще момент  - при изменении ТФ советник перерисовывает линии по новой. Есть ли возможность этого избежать? То есть переставил их руками на место и до выставления заявки или отмены модели сами они уже не перемещаются советником.

Link to post
Share on other sites
cmillion
9 часов назад, mike23 сказал:

Еще момент  - при изменении ТФ советник перерисовывает линии по новой. Есть ли возможность этого избежать? То есть переставил их руками на место и до выставления заявки или отмены модели сами они уже не перемещаются советником.

 

Сделал чтобы при перезапуске ТФ линии не удалялись.

Сделал отключение советника даже если нет отложенных ордеров

Добавил функцию:

Если бросить советник мышью выше текущей цены, то линии сразу встанут старт выше стопа (buystop) а если ниже то наоборот. Иначе просто не сможете их переставить на высоколиквидном рынке (будут удаляться в момент перетаскивания).

установка стоп ордера при пересечении ценой линии 1.mq4


Пишу на заказ советники, индикаторы и скрипты для MT4 и MT5  

Link to post
Share on other sites
mike23
22 часа назад, cmillion сказал:

 

Сделал чтобы при перезапуске ТФ линии не удалялись.

Сделал отключение советника даже если нет отложенных ордеров

Добавил функцию:

Если бросить советник мышью выше текущей цены, то линии сразу встанут старт выше стопа (buystop) а если ниже то наоборот. Иначе просто не сможете их переставить на высоколиквидном рынке (будут удаляться в момент перетаскивания).

установка стоп ордера при пересечении ценой линии 1.mq4

Владимир, спасибо за отклик на хотелки. До понедельника протестировать толком не смогу - на выходные уезжаем с семьей.

Link to post
Share on other sites
mike23
23 часа назад, cmillion сказал:

 

Сделал чтобы при перезапуске ТФ линии не удалялись.

Сделал отключение советника даже если нет отложенных ордеров

Добавил функцию:

Если бросить советник мышью выше текущей цены, то линии сразу встанут старт выше стопа (buystop) а если ниже то наоборот. Иначе просто не сможете их переставить на высоколиквидном рынке (будут удаляться в момент перетаскивания).

установка стоп ордера при пересечении ценой линии 1.mq4

Владимир, быстрый тест показал, что при пересечении стоп-линии все отрабатывает штатно, а вот при пересечении старт-линии заявка не выставляется, если уменьшаю в настройках параметр "расстояние от линии старт до отложенного ордера". Какое у него минимальное значение? Или нужно спред смотреть?

Нет заявки.jpeg

Link to post
Share on other sites
cmillion
1 час назад, mike23 сказал:

Владимир, быстрый тест показал, что при пересечении стоп-линии все отрабатывает штатно, а вот при пересечении старт-линии заявка не выставляется, если уменьшаю в настройках параметр "расстояние от линии старт до отложенного ордера". Какое у него минимальное значение? Или нужно спред смотреть?

Нет заявки.jpeg

Минимальное значение должно быть не меньше стоплевел. А какой стоплевел на той паре, что Вы ставите, Вам нужно узнать у Вашего брокера.

  • Upvote 1

Пишу на заказ советники, индикаторы и скрипты для MT4 и MT5  

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...