[open source] [Советник] "Generic A-TLP"📌

От Sergey5, 23 апреля, 2016 в Лаборатория ProfitFX

#1602


SVS696, так сделай и выложи. Если только параметр цвета добавишь счетчик сильно не крути, сделай 11.91.1, а то мелкими изменениями быстро в 12 упремся.


Ну всегда можно начать пиcать 11.1xx) Но я тоже такого формата при мелких изменениях придерживаюсь.
Вообщем выкладываю.

Generic_A-TLP_11.91.1.mq472 скач.

#1603


Версия 12.36
1) Параметр Max_Spread_mode2 заменён на CheckSpreadOnSellOpen, включающий проверку спреда при открытии продаж, и Max_Spread_On_Close, проверяющий спред при закрытии продаж
2) Добавлен параметр паузы между сделками (в секундах) при открытии нескольких ордеров
3) Добавлен параметр одновременного закрытия группы ордеров
...


1) а сам Max_Spread, тот что для покупок, работает и на открытие и на закрытие?
2) спасибо! надеюсь пригодится
3) тут совсем не ясно - от общей линии безубытка идет расчет профита? или все ордера одновременно с первым закрываться будут?

Добавлено: 27-10-2016 17:48:59

При тестировании на TDS2 нарвался вот на какую штуку.
В прицепе скрин с двумя графиками: параметры одинаковые за исключением TP: 120 слева и 15 справа. пара USD/CAD и ТР=120 это тейк из дефолтного сета для 11.86.
Очевидно, что на реале с обоими значениями TP сеты закроют одинаково (как слева). Почему в тестере так - не знаю, особенность ли тестера или кода? Но факт то, что оптимальное значение TP по таким тестам недостоверно.

2016-10-28_00-12-16.png

Изменено 27 октября, 2016 пользователем Urytomsk

#1604


Спойлер


Очевидно, что на реале с обоими значениями TP сеты закроют одинаково (как слева). Почему в тестере так - не знаю, особенность ли тестера или кода? Но факт то, что оптимальное значение TP по таким тестам недостоверно.


Urytomsk, это - особенность тестера.
Вы правы, подбор оптимального ТР затруднен из-за гепов. Для себя нашел такой вариант - ставлю запрет на открытие ордеров в пятницу вечером,
тогда ТР получается более адекватным.
#1605


1) а сам Max_Spread, тот что для покупок, работает и на открытие и на закрытие?
2) спасибо! надеюсь пригодится
3) тут совсем не ясно - от общей линии безубытка идет расчет профита? или все ордера одновременно с первым закрываться будут?

1) Max_Spread_On_Close - макс. спред при закрытии продаж
3) от общей линии безубытка идет расчет профита
#1606

Страшные вещи творит версия 11.89
Открыл на хае сделку в покупку. Почему-то нижняя граница канала (синяя стрелочка) на открытии торгов оказалась сильно выше текущей нецы (красная стрелочка) и потом открыла покупку. На следующем баре канал сразу же вернулся туда, где он должен быть.
И так же неверно отработал фильтр по МДР, возможно по той же причине.
Есть подозрение на то, что таймфрейм графика М15, а таймфрейм, используемый для вычисления BB - М5.

added: Подозрения подтверждаются, такой "гэпчик" есть на всех графиках, где ТФ не совпадает. А еще на них неправильно сработал МДР. Такое ощущение, что ДР тоже берется какой-то старый (как и значения канала), а потом пересчитывается и работает нормально.

nzdcad.PNG

Изменено 27 октября, 2016 пользователем Zxx

#1607


Страшные вещи творит версия 11.89
Открыл на хае сделку в покупку. Почему-то нижняя граница канала (синяя стрелочка) на открытии торгов оказалась сильно выше текущей нецы (красная стрелочка) и потом открыла покупку. На следующем баре канал сразу же вернулся туда, где он должен быть.
И так же неверно отработал фильтр по МДР, возможно по той же причине.
Есть подозрение на то, что таймфрейм графика М15, а таймфрейм, используемый для вычисления BB - М5.


Уже кивикад в плену???? :-o
#1608
Цитата

Страшные вещи творит версия 11.89
Открыл на хае сделку в покупку. Почему-то нижняя граница канала (синяя стрелочка) на открытии торгов оказалась сильно выше текущей нецы (красная стрелочка) и потом открыла покупку. На следующем баре канал сразу же вернулся туда, где он должен быть.
И так же неверно отработал фильтр по МДР, возможно по той же причине.
Есть подозрение на то, что таймфрейм графика М15, а таймфрейм, используемый для вычисления BB - М5.

added: Подозрения подтверждаются, такой "гэпчик" есть на всех графиках, где ТФ не совпадает. А еще на них неправильно сработал МДР. Такое ощущение, что ДР тоже берется какой-то старый (как и значения канала), а потом пересчитывается и работает нормально.


11.89 уже устаревшая версия, проверьте актуальную 11.91 на баги, люди ее уже на реальные счета поставили :-ss
#1609
Спойлер


Цитата

Страшные вещи творит версия 11.89
Открыл на хае сделку в покупку. Почему-то нижняя граница канала (синяя стрелочка) на открытии торгов оказалась сильно выше текущей нецы (красная стрелочка) и потом открыла покупку. На следующем баре канал сразу же вернулся туда, где он должен быть.
И так же неверно отработал фильтр по МДР, возможно по той же причине.
Есть подозрение на то, что таймфрейм графика М15, а таймфрейм, используемый для вычисления BB - М5.

added: Подозрения подтверждаются, такой "гэпчик" есть на всех графиках, где ТФ не совпадает. А еще на них неправильно сработал МДР. Такое ощущение, что ДР тоже берется какой-то старый (как и значения канала), а потом пересчитывается и работает нормально.


11.89 уже устаревшая версия, проверьте актуальную 11.91 на баги, люди ее уже на реальные счета поставили :-ss

Поставил 11.91.1, опять открылся ордер. В селл, при этом касания канала не было вообще.
Не понял в описании версии про "теперь таймфрейм с M15 менять нельзя". Он на любых других таймфреймах будет неправильно работать?

Добавлено: 27-10-2016 21:01:47

Мда:
Спойлер

2016.10.28 03:59:43.302 Generic A-TLP 11.91.1 NZDCAD,M15: OnTick() Error 4066: Error ¹: 4066 - requested history data is in update state
2016.10.28 03:47:52.823 Generic A-TLP 11.91.1 NZDCAD,M15: GetLastProfit, LastBuyProfit: 0 pips, LastSellProfit: -8 pips
2016.10.28 03:47:52.325 Generic A-TLP 11.91.1 NZDCAD,M15: initialized
2016.10.28 03:47:49.240 Generic A-TLP 11.91.1 NZDCAD,M15 inputs: S_1=; Comm=G; MagicNumber=11052016; Show_Info_Panel=true; Col_info=11051696; Max_Spread=4.8; Max_Spread_mode2=0.0; Slippage=2; every_tick=1; S_2=; Lots=0.01; Auto_Risk=1
2016.10.28 03:47:49.240 Expert Generic A-TLP 11.91.1 NZDCAD,M15: loaded successfully

crazy-nzd.PNG

Изменено 28 октября, 2016 пользователем Zxx

#1610
Цитата

Поставил 11.91.1, опять открылся ордер. В селл, при этом касания канала не было вообще.
Не понял в описании версии про "теперь таймфрейм с M15 менять нельзя". Он на любых других таймфреймах будет неправильно работать?
Добавлено: Сегодня в 12:01:47 am
Мда:



У вас судя по скрину неправильно селка открылась именно на м5? на м15 также неправильно открывается? я поставил на реальные счета на 4 брокера версию 11.91 (не 11.91.1) пока одна сделка по евроауду в плюс закрылась. больше сделок нет, ошибок нет, надеюсь и не будет :)

Добавлено: 27-10-2016 21:30:21

и вопрос к master_255 у меня в журнале несколько раз по всем парам на версии 11.91 появляется сообщение такого вида: 2016.10.27 23:03:58.294 Generic A-TLP 11.91 GBPCAD,M15: GetLastProfit, LastBuyProfit: 0 pips, LastSellProfit: 0 pips
на предыдущих версиях вроде такого не было, оно несет какуе то смысловую нагрузку? по мне так просто забивает журнал пустой информацией и мешает найти там реально нужные вещи :)

Изменено 28 октября, 2016 пользователем FERRARI2009

#1611

Да это сделки вообще быть не должно. Канала не касалась, но открыла селл на минимуме. Возможно из-за таймфрема, баг больше повторить не удалось - закрыл руками, теперь не открывается (ни на м5, ни на м15).
Я решил не дергать кота за усы и вернул 11.86 на реал. Только Depo per lots к нему прикрутил, ради которого на новую версию и перешел. На демке поставлю 11.91 с теми же настройками, посмотрим, будет ли чудить на M15.
В 11.86 самая страшная ошибка за два месяца эксплуатации: 4200 - Объект уже существует :)

Изменено 28 октября, 2016 пользователем Zxx

#1612
Спойлер



Версия 12.36
1) Параметр Max_Spread_mode2 заменён на CheckSpreadOnSellOpen, включающий проверку спреда при открытии продаж, и Max_Spread_On_Close, проверяющий спред при закрытии продаж
2) Добавлен параметр паузы между сделками (в секундах) при открытии нескольких ордеров
3) Добавлен параметр одновременного закрытия группы ордеров
...


1) а сам Max_Spread, тот что для покупок, работает и на открытие и на закрытие?
2) спасибо! надеюсь пригодится
3) тут совсем не ясно - от общей линии безубытка идет расчет профита? или все ордера одновременно с первым закрываться будут?

Добавлено: 27-10-2016 17:48:59

При тестировании на TDS2 нарвался вот на какую штуку.
В прицепе скрин с двумя графиками: параметры одинаковые за исключением TP: 120 слева и 15 справа. пара USD/CAD и ТР=120 это тейк из дефолтного сета для 11.86.
Очевидно, что на реале с обоими значениями TP сеты закроют одинаково (как слева). Почему в тестере так - не знаю, особенность ли тестера или кода? Но факт то, что оптимальное значение TP по таким тестам недостоверно.
Было бы здорово если бы вы это отправили Birt- у через интерфейс саппорта ТДС2. Пусть посмотрит - мне кажется это баг ТДС2.
#1613

Версия 11.91.2
[list type=decimal]

  • LastBuyProfit и LastSellProfit, теперь выводиться только если закрылась сделка по текущей валюте, до этого срабатывала на любой и забивало журнал. Это информация для проверки паузы после убытка.

  • Ввел запрет открытия новых сделок если таймфрейм не равен M15, закрытие продолжит работать, в индикаторах жестко забит M15

  • На всякий случай добавил ограничение попыток повторных запросов при ошибке 4066


  • Generic_A-TLP_11.91.2.mq4114 скач.

    #1614

    в индикаторах жестко забит M15


    Вы зачем робота ломаете? У меня 6 сетов, которые работают на m5 или используют CCI на другом таймфрейме. И что с ними теперь делать?

    Изменено 28 октября, 2016 пользователем Zxx

    #1615

    master_255 - молодец, честь вам и хвала за ваш кропотливый труд! Zxx, вам никто не запрещает пользоваться более ранними версиями советника для ваших экспериментов с таймфреймами. Но кажется вопросы на форуме пока решаются большинством? А у большинства нет никаких сетов для М5...

    #1616
    Zxx, так поделились бы сетами с общественностью. Тогда и другие варианты решения можно было придумать.
    #1617

    Мне кажется неплохой фичей было бы ведение открытых сделок в инфопанеле. Чисто на случай смены бота на графике где уже есть открытые сделки предыдущей версией и когда есть сомнение что бот потерял ордер.

    #1618


    Версия 11.90

    Добавил параметр MorningClose, варианты закрытия сделок оставшихся на утро, варианты:
    [list type=decimal]

  • Перевод в безубыток (если возможно)

  • Закрыть сразу

  • Закрыть только в профите



  • Объясните чайнику, плиз, как собственно этим пользоваться? В параметре MorningClose по умолчанию стоит OFF - тоесть он отключен и не работает. На выпадающем меню у меня появляются три строки где все символы это знаки вопроса. Это если я хочу чтоб утром, если возможно, был перевод в безубыток, то это выбрать надо первую строку из выпадающего меню, или там все же должно быть указано что собственно я выбираю, а не знаки вопросов? Как мне это исправить? И вообще, "утром" это с какого часа считается?
    #1619

    Попробуйте этот совет для нормального отображения кириллицы /interaktivnaya-torgovlya/9/obsuzhdenie-sovetnika-generic-a-tlp/14475/?do=findComment&comment=315758

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

    #1620
    Цитата

    Zxx, так поделились бы сетами с общественностью. Тогда и другие варианты решения можно было придумать.


    Согласен. Если ваши сейты действительно хороши, то люди бы начали ими пользоваться и программисты бы учитывали этот момент, что на м5 тайме тоже многие торгуют, а так делать кучу разных вариаций сова для каждого единичного пользователя невозможно конечно... Делитесь сетами ;)
    #1621


    Версия 11.91.2
    [list type=decimal]

  • LastBuyProfit и LastSellProfit, теперь выводиться только если закрылась сделка по текущей валюте, до этого срабатывала на любой и забивало журнал. Это информация для проверки паузы после убытка.

  • Ввел запрет открытия новых сделок если таймфрейм не равен M15, закрытие продолжит работать, в индикаторах жестко забит M15

  • На всякий случай добавил ограничение попыток повторных запросов при ошибке 4066



  • Вы реально молодец - плюсую с удовольствием! =d>
    Достойный пример ответственного подхода!

    Не могу не отметить, что достойный вклад вносят и другие программисты - мы их с уважением знаем всех поименно.
    Но я не понимаю отхода в сторону...
    Марафон по разработке бота всегда надо пробегать до конца: сойти с дистанции даже на 40-м километре - всё равно сдаться и проиграть, доблести в этом нет.

    Что касается рабочего ТФ, то он должен задаваться пользователем в настройках.
    Это есть во множестве ботов и оправдано всегда.
    #1622


    Вы зачем робота ломаете? У меня 6 сетов, которые работают на m5 или используют CCI на другом таймфрейме. И что с ними теперь делать?


    Народ тут работает на общее благо, пишет совместно сову, а кто то сделал себе сеты, открыл ПАММы в тихоря и жопит поделиться v:)



    master_255 уже не раз поднималась тема ТФ тут. Как я понял, ошибка 4066 появляется у тех, кто тестирует на FXT котировках, где можно использовать только один Таймфрейм. У тех, кто пользуется котировками брокера HST, они автоматом подгружаются на нужный ТФ и проблем нет.
    Единственный нормальный вариант решения для всех, это на все фильтры (МА, CCI, BB) перед настройкой периода вывести енумом выбор ТФ и по умолчанию установить М15. Кто хочет, будет оптимизировать с качеством 90% разные периоды, остальные будут на М15 делать через TSL и TDS.
    Для тех, кто меняет ТФ на тиковых котировках, вызывая ошибку 4066 можно еще и сообщение в журнал писать, типо "ай я яй, смени ТФ".
    #1623
    Rever27, не правильно понял, ошибка 4066 появляется именно на реальных торгах, и впервые замечена в 12 версии, благодаря добавленной тобой проверке "поиск ошибок в завершение OnTick".

    Выражается она в том что при запросе данных с другого таймфрейма они не всегда доступны(в состоянии обновления), и нужно делать на функциях iOpen, iTime, iVolume и тп. повторный запрос через некоторое время, а результат этих функций в этом случае будет равен нулю.
    Но почти все на это забивают, я еще не встречал советников которые проверяют их результат. Терминал тоже не пишет об этой ошибке если принудительно GetLastError() не проверить.

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

    Добавлено: 28-10-2016 16:19:34

    Версия 11.91.3

    Правка MorningClose, для SELL сделок безубыток рассчитывался без учета комиссии.
    Решил что сразу после конца сессии слишком рано начинать пытаться их закрыть, добавил параметры MorningCloseHourStart и MorningCloseHourEnd, время начала и окончания работы фильтра, по умолчанию с 06:00 до 20:00

    Generic_A-TLP_11.91.3.mq489 скач.

    Изменено 28 октября, 2016 пользователем master_255

    #1624

    Аргумент в пользу ТФ отличных от М15: eurcad m30, оптимизация с 01.01.2012, форвард 1/3, грубая и тонкая оптимизация.
    ИМХО - надо доводить до ума 12.36, переводить её на мт5 и оптить последнюю версию в мт5, а отобранные результаты прогонять в мт4 на котировках dukascopy, выбирая наилучший.
    Народ, не стесняемся - делимся сетами ;)

    mt4_generic-atlp_12_21_eurcad_m30_nicodemus_99.9%.gif
    eurcad_m30_nicodemus.rar90 скач.

    #1625

    В ветке обсуждения советника прозвучало хорошее дополнение (Recovery Mode) которое работало в азии, но которое не было включено ни в одну из текущих версий бота. От автора согласия на размещение я не дождался, просто оставлю это здесь.

    Спойлер



    2. Интересно, что больше 2-х убыточных сделок практически никогда не бывает. Это важно, так как можно использовать мультипликатор лота и входить повышенным лотом после такой серии.
    ...
    Могу сказать, что рыночное исполнение сделок почти у всех брокеров плохое. Отложенные ордера исполняются намного лучше. И там можно контролировать проскальзывание (slipage).


    Вот номер 2 - реально очень полезная находка. Точнее, это не совсем находка, все уже придумано до нас - в азии за это решение отвечал параметр RecoveryMode, включающий множитель лота (задавать вручную было нельзя, что-то вроде "защиты от дурака", наверное... на практике соответствовал приблизительно 1,1) в случае убытка в предыдущей сделки. Если эта сделка оказывалась также убыточной, последующая также была больше объемом на ~10% и т.д. пока не сделка по данной паре не закрывалась в профит. После этого бот возвращал обратно начальный объем, соответствующий уровню риска.
    С его включением бот показывал несколько лучшие результаты и выходил из просадки чуть быстрее, но лично у меня на реале это работало все из рук вон плохо - бота глючило, и после закрытия ордера увеличенным лотом в профит, он мог продолжать умножать дальнейшие ордера, или умножал как-то совсем странно - после убытка по ордеру 0.28 лота, к примеру, следующий шел уже 0.51. В общем, забросил я это дело.

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

    Продублирую ваше предложение касательно множителя лота в лабораторной ветке, если вы не против?

    Не думаю, что будет лишним добавить его в какую-либо из версий бота. Это реально рабочий параметр. Можно организовать его так, как было сделано в азии - без возможности изменения численного значения, можно поставить возможность указывать численное значение на свой страх и риск.
    Повторюсь - в азии, когда бот обрабатывал этот параметр корректно, из просадки после убыточной сделки выход происходил быстрее.
    #1626


    Версия 11.91

    [list type=decimal]

  • Переделана пауза после убытка, запрос на получение информации идет один раз после закрытия сделки, а не запрашивается каждый раз из истории. Соответственно при удалении истории в начале месяца информация об убытке остается, если не перезапускать терминал.

    Добавлен параметр LossPauseUseDirection, при true пауза будет только для сделок направление которых совпадает с убыточной. По умолчанию старый вариант, пауза любой сделки, независимо от направления.


  • Фикс ошибки 4066 (я надеюсь), большинство функций iTime() заменены на массив Time[], теперь таймфрейм с M15 менять нельзя, но это лучше чем терять время на повторный запрос при ошибке "4066 данные в состоянии обновления".

    iOpen, iVolume при ошибке 4066 посылают повторный запрос, с задержкой в 1 секунду, пока не получат данные, как советуют метаквоты.


  • MorningClose теперь учитывает комиссию и своп, для выставления безубытка и закрытия только в профит


  • Убраны попытки открытия сделок при запрете торговать




  • Если терминал приходится перезапускать между торговыми сессиями днем, в этом нет ничего страшного? Касательно пункта 1

    Для публикации сообщений создайте учётную запись или авторизуйтесь

    Перейти к списку тем
    Форум · 2.0.20260627.0025