Андрей! доброго времени суток
Есть просьба написать советник, который будет: мультивалютный для 4х и 5и знаков MQ4
Работать будет по индикатору ( пробитие временной коробки ): BreakOut…
BreakOut-EAGLE__ut2DaMax.ex4 (6 Kb)
Индикатор формирует временную коробку, например с 5.15 до 8.23 утра и использует её до 23.00 сего дня. Выставляет на этих границах ордера: Бай стоп и Сел стоп, с возможностью настроек ТП в п.п. и (USD ) валюте депо. В том случае если произошло закрытие по ТП, а время до которого работает советник не прошло (23.00 ), то советник выставляет сразу после ТП новые отложенные ордера: Бай стоп и Сел стоп на границах временной коробки. Лот у них одинаковый изначально, а при срабатывании одного из них, второй отложенный и следующие которые выставятся, сразу увеличиваются на заданный процент в настройках. После закрытия по ТП, лот возвращается по умолчанию. Далее, при возвращении цены в коробку, советник продолжает работать до 23.00 и если есть открытые ордера он их сопровождает до ТР не опираясь на раб. время ( 23.00 ).
2.jpg (154 Kb)
Ещё, функцию можно было поменять на Бай лимит и Сел лимит для понимания какая стратегия лучше.
ДА… работа на всех ТФ и ДЦ
Пример работы советника:
Например, сработал Бай стоп, по 0.01, то Сел стоп сразу изменился на заданный процент в настройках. Цена пошла к ТП и закрылся ордер. Советник выставляет сразу отложенные ордера заново с начальным лотом, до окончания рабочего времени (23.00 ).По окончании рабочего времени советник удаляет не активные отложенные ордера до появления новой временной коробки. Если цена развернулась и пробила вниз временную коробку то сработал Сел стоп с увеличенным лотом и при таком раскладе советник выставляет сразу новый Бай стоп с увеличенным лотом на заданный процент.
1.jpg (125 Kb)
Цена достигла ТП советник возвращает лот по умолчанию.Если цена снова вернулась и пробила коробку в верх сработал Бай стоп с увеличенным лотом и советник сразу выставляет новый Сел стоп с увеличением на заданный процент. И так пока не закроется по ТП.
Настойки Сова:
Настройки индикатора BreakOut…
GMT…
Время начала формирования коробки: 05.15
Время завершения формирования коробки: 08.23
Время окончания работы сова: 23.00
Ширина коробки в п.п.: 00, если превышение то не торгуем!
BUY SELL stop // BUY SELL limit
Начальный лот ордеров: 0.01
Максимальный Лот: 10.00
Процент увеличения отложенного ордера: 0.0 %
Трал: вкл.// выкл.
Дельта: = ( 0 ) выставление ордеров по границам коробки, если = ( 3 ) на 3 п.п. выше и ниже коробки.
ТР для одной вал. пары:… п.п.
ТР для одной вал. пары:… USD
ТР ( Общий, если несколько валют ) для всех вал. пар:… пп.
ТР ( Общий, если несколько валют ) для всеж вал. пар:… USD
Магическое число:…
Заранее Благодарен
Комментарии (27)
35 AM2 Сообщений: 16388 - Андрей
8 Kolesik Автор Сообщений: 94
8 Kolesik Автор Сообщений: 94
35 AM2 Сообщений: 16388 - Андрей
8 Kolesik Автор Сообщений: 94
35 AM2 Сообщений: 16388 - Андрей
www.opentraders.ru/downloads/1576/
Редактирован: 8 мая 2017, 17:52
35 AM2 Сообщений: 16388 - Андрей
8 Kolesik Автор Сообщений: 94
А вариант (в упрощенном виде ) очень отличается от моей стратегии ( ТЗ ).Зарание благодарен за понимание и Ваш труд. .
8 Kolesik Автор Сообщений: 94
35 AM2 Сообщений: 16388 - Андрей
7 kvashnin007 Сообщений: 613 - Андрей
8 Kolesik Автор Сообщений: 94
35 AM2 Сообщений: 16388 - Андрей
8 Kolesik Автор Сообщений: 94
35 AM2 Сообщений: 16388 - Андрей
35 AM2 Сообщений: 16388 - Андрей
35 AM2 Сообщений: 16388 - Андрей
Иначе остаются ордера которые висят и не дают открыться новым по коробке следующего дня.
Пояснение: после срабатывания ТР выставляются новые отложки по коробке с начальным лотом, и если они не сработали до 23.00 они удаляются.
При тестировании заметил, ещё один момент: при срабатывании ТР например Бай ордера остаётся открытый Сел а он должен закрыться вместе с ТР Бай ордера.
Ещё раз хочу поблагодарить за твою работу .
8 Kolesik Автор Сообщений: 94
первого это автора идеи!!! спасибо большое!!!
Второго и главного реализатора идеи АМ2 огромное спасибо!!!
9 maksGruv Сообщений: 340
8 Kolesik Автор Сообщений: 94
Автор правильно подметил по поводу закрытия не отработанных отложек, и еще заметил, когда в тестере прогонял, что было такое что лось не срабатывал(( но идея хорошая)
9 maksGruv Сообщений: 340
Хочу поинтересоваться у тебя, на этой недели получиться ( Свой набросок могу доработать, ), уж очень хочется потестить.
Заранее благодарен.
8 Kolesik Автор Сообщений: 94
Заранее благодарен.
8 Kolesik Автор Сообщений: 94
7 kvashnin007 Сообщений: 613 - Андрей
7 kvashnin007 Сообщений: 613 - Андрей
Образовалась временнAя коробка.
Делим ее пополам. Имеем три линии-цены. Цена находится между внешними линиями. И чаще линии ближе stoplevel.
Поэтому, отложками здесь сработать практически не возможно. Надо открывать ордера по пересечению линий.
Ценой Bid или Ask — варианты на рассмотрение.
Далее ожидаем три события:
— пересечение вехней линии снизу вверх (сверху вниз — не реагируем);
— пересечение нижней линии сверху вниз (снизу вверх — не реагируем);
— пересечение средней линии сверху вниз или снизу вверх;
Так как будем работать с двумя полосами (верхней и нижней), для упрощения логики предлагаю Ордера,
соответствующие им, отличить по magik number. Например верхняя полоса — Magic, а нижняя — Magic+1.
Итак — три события.
— Если цена пробила верхнюю линию, то открываем OP_BUY с Magic. Лот определяется по следующим параметрам:
если сумма лотов OP_SELL с Magic равна нулю, то лот равен стартовому лоту;
если сумма лотов OP_SELL с Magic больше нуля, то суммарный лот OP_BUY с Magic должен оказаться
в два раза больше, чем сумма лотов OP_SELL с Magic. Если меньше — добавляем до удвоенной суммы.
Lot(OP_BUY,Magic) = SummLot(OP_SELL,Magic)*2 — SummLot(OP_BUY,Magic);
Прошу заметить: при колебаниях цены, если цена пробила верхнюю линию сверху вниз, мы ничего не делаем.
— При пробитии нижней линии сверху вниз открыватся OP_SELL аналогично пересечению верхней, но с Magic+1.
Lot(OP_SELL, Magic+1) = SummLot(OP_BUY, Magic+1)*2 — SummLot(OP_SELL, Magic+1);
— С пересечением средней линии все гораздо интереснее:
Открываются два ордера. OP_BUY с Magic+1 и OP_SELL с Magic.
Лоты определяются в следующем порядке:
— если цена пробила среднюю линию снизу вверх, то
Для OP_BUY с Magic+1
* если суммарный лот OP_SELL с Magic+1 равен нулю,
то лот OP_BUY с Magic+1 равен удвоенному стартовому лоту.
* Если цена также пробила среднюю линию снизу вверх, но суммарный лот OP_SELL с Magic+1 больше нуля,
то суммарный лот OP_BUY с Magic+1 должен оказаться в два раза больше, чем сумма лотов OP_SELL с Magic+1.
Если меньше — добавляем до удвоенной суммы. Если равна — ничего не делаем.
Lot(OP_BUY, Magic+1) = SummLot(OP_SELL, Magic+1)*2 — SummLot(OP_BUY, Magic+1);
Для OP_SELL с Magic
* если суммарный лот OP_BUY с Magic равен нулю,
то лот OP_SELL с Magic просто равен стартовому лоту.
* Если цена также пробила среднюю линию снизу вверх, но суммарный лот OP_BUY с Magic больше нуля,
то суммарный лот OP_SELL с Magic должен оказаться в два раза больше, чем сумма лотов OP_BUY с Magic.
Если меньше — добавляем до удвоенной суммы. Если равна — ничего не делаем.
Lot((OP_SELL, Magic) = SummLot(OP_BUY, Magic)*2 — SummLot(OP_SELL, Magic);
— если цена пробила среднюю линию сверху вниз, то
тоже открываем два ордера OP_BUY с Magic+1 и OP_SELL с Magic,
только лоты рассчитываются симметрично наоборот.
Для лучшего понимания:
каждая полоса имеет свои ордера со своими мagic. Снизу полосы ордера на продажу. Сверху — на покупку.
Наша задача следить, чтобы лотов на границах полосы суммарно было в два раза больше, чем
на противоположной границе этой же полосы. Нюансы только в начале открытия ордеров каждой полосы.
А вообщето выше практически написан код советника.
Подправить только в код mql4. Ну и индюк, конечно. Хотя можно и без него.
Получение прибыли и ограничение убытков в следующий раз, если комe-то будет интересно.
Можно простоограничиться тралом прибили-убытка. Но есь варианты и поинтереснее.
7 kvashnin007 Сообщений: 613 - Андрей
Не интересно? Да и ладно.
Всем удачи.
Редактирован: 26 декабря 2024, 08:29
7 kvashnin007 Сообщений: 613 - Андрей
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий