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

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

#2202


TakeProfit_1
Вот у меня вопрос: в строке Variables:F(0),e1(Price)..., где, как я понимаю, объявляются используемые в данной функции/подпрограмме переменные, конкретно какие свойства у переменных F, e1и Price и как интерпретировать именно такую запись их объявления?
А в строке Inputs:Price(Close) - Price(Close) что за хрень на языке народа суахили, если по русски?
Сначала надо разобраться с синтаксисом записи на крайне малораспространенном языке программирования - а потом поймем и семантику выложенного кода.
Перевод суахили-русский-английский требует некоторых усилий... Трудности перевода.


В строке Variables:F(0), - Variables: это объявление переменных. F - название от балды, (0) - начальное значение. На суахили МКЛ наверное будет так: double F = 0.0;
Inputs:Price(Close), - Inputs: это внешние переменные, те, которые видны в интерфейсе, в скобках - значения, которые пользователь может менять. В МКЛ их аналог extern. Price - название от балды, (Close) - тип ценовых данных, в Омеге пишется буквами, может быть например ((High + Low)/2). В Омеге есть список зарезервированных слов, можно вообще вместо Close написать C. Я вынес во внешние переменные, чтобы проще менять было на Open, когда надо, чтобы мувинг не трепыхался на последнем баре. По идее, в МКЛ просится строка типа extern int Price = PRICE_CLOSE; но это вроде только в индикаторах работает? Возможно, надо вообще убрать Price из инпутов и перенести в переменные, например:
double Price = (Ask + Bid)*0.5;
Теперь вернёмся к Variables:F(0),e1(Price)..., c F(0) уже разобрались, а что касается е1 - это обычная ЕМА, и её наверное надо объявить как double е1 = Price; чтобы на первом баре она начиналась от цены, а не чёрт знает откуда, но в дальнейшем она будет жить уже своей жизнью и не должна соответствовать Price на последующих барах.
#2203


Версия 11.94.3

Спойлер

[list type=decimal]

  • Проверка достаточности загруженной истории для расчета канала BB

  • Проверка не находятся ли обе границы канала с одной стороны и довольно далеко от цены



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



    Вот, обнаружил интересные последствия.
    Понедельник, хороший гэп, 11.94.3 15 минут отказывается в него входить, потому как "обе границы канала далеко от цены" (это перевожу иероглифы из лога)

    2016.11.09 10:08:33.276 2013.02.25 00:15 Generic A-TLP 11.94.3 GBPCHF,M15: open #8 buy 0.01 GBPCHF at 1.40371 ok
    2016.11.09 10:08:33.273 2013.02.25 00:14 Generic A-TLP 11.94.3 GBPCHF,M15: 0:14 | Error: Îáå ãðàíèöû êàíàëà äàëåêî îò öåíû, upper: 1.422140245748581, lower: 1.41147821578988, Bid: 1.40265
    ...
    2016.11.09 10:08:31.188 2013.02.25 00:00 Generic A-TLP 11.94.3 GBPCHF,M15: 0:0 | Error: Îáå ãðàíèöû êàíàëà äàëåêî îò öåíû, upper: 1.422140245748581, lower: 1.41147821578988, Bid: 1.40071

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

    безобразная_эльза_11.94.png

    #2204
    TakeProfit_1 если е1 - это обычная ЕМА, зарезервированное слово и там всегда значение ЕМА?
    А как понимать e1 = F * Price + (1 - F) * e1[1], мы тут изменяем значение текущей EMA используя в расчетах EMA с прошлого бара? :-?

    Или можно заменить e1 = F * Price + (1 - F) * e1[1] на получение значения EMA - e1 = iMA(NULL,0,InpPeriod,0,MODE_EMA,PRICE_CLOSE,i) ?
    #2205
    Цитата

    Вот, обнаружил интересные последствия...

    интересное наблюдение для тех кто торгует гэп,может не стоило вводить дополнительный параметр нейтрализации возможного и очень редкого глюка в виде достаточно большой удаленности от текущей цены.. так реально на серьезных гэпах можем не взять хорошую прибыль... :( Т.е. зачем ставить сразу 2 заплатки, на одну небольшую дырку, которая к тому же, чтобы проявилась, нужно самому трейдеру немало постараться, как я понимаю, а - Проверка достаточности загруженной истории для расчета канала BB и так, вероятно все же исключит данную ошибку совсем, но при этом точно никак не помешает торговле на гэпах, которые, к слову в последнее время довольно частое явление и торгуемое многими...

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

    #2206

    Произведение искусства от TakeProfit_1 в MQL4

    TP1_Channel.mq4248 скач.

    Изменено 23 ноября, 2016 пользователем NotMe

    #2207

    Хочу предложить machine подкорректировать логику мультивалютного управления в версии 12.38. Эта фишка очень полезна и при одинаковом риске на каждую пару работает отлично но при разном риске на парах появляется проблемка.

    Ситуация следующая... Если на разные пары выставить разный ММ, при котором скажем по паре GBPCAD можно открывать 0.10 лота а по паре GBPUSD 0.15 лота, то если первым откроется покупка по GBPUSD на 0.15 то попытка открытия покупки по GBPCAD на 0.10 будет отвергнута, так как максимальный лот по GBP уже достигнут. А вот если сначала откроется GBPCAD на покупку 0.10 и захочет открыться GBPUSD на покупку 0.15 то он откроется. Это не теория - это из реальных торгов. Мне кажется будет правильнее, если в последней ситуации GBPUSD откроется на 0.15-0.10=0.05 лота, так как по этой паре разрешено 0.15 а по другим парам лимит по GBP еще полностью не выбран.

    И еще из хотелок. Часто на тестах я вижу минусовые сделки в самом начале тестового периода. Как правило в самых раних числах января. В одном роботе, которым я торгую, есть понятие рождественских каникул, когда можно запретить сделки в период с 20 декабря по 10 января. Думаю стоит ввести такую паузу в Generic. Этот параметр заодно поможет запрещать торги на тестах да и на реале в такие промежутки как Брэкзит и Выборы и тому подобное. Две переменные VacationStart и VacationEnd.

    И последнее )) Никак нельзя этот замечательный новостной фильтр в 12.38 заставить работать при тестировании? Видимо нужно закачать историю новостей если она где-то доступна и дать понять боту как учитывать старые новости при тестировании. Это реально?

    #2208


    В одном роботе, которым я торгую, есть понятие рождественских каникул, когда можно запретить сделки в период с 20 декабря по 10 января. Думаю стоит ввести такую паузу в Generic. Этот параметр заодно поможет запрещать торги на тестах да и на реале в такие промежутки как Брэкзит и Выборы и тому подобное. Две переменные VacationStart и VacationEnd.


    Только массивчик бы: пару рождественских каникул, Brexit, выборы... Итого 10 vacations ))
    #2209


    TakeProfit_1 если е1 - это обычная ЕМА, зарезервированное слово и там всегда значение ЕМА?
    А как понимать e1 = F * Price + (1 - F) * e1[1], мы тут изменяем значение текущей EMA используя в расчетах EMA с прошлого бара? :-?

    Или можно заменить e1 = F * Price + (1 - F) * e1[1] на получение значения EMA - e1 = iMA(NULL,0,InpPeriod,0,MODE_EMA,PRICE_CLOSE,i) ?


    Нет, ты путаешь. В Омеге ЕМА вызывается функцией XAverage(Price, Length). У меня она сначала и была, но потом я её заменил на формулу расчёта внутри кода, чтобы ещё быстрее считалось.
    е1 никакое не зарезервированное слово, это просто переменная, её можно было как угодно назвать. Я в комментарии написал е1 = ..... // Это самая обычная ЕМА , имея ввиду, что если эту переменную е1 вывести на график, то она совпадёт с iMA(NULL,0,InpPeriod,0,MODE_EMA,PRICE_CLOSE,i)
    Очень не хотелось бы iMA, зачем что-то вызывать, если быстрее из кода будет считаться? Много раз читал, что вызов индикаторов тормозит расчёты.
    //А как понимать e1 = F * Price + (1 - F) * e1[1], мы тут изменяем значение текущей EMA используя в расчетах EMA с прошлого бара? :-?//
    Да, именно так! Цена (Price, за которой стоит например Close текущего бара) изменилась - e1 тоже меняется. С текущего бара берётся Price, а e1[1] только с прошлого бара.

    Изменено 23 ноября, 2016 пользователем TakeProfit_1

    #2210
    TakeProfit_1, версия индикатора от NotMe совпадает с вашим на омеге?
    Какие посоветуете параметры и в каких диапазонах оптимизировать?
    #2211

    Не следил за темой пару дней, теперь читаю


    И он бродит по форуму в поисках места, где можно было бы намекнуть, что все вокруг пидарасы и только он Дартаньян.



    Я бы лучше и не сказал
    #2212


    TakeProfit_1, версия индикатора от NotMe совпадает с вашим на омеге?
    Какие посоветуете параметры и в каких диапазонах оптимизировать?


    У меня в Омеге форекса нет, есть фьючи ФОРТС и акции ММВБ, и то только на истории остались, онлайна уже нет. А в Метаке ФОРТСа нет, так что сравнить не могу. Но, судя по тому, что индикатор при Lag = 1 точно совпадает iMA(MODE_EMA) с одинаковым периодом, и что при Lag = 0 и Lag = 2 линии рисуются на одинаковом расстоянии от Lag = 1 , а так же все они пересекаются в одной точке - сделано всё чётко, NotMe молодец! =d>
    Параметры: обычно стандартные параметры у меня - Lag 0 или 1, Nx 10-20, Enter -1.5 или -2.0, Exit 0.0 или 0.5. Len можно любой, от фантазии зависит. Начать наверное можно с 10 - 100 с шагом 5 или10.
    Lag от -1 до 2 шаг 0.5, Nx можно оставить 10, после общего теста сделать проверку от 1 до 50 с шагом 1. Если будут хорошие результаты при малых значениях Это грубый первый тест, после него желательно уточнять параметры, прогоняя по одному с меньшим шагом, например Enter и Exit шаг 0.1. Не надо гнаться за максимальным профитом, лично я предпочитаю более качественные сигналы с высоким профит-фактором и высоким средним трейдом в пипсах. Если в оптимизаторе по одному параметру вы получили "горб" лучших результатов например от 20 до 40 с лучшим результатом в виде шипа на 38, ставьте параметр в середину на 30. Но самое главное - почаще смотрите на график Эквити. Выбирайте те параметры, которые дают наиболее ровно растущую линию Эквити.
    #2213


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


    А кажется что Старик? То что сов. пробует открывать вторую сделку?

    Вообщем в 11.94.3 есть доп функция принудительное закрытие ордера по времени (Morningclose), на тестах все гуд.. если ставить "закрыть сразу".

    Изменено 23 ноября, 2016 пользователем Allviz

    #2214
    Generic A-TLP 11.94.3 TP1C

    Версия с каналом от TakeProfit_1, параметры отступов от канала убраны, каналы на вход и выход берутся из индикатора.

    Индикатор /laboratoriya-profitfx/24/open-source-sovetnik-generic-a-tlp/13593/?do=findComment&comment=322453

    Какие параметры брать в оптимизацию /laboratoriya-profitfx/24/open-source-sovetnik-generic-a-tlp/13593/?do=findComment&comment=322501

    Есть результаты небольшого сравнительного теста с параметрами по умолчанию.

    Generic_A-TLP_11.94.3_TP1C.mq4198 скач.
    USDCHF_test_BB_vs_TP1C.zip236 скач.

    #2215
    Цитата

    Generic A-TLP 11.94.3 TP1C

    Версия с каналом от TakeProfit_1, параметры отступов от канала убраны, каналы на вход и выход берутся из индикатора.

    Индикатор /laboratoriya-profitfx/24/open-source-sovetnik-generic-a-tlp/13593/?do=findComment&comment=322453

    Какие параметры брать в оптимизацию /laboratoriya-profitfx/24/open-source-sovetnik-generic-a-tlp/13593/?do=findComment&comment=322501

    Есть результаты небольшого сравнительного теста с параметрами по умолчанию.


    Результаты сравнительного теста просто блестящие, похоже индикатор от TakeProfit_1 очень стоящий =d> Вопрос - для работы этой версии советника индикатор надо класть в папку индикаторов или он уже вшит в код советника и ничего дополнительно в терминал ставить не надо?
    #2216


    Generic A-TLP 11.94.3 TP1C

    Версия с каналом от TakeProfit_1, параметры отступов от канала убраны, каналы на вход и выход берутся из индикатора.

    Индикатор /laboratoriya-profitfx/24/open-source-sovetnik-generic-a-tlp/13593/?do=findComment&comment=322453

    Какие параметры брать в оптимизацию /laboratoriya-profitfx/24/open-source-sovetnik-generic-a-tlp/13593/?do=findComment&comment=322501

    Есть результаты небольшого сравнительного теста с параметрами по умолчанию.



    Что за магия вообще случилась? профит фактор упал тупо из-за того, что больше сделок стало? Но профита рубит больше с такой же просадкой? я всё правильно понял? нифигасе..

    Бегом все оптимизировать и кидать результаты в тред обсуждения советника!1 :)
    #2217
    FERRARI2009, или это значит что оптимизация по боллинджеру толком не проводилась. Нужно больше результатов.

    Индикатор нужно в папку индикаторов положить и скомпилировать.
    #2218


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

    Индикатор нужно в папку индикаторов положить и скомпилировать.


    Может его приживить?
    #2219


    Что за магия вообще случилась? профит фактор упал тупо из-за того, что больше сделок стало? Но профита рубит больше с такой же просадкой? я всё правильно понял? нифигасе..

    Бегом все оптимизировать и кидать результаты в тред обсуждения советника!1 :)


    Не торопитесь пока оптимизировать! Сначала надо проверить, как работают все фильтры по очереди. То есть отключаем все фильтры, делаем "чистый" прогон с параметрами по умолчанию, чтобы торговали только каналы, фиксируем результат. Затем включаем один фильтр и оптимизируем его, потом отключаем и включаем второй. Задача - определить эффективность всех фильтров. По результатам решим, что дальше делать. Желательно кроме дефолтного сета проверить всю эту процедуру и на паре других сетов. например:

    input int Len = 30;
    input double Lag = 0;
    input double Nx = 10.0;
    input double Enter = -2.5;
    input double Exit = 0.0;

    input int Len = 50;
    input double Lag = 0;
    input double Nx = 10.0;
    input double Enter = -1.5;
    input double Exit = 0.0;
    #2220


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


    Ну, насколько понимаю, оптимизация для ВВ практически не проводилась.



    Что за магия вообще случилась? профит фактор упал тупо из-за того, что больше сделок стало? Но профита рубит больше с такой же просадкой? я всё правильно понял? нифигасе..

    Бегом все оптимизировать и кидать результаты в тред обсуждения советника!1 :)


    Не торопитесь пока оптимизировать! Сначала надо проверить, как работают все фильтры по очереди. То есть отключаем все фильтры, делаем "чистый" прогон с параметрами по умолчанию, чтобы торговали только каналы, фиксируем результат. Затем включаем один фильтр и оптимизируем его, потом отключаем и включаем второй. Задача - определить эффективность всех фильтров. По результатам решим, что дальше делать. Желательно кроме дефолтного сета проверить всю эту процедуру и на паре других сетов. например:

    input int Len = 30;
    input double Lag = 0;
    input double Nx = 10.0;
    input double Enter = -2.5;
    input double Exit = 0.0;

    input int Len = 50;
    input double Lag = 0;
    input double Nx = 10.0;
    input double Enter = -1.5;
    input double Exit = 0.0;

    Абсолютно верно!
    Никто никуда не бежит - шаг за шагом надо выполнять исчерпывающие сравнительные тесты и лишь потом оптимизацию.
    Методично.
    #2221

    Преимущества Канала "Произведение искусства" :) :

    - гибкость настроек:
    Плавное переключение между видами ЕМА (зеро-лаг ЕМА - обычная ЕМА - дважды сглаженная ЕМА(ЕМА))(параметр Lag), что позволяет подстраиваться под активы с более или менее выраженным трендовым компонентом. Настройка периода расчёта среднего отклонения с привязкой к периоду расчёта ЕМА, позволяющая например тестировать в широком диапазоне значений только по одному параметру (периоду ЕМА, параметр Len) при сохранении заданных пропорций системы.

    - адаптивность:
    Автоматическая подстройка ширины канала под текущую волатильность актива с заданной чувствительностью к её изменениям (параметр Nx).

    - масштабируемость:
    Корректно работает на любом таймфрейме и с любым периодом расчёта, сохраняя заданные пропорции. Не зависит от размера баров на текущем таймфрейме, в отличие от каналов Кельтнера. Например у нас построен канал на графике М15 с периодом Len(10), для перехода на график М5 достаточно поменять период на Len(30), не трогая остальные параметры, и линии канала практически совпадут на этих графиках.

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

    P.S.
    На самом деле, радикального улучшения производительности с ним, к сожалению, не происходит. Как правило, результаты лучше от силы процентов на 10-20 по сравнению с другими каналами. Основное преимущество - при использовании зеро-лаг ЕМА как правило меньше просадки во время трендовых периодов актива.

    Изменено 24 ноября, 2016 пользователем TakeProfit_1

    #2222

    Сделал сравнительные тесты версий 11.94.2 и 11.94.3 TP1C (BB vs TP1C aka "Произведение искусства")
    Сеты - рекомендованные, из шапки. Для версии с TP1C настройки индикатора оставлены по умолчанию. Ничего не оптимизировалось и не изменялось. Тесты проведены с целью нахождения точки опоры для последующих оптимизаций.
    Метод тестирования: TDS2 (99%), плавающий спред, реальные тики, slippage +0.7 и -2.0, начальный баланс 10к, лот 0.01, период 2012-2016.11.18.

    Generic_A-TLP_11.9x_BB_vs_TP1C_default.zip193 скач.

    #2223
    ZeroDivide, я так понимаю в ТДС2 тесты деланы. Маякни Берту про АшиПку в графе "Период": 15 Минут (M15) 2016.11.18 21:30 - 2016.11.18 23:45 (2012.01.01 - 2016.11.20).

    TakeProfit_1, баксосодержащие инструменты с КПИ даже без оптимизации интересные резы показывают. Похоже, хорошая находка. Браво.

    Изменено 24 ноября, 2016 пользователем SebastianPerreira

    #2225

    Появились доказательства что советник 11.94.3 пропускает прибыльные сделки, потому что не всегда может детектировать пробитие канала (о чем я упоминал совсем недавно, но тогда из-за спреда все равно бы не было открытия, теперь же спред был в норме).
    Все примеры по паре EURGBP, прошедшая ночь.
    1. Амаркетс ЕСН счет - на графике видно одно 100% пробитие канала, спред был в норме, вообще никаких записей в журнале или надписей на графике - советник просто "проспал" пробитие канала


    2. Брокер Pepperstone ECN Razor счет - пропустил сразу 2 пробития канала - никаких сообщений не выдавал


    3. Брокер FXopen ECN - из 2 пробитий канала 0 попыток открыть сделку(в начале и самом конце построения канала):


    А вот как могло быть, если бы робот на вышеперечисленных брокерах "не спал" а работал:
    4. Робофорекс, ЕСN счет - аж 3 сделки(!!!) - советник среагировал на все пробития канала - вот так и должно быть всегда (первую сделку закрыл руками, но в любом случае она закрылась по фильтру 2 BB Channell до открытия второй сделки, далее в ход торгов не вмешивался)


    5. Брокер Forex.ee, ECN счет - хоть и открыто 2 сделки (первую закрывал также вручную), но советник все-таки пропустил 1 пробитие канала(на графике при увеличении видно):


    Итого что мы имеем - из 5 счетов (брокеров) советник отработал правильно, согласно своего алгоритма, только на 1(!!!) x_x

    Вывод: советник 11.94.3 явно сбоит при детектировании пробития канала на регулярной основе.

    Отсюда вытакает вполне логичный вопрос - что с этим можно сделать?

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

    #2226

    Здравствуйте. Установил советника Generic A-TLP v.11.7 на все восемь валютные пары, тайм М15, в Alpari MT4, Version: 4.00 Build 1010 (18 Aug 2016). Всё строго по инструкции. Авто-торговля включена, смайл улыбается, НО ни одной сделки 3-и сутки..( Ребята что не правильно, кому не сложно, подскажите?

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

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