Вобщем понял я, почему открываются сделки, хотя до линии цена не дошла.Робот ждёт не касания линии, а уровня её ближайшего конца.Это даже не линия, а отрезок, и если он наклонный, у него есть минимум и максимум — во в этой зоне(между минимумом и максимумом) робот и открывает сделки. На скрине видно, что верхний конец отрезка s1 оказался выше цены, поэтому сразу после включения кнопки sell открылся соответствующий ордер.
И да Юрий правильно заметил, что слетают положения линий, даже если зайти в настройки робота и выйти, ничего в них не меняя
Выставляю линии, нажимаю бай, нормально вроде. А вот при нажатии селл сразу открывается ордер, хотя до линии s1 ещё далеко. Продолжить тестить смогу завтра только, сейчас на работу.
Юрий, что затратного и неудобного выставить сперва 2 канала, а потом накинуть на его линии нужные нам 3 линии сверху и 3 линии снизу
Зато, если ордер открылся и цена начала флетить, а тейк, стоп удаляются или приближаются(что по мнению трейдера ему невыгодно), линии стопа-тейка можно просто сделать горизонтальными на считающимися трейдером сильных уровнях, в отличие от варианта только с каналами, где можно зазеваться, а в это время в связи с удаляющимся стопом цена ползёт далеко против нас
Не каналы, а просто линии — с помощью стандартного инструмента мт4 «Рисование трендовых линий». В «Свойствах Trendline» при построении линий мы указываем их названия(b1, b2, b3, s1, s2, s3), а вы к ним в коде привязываете действия, что прописаны в ТЗ.
Да вот например, в телеграмме в закрепе: t.me/babm15oleg
Ты не понял — для бинарок я имел в виду не пишут на каждый индюк, а используют спец. советника — в него вставляют название индюка и буферы для бая и села. Там есть всё — и отправка в бинари, и время, и мартин и полно всего другого. Я же вообще использую платный — в нём ещё больше функционала. Но учти — 99,9% всех стрелочников на дистанции стремятся к 50% винрейту. Можно повысить винрейт фильтрами — длина тел, хвостов, время торговли и т.п.
Что же теперь под каждый индюк сов писать для БО? Есть ведь полно бесплатных с огромным функционалом — вставляете в него название индюка и буфера. К тому же — мало открыть сделку, нужно её ещё передать брокеру.
Что-то мы не понимаем друг друга. Цена коснулась b1 или s1 после включения соответствующей кнопки — открылся ордер.Дальше робот ждёт касания для бай ордера -b3 или s1, для селл ордера -s3 или b1 и закрывает ордера по стопу или тейку.
При касании же b2(для бай ордера) и s2(для селл ордера)робот закрывает поллота и переносит лишь стоп в безубыток, после тралит его с шагом 10п(пятизнак).Смысл тралить по линии? Если она(s2 или b2) наклонная не в нашу сторону, то БУ будет постепенно превращаться в увеличивающийся минус.
Насчёт маленьких-больших тейков-стопов — если вы уверены, меняйте положение линий тейка и стопа в процессе — например делайте их горизонтальными и располагайте за(стоп)-перед(тейк) каким-нибудь хаем-лоем, вот и всё.
Дополнения: робот не теряет линию, если мы её переносим. Например, открылся ордер селл, но цена пошла вверх и вбок, линия стопа наклонная вверх- то есть стоп удаляется постоянно. Мы корректируем линию(приближаем, делаем горизонтальной и т.п), но робот её не теряет, так как название её остаётся прежним. Также в процессе может переноситься линия тейка и трала.
Если ордер открылся(например бай), а мы его закрываем вручную и забываем отключить соответствующую кнопку(бай ), робот не открывает новый ордер на отработавшей линии(b1), ждёт, пока кнопку выключат и включат.
Да, основа оттуда, но вот второй мой вариант более гибкий — можно и каналы, и треугольники и т.п. торговать. Плюс я добавил промежуточный уровень для перевода в БУ и начала трала.
Если вам интересно, становитесь поручителем, чтобы месяц не ждать очереди.
Упрощаю и универсализирую техзадание.
Ордер бай открывается при касании линии b1.
Тейк — линия b3.
Стоп — линия s1.
Ордер селл открывается при касании линии s1.
Тейк — линия s3.
Стоп — линия b1.
Если цена пошла в нашу сторону и коснулась второй линии (b2 для бай или s2 для селл), то половина ордера закрывается(поэтому начальный ордер в настройках минимум = 0.02) и включается трал с начальным стопом на безубытке.
Шаг трала по умолчанию пусть будет 10п(пятизнак).
На графике очень желательны 2 кнопки — бай и сел — нажав их, мы разрешаем роботу открывать ордер в соответствующем направлении.
После включении кнопки робот может открыть только 1 ордер в этом направлении.
А ведь точно! Название одинаково, я копировал с заменой mq4, а ex4 остался старый в терминале
Большое спасибо! Всё работает правильно.
Теперь осталось подобрать фильтр, чтобы сделки не открывались в конце-середине тренда, может что-то типа машки, и(или) чтобы свеча 1 была фракталом и т.п.Это надо на истории потестить.
К сожалению робот то правильно выставляет стоп и тейк, то по старому — стоп на хае/лое, тейк сумма двух тел, не обращая внимания на значения суперлося и суперязя в настройках. Вот например, при суперлось= 100 и суперязь= -50, слева 2 сделки правильно увеличил стоп и уменьшил тейк, а справа 2 сделки не обратил внимания, что это нужно сделать. Это происходит и на баевых, и на селовых сделках.
Посмотрел в код своим дилетенским взглядом, понял вроде, что свечи, которые я на скринах называл 0,1,2, вы называете 1,2,3. Может тут путаница произошла? Но почему то правильно, то нет, вот это интересно.
Можно было тогда проще сделать — у вас же есть в коде формулы для тейка и стопа — взять их в скобки и умножить на значения в настройках «суперлось» и «супертейк». Чтобы уменьшить, ставим значение меньше 1, чтобы увеличить — больше 1. Тогда ± убираются и проценты. Например в настройках суперлось = 1.2, суперязь = 0.5. Тогда тейк =(тело 1 + тело 2)х0.5, стоп = (расстояние от цены до хая/лоя свечи 1)х 1.2.
Почему-то робот у некоторых ордеров правильно выставляет стоп и тейк(скриншот 2), а у других — как раньше(скриншот 1). Прогон один, в настройках суперлось = 50, суперязь = -50.
Ордер селл открывается, если 2 свечи подряд(1 и 2) медвежьи, хай свечи 1 больше хая предыдущей свечи (свеча 0), размер тел свечей 1 и 2 не меньше указанного в настройках и сумма тел свечей 1 и 2 не меньше указанной в настройках.
Для ордеров бай — всё зеркально.
Тейк встроен в код и равен сумме тел свечей 1 и 2.
Стоп встроен в код и ставится за хаем/лоем свечи 1.
Доработка:
Размеры тел свечей 1 и 2 нужно считать от уровня закрытия предыдущей свечи до уровня закрытия измеряемой. То есть тело свечи 1 будет равно расстоянию от уровня закрытия свечи 0 до уровня закрытия свечи 1
тело свечи 2 = расстояние от уровня закрытия свечи 1 до уровня закрытия свечи 2.
Этим самым мы исправляем влияние гэпов на размеры свеч, так как торговля предполагается на дневном ТФ.
В настройках всё же нужны стоп и тейк: «суперлось» и «супертейк». Они будут увеличивать или уменьшать (при отрицательных значениях в настройках) нынешние стоп и тейк, встроенные в код(язь=тело1+тело2, лось=хай/лоу свечи1+спред).
Так как суммы тел свечей 1 и 2 будут часто сильно отличаться у разных ордеров, то значения «суперлося» и «суперязя» в настройках прошу сделать в % от встроенных.
Например, в настройках «суперлось» и суперязь" равны 0. Значит, стоплосс и тейкпрофит рассчитываются как сейчас.
Другой вариант: «суперлось» = 10, «суперязь» = -20
В этом случае стоплосс увеличивается на 10%, а тейкпрофит уменьшается на 20%.
И да Юрий правильно заметил, что слетают положения линий, даже если зайти в настройки робота и выйти, ничего в них не меняя
andre71g