EA_FractalCandle

cmillion

Гуру форума
Советник работает на пробой или отской от уровней. Возможно одновременное применение двух стратегий.
Уровни определяются по фракталам и свечам.
Советник открывает отложенный стоп ордера на фракталах или на экстремумах свечей.
2019-10-29_18-33-21.png
BuyStop и SellLimit советник ставит на верхнем фрактале или на HIGH свечи.
SellStop и BuyLimit на нижнем фрактале или LOW свечи.
Для Stop и Limit ордеров в параметрах предусмотрен отступ. Таким образом BuyStop можно поставить чуть выше верхнего фрактала, а SellLimit одновременно чуть ниже.
Когда цена дойдет до уровня и отобъется от него, то советник получает прибыль по лимитным ордерам. Если же произошел пробой и сработал стоп ордер, то прибыль ждем от пробоя.
Если цена не зацепила ордер и сформировался новый фрактал, то советник тралит ордера за ценой по новым фракталам или свечам.
2019-10-29_18-38-32.png
После срабатывания ордера его стоплосс тралится по тем же принципам. Т.е. стоп перемещается за ценой по вершинам фракталов или экстремумам свечей.
В случае, если появляется новый ордер, то советник усредняет их и тралит уже суммарную прибыль от точки безубытка.
Если случилась ситуация, когда открыто много позиций против тренда, то при заданной просадке советник разгружает депозит закрывая дальние позиции за счет накопленной прибыли.


Параметры:
2019-10-29_17-37-30.png

Тесты:
2019-10-30_00-50-49.png2019-10-25_21-42-41.png2019-10-29_18-26-03.png2019-10-28_17-30-12.png
 

Вложения

  • EA_FractalCandle 1,1limit.ex4
    66,5 КБ · Просмотры: 119
  • set optim 1.1.set
    1,2 КБ · Просмотры: 97
Последнее редактирование модератором:

fxbo

Активный участник
Доброе время суток!
Пытался потестировать с вашим сетом, потом менял разные настройки и таймфреймы, тест запускается, выставляет ордера и ничего далее не происходит, такое впечатление как виснет тестер.
В видео ролике видел у вас отключен лимит ордеров по фракталам, я чет не нашел как эту функцию отключить....

1572486212484.png

Что не так?
 

cmillion

Гуру форума
Доброе время суток!
Пытался потестировать с вашим сетом, потом менял разные настройки и таймфреймы, тест запускается, выставляет ордера и ничего далее не происходит, такое впечатление как виснет тестер.
В видео ролике видел у вас отключен лимит ордеров по фракталам, я чет не нашел как эту функцию отключить....

Посмотреть вложение 351480

Что не так?
В параметрах укажите off и лимит ордер будет отключен
2019-10-31_12-39-20.png
По поводу работы посмотрите журнал, возможно будут какие то сообщения.
 

fxbo

Активный участник
Отключил лимит ордеров, тест пошел, брокер forex4ю, gbp/jpi, m5, 1000 cent, с 01.012019 - 30.04.2019

1572521443357.png

Что означает функция отключения лимита ордеров, для чего она нужна и почему при включении тест не пашет?

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

1572521682887.png
 

cmillion

Гуру форума
Что означает функция отключения лимита ордеров, для чего она нужна и почему при включении тест не пашет?
Почему такое большое рассоглосование графиков, насколько я понимаю должно стремиться к 0?

Вероятнее всего дело в том, что у Вас дырявые котировки. Об этом как раз говорит качество моделирования - n/a. Из за этого и рассогласование. Возможно поэтому и не встают лимитные ордер. Обновите котировки.
Как обновить котировки читайте здесь: -https://cmillion.ru/kotirovki-dlya-testirovaniya-sovetnikov/
 

cmillion

Гуру форума
А какая цена и условия покупки?
Для работы на реале нужно ввести ключ (числовой код в поле key). Ключ привязан к определенному номеру торгового счета.
При открытии счета по партнерской программе Вы получаете на этот счет несколько десятков ключей для различных советников.

Если у Вас уже открыт счет или Вы торгуете у другого брокера, то ключ к Вашему счету можно просто купить
Стоимость ключа на 1 счет 50$ (можно в рублях по текущему курсу)
 
Последнее редактирование модератором:

cmillion

Гуру форума
У Вас другой брокер и совершенно другая валютная пара со своим характером движения. Плюс ко всему котировок по сути нет, Вы наугад тестируете.
Вам нужно сначала обновить котировки, а потом провести оптимизацию параметров под эту пару.
 
Последнее редактирование модератором:

fxbo

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

Подскажите, попробую оптимизировать...., котировки обновлю
 

cmillion

Гуру форума
Подскажите, попробую оптимизировать...., котировки обновлю

Тестирование и оптимизация советника на истории
  1. Откройте МТ4, перейдите в тестер стратегий
2019-10-31_15-25-26.png

Откроется окно тестера стратегий
2019-10-31_15-22-54.png
  1. В строке “Советник” установите Ваш советник EA_FractalCandle 1,1limit
  2. Выберите валютную пару, например, EURUSD
  3. Установите модель – все тики (для более быстрого тестирования можно на первом этапе ставить по ценам открытия)
  4. Установите метку “Использовать дату”
  5. Установите дату по Вашему усмотрению. Для избежание ошибок, проверьте архив котировок, при необходимости обновите Ваши котировки.(F2)
  6. Выставите период (таймфрейм). Na должен стоять меньше или тот же что указан в самих параметрах советника.
  7. Для того, чтобы видеть ход работы советника, установите флаг “Визуализация” (в режиме оптимизации его нужно отключить)
  8. Нажмите Start и дождитесь окончания процесса тестирования
  9. Для просмотра результатов тестирования советника, перейдите в закладку “Отчет”
Оптимизация советника
Оптимизация представляет собой последовательные прогоны одного и того же советника с различными входными параметрами на одних и тех же данных. При этом можно подобрать такие параметры, при которых эффективность советника будет максимальной. Терминал MT4 обладает встроенными средствами, позволяющими автоматизировать этот процесс.

Для оптимизации параметров, установите метку “оптимизация”. В свойствах эксперта установите пределы изменения тех параметров, которые Вы хотите подобрать и нажмите Start.

2019-10-31_15-32-08.png
Галочкой отмечены те, которые будут перебираться при оптимизации. Старт - начальное значение,Стоп - конечное значение. Я Выставил примерные значения в файле set который приложен в первом посту.
2019-10-31_15-44-25.png
Результаты оптимизации.
После того как Вы запустите советник в тестере на оптимизацию, Вы получите огромное количество результатов. Теперь остается самое сложное – какой результат выбрать, какие параметры системы есть лишь подгонка под историю, а при каких параметрах система будет приносить прибыль на реальном рынке.
При оптимизации в МетаТрейдере удобно использовать Генетический Алгоритм, а в качестве оптимизируемого параметра выбирать баланс. Таким образом пытаться максимизировать прибыль системы. Но это не значит, что именно результаты с максимальной прибылью дадут нам систему, которая способна приносить прибыль на реальном рынке.
Во время оптимизации нужно не просто получить наилучший результат, а выбрать среди всех наиболее достоверный – тот, который в будущем принесет прибыль. Это будет легче сделать, если отсеять заведомо нерабочие результаты тестирования.
Для этого я предлагаю простые правила, которые помогут уменьшить количество результатов оптимизации системы.
1. Количество сделок должно быть не меньше 300. Лучше, чтобы было более 500.
2. Профит-фактор системы (отношение общей прибыли к общим убыткам) должен быть больше 1.5. – чем выше значение профит-фактора, тем лучше, но не забывайте об остальных пунктах.
3. При тестировании вне периода оптимизации, система должна показать результаты, соответствующие тем, что получены во время оптимизации. Первое на что следует обратить внимание — это просадка, она не должна быть больше, чем просадка за период оптимизации (об этом следующий пункт).
4. Просадка системы должна составлять такую величину, которую позволит терпеть депозит. Просадка системы – это наш проигрыш, который мы можем себе позволить, не останавливая торговлю. Если система на реале, допускает просадку больше той, что получена на тестах, такую систему следует снять с торгов и пересмотреть. Здесь можно долго спорить о величине допустимой просадки. Пусть каждый сам для себя решает, чем он может пожертвовать в случае неудачи.
5. Обратите внимание на сами параметры системы, которые оптимизировались. Значения переменных, полученные в результате оптимизации, должны находиться в разумных пределах, и соответствовать основной идее системы.
Эти простые правила позволяют отсеять заведомо нерабочие параметры системы, которые не будут работать на реале.
2019-10-31_15-44-07.png
Почему при тестировании на одних и тех же параметрах результаты разные?
Есть несколько вариантов:
– Если Вы используете генетический алгоритм при оптимизации, то результаты будут почти всегда хоть немного но отличаться.
– Если тестер находится в онлайне, могут подкачиваться котировки, которые обновляют базу, тем самым меняя историю.
– Тестер берёт настройки того ДЦ (спред, своп, стоплевел …), к счёту которого подключен в текущий момент терминал, например закачали котировки из дата центра MQ, а тестировали в момент подключения к другому ДЦ.

И еще несколько советов напоследок.
Никогда не проводите оптимизацию системы на всей доступной истории. Всегда оставляйте часть данных (примерно 10%) для тестирования out-of-sample. Это очень важный момент при проведении оптимизации. Если система, на этом промежутке ведет себя по-другому, нежели на периоде оптимизации, то смело отбрасывайте эти результаты оптимизации – это лишь подгонка под историю.
Всегда внимательно изучайте результаты оптимизации. Наблюдая то, как изменяется результат работы системы при изменении какого-либо параметра, можно сказать, как этот параметр влияет на систему. Может его вообще исключить из оптимизации.
Многие утверждают, что, проводя оптимизацию можно лишь подогнать систему на кривой истории, и она никогда не будет вести себя также как вела себя в тестере. Это не верно. Используя исторические данные, всегда можно грамотно протестировать систему и подобрать такие параметры, которые будут работать в будущем на реальном рынке. Это сложно и требует несколько больше времени, чем многие думают, но это возможно.
Чем больше и всесторонней Вы протестируете систему, тем больше Вы о ней узнаете и тем больше Вы сможете на ней заработать.
 
Последнее редактирование модератором:

fxbo

Активный участник
Тестирование и оптимизация советника на истории
  1. Откройте МТ4, перейдите в тестер стратегий
Посмотреть вложение 351542

Откроется окно тестера стратегий
Посмотреть вложение 351541
  1. В строке “Советник” установите Ваш советник EA_FractalCandle 1,1limit
  2. Выберите валютную пару, например, EURUSD
  3. Установите модель – все тики (для более быстрого тестирования можно на первом этапе ставить по ценам открытия)
  4. Установите метку “Использовать дату”
  5. Установите дату по Вашему усмотрению. Для избежание ошибок, проверьте архив котировок, при необходимости обновите Ваши котировки.(F2)
  6. Выставите период (таймфрейм). Na должен стоять меньше или тот же что указан в самих параметрах советника.
  7. Для того, чтобы видеть ход работы советника, установите флаг “Визуализация” (в режиме оптимизации его нужно отключить)
  8. Нажмите Start и дождитесь окончания процесса тестирования
  9. Для просмотра результатов тестирования советника, перейдите в закладку “Отчет”
Оптимизация советника
Оптимизация представляет собой последовательные прогоны одного и того же советника с различными входными параметрами на одних и тех же данных. При этом можно подобрать такие параметры, при которых эффективность советника будет максимальной. Терминал MT4 обладает встроенными средствами, позволяющими автоматизировать этот процесс.

Для оптимизации параметров, установите метку “оптимизация”. В свойствах эксперта установите пределы изменения тех параметров, которые Вы хотите подобрать и нажмите Start.

Посмотреть вложение 351546
Галочкой отмечены те, которые будут перебираться при оптимизации. Старт - начальное значение,Стоп - конечное значение. Я Выставил примерные значения в файле set который приложен в первом посту.
Посмотреть вложение 351550
Результаты оптимизации.
После того как Вы запустите советник в тестере на оптимизацию, Вы получите огромное количество результатов. Теперь остается самое сложное – какой результат выбрать, какие параметры системы есть лишь подгонка под историю, а при каких параметрах система будет приносить прибыль на реальном рынке.
При оптимизации в МетаТрейдере удобно использовать Генетический Алгоритм, а в качестве оптимизируемого параметра выбирать баланс. Таким образом пытаться максимизировать прибыль системы. Но это не значит, что именно результаты с максимальной прибылью дадут нам систему, которая способна приносить прибыль на реальном рынке.
Во время оптимизации нужно не просто получить наилучший результат, а выбрать среди всех наиболее достоверный – тот, который в будущем принесет прибыль. Это будет легче сделать, если отсеять заведомо нерабочие результаты тестирования.
Для этого я предлагаю простые правила, которые помогут уменьшить количество результатов оптимизации системы.
1. Количество сделок должно быть не меньше 300. Лучше, чтобы было более 500.
2. Профит-фактор системы (отношение общей прибыли к общим убыткам) должен быть больше 1.5. – чем выше значение профит-фактора, тем лучше, но не забывайте об остальных пунктах.
3. При тестировании вне периода оптимизации, система должна показать результаты, соответствующие тем, что получены во время оптимизации. Первое на что следует обратить внимание — это просадка, она не должна быть больше, чем просадка за период оптимизации (об этом следующий пункт).
4. Просадка системы должна составлять такую величину, которую позволит терпеть депозит. Просадка системы – это наш проигрыш, который мы можем себе позволить, не останавливая торговлю. Если система на реале, допускает просадку больше той, что получена на тестах, такую систему следует снять с торгов и пересмотреть. Здесь можно долго спорить о величине допустимой просадки. Пусть каждый сам для себя решает, чем он может пожертвовать в случае неудачи.
5. Обратите внимание на сами параметры системы, которые оптимизировались. Значения переменных, полученные в результате оптимизации, должны находиться в разумных пределах, и соответствовать основной идее системы.
Эти простые правила позволяют отсеять заведомо нерабочие параметры системы, которые не будут работать на реале.
Посмотреть вложение 351551
Почему при тестировании на одних и тех же параметрах результаты разные?
Есть несколько вариантов:
– Если Вы используете генетический алгоритм при оптимизации, то результаты будут почти всегда хоть немного но отличаться.
– Если тестер находится в онлайне, могут подкачиваться котировки, которые обновляют базу, тем самым меняя историю.
– Тестер берёт настройки того ДЦ (спред, своп, стоплевел …), к счёту которого подключен в текущий момент терминал, например закачали котировки из дата центра MQ, а тестировали в момент подключения к другому ДЦ.

И еще несколько советов напоследок.
Никогда не проводите оптимизацию системы на всей доступной истории. Всегда оставляйте часть данных (примерно 10%) для тестирования out-of-sample. Это очень важный момент при проведении оптимизации. Если система, на этом промежутке ведет себя по-другому, нежели на периоде оптимизации, то смело отбрасывайте эти результаты оптимизации – это лишь подгонка под историю.
Всегда внимательно изучайте результаты оптимизации. Наблюдая то, как изменяется результат работы системы при изменении какого-либо параметра, можно сказать, как этот параметр влияет на систему. Может его вообще исключить из оптимизации.
Многие утверждают, что, проводя оптимизацию можно лишь подогнать систему на кривой истории, и она никогда не будет вести себя также как вела себя в тестере. Это не верно. Используя исторические данные, всегда можно грамотно протестировать систему и подобрать такие параметры, которые будут работать в будущем на реальном рынке. Это сложно и требует несколько больше времени, чем многие думают, но это возможно.
Чем больше и всесторонней Вы протестируете систему, тем больше Вы о ней узнаете и тем больше Вы сможете на ней заработать.

Благодарю, отличный пост...
 

cmillion

Гуру форума
Добавил параметр DL (дискретность лота)
если у Вас можно ставить лот 0,01 то ставьте DL=2
Если на счете минимальный лот 0,1 или прирост лота 0,1, то ставьте DL=1
Если Вы торгуете только целыми лотами, то ставьте DL = 0
 

Вложения

  • EA_FractalCandle 1,3.ex4
    66,6 КБ · Просмотры: 40

tsany

Активный участник
Я использую уже два месяца EA_FractalCandle, но только с Stop ордеров
и могу сказать что идея этого трейдинга
работоспособна, мне нравиться и
отлично реализована вам. Спасибо за это!
У меня есть две замечания:
1) Во время новизной, спред как вы знаете
светкавично растет до величайшие стойности :).
У меня были sell ордера с StopLoss на профит,
но благодаря увеличения спреда, закрылись на loss.
Вопрос у меня такой: Если возможно, sell orders
закрывать использовать Ask line когда то переходить
над SellStop line.
Тогда время большого изменения спреда
не будет вредит на результат.
2) Безубъйток. Система стартирует StopLoss line на
безубыток, но думаю что не учитывает все расходы -
имею ввиду специально commision и swap (swap иногда большой)
и если маркет в это время начнет идти против нас,
безубъйток становится на loss.
Спасибо за етой системе и за внимание!
 

cmillion

Гуру форума
Я использую уже два месяца EA_FractalCandle, но только с Stop ордеров
и могу сказать что идея этого трейдинга
работоспособна, мне нравиться и
отлично реализована вам. Спасибо за это!
У меня есть две замечания:
1) Во время новизной, спред как вы знаете
светкавично растет до величайшие стойности :).
У меня были sell ордера с StopLoss на профит,
но благодаря увеличения спреда, закрылись на loss.
Вопрос у меня такой: Если возможно, sell orders
закрывать использовать Ask line когда то переходить
над SellStop line.
Тогда время большого изменения спреда
не будет вредит на результат.
2) Безубъйток. Система стартирует StopLoss line на
безубыток, но думаю что не учитывает все расходы -
имею ввиду специально commision и swap (swap иногда большой)
и если маркет в это время начнет идти против нас,
безубъйток становится на loss.
Спасибо за етой системе и за внимание!

Позиции бай всегда закрываются по цене Bid. А Позиции sell по цене Ask. Это невозможно изменить. Можно только увеличить профит при котором должен стартовать трал чтобы он перекрывал свопы и комиссии. Я позже это могу сделать.
 

tsany

Активный участник
Позиции бай всегда закрываются по цене Bid. А Позиции sell по цене Ask. Это невозможно изменить. Можно только увеличить профит при котором должен стартовать трал чтобы он перекрывал свопы и комиссии. Я позже это могу сделать.
За безубыток это будет отлично. Спасибо!
Относно отрабатывания стоплосса вы правый - там ничего не можно изменит.
Хочу сказать что имплементированный трейлинг работает отлично.
Проблема о которой я обратил внимание, это что Buy закрывается по цене Bid, но срабатывает по цене Ask, и соответственно sell закрывается по Ask, но срабатйваает по цене Bid. Думаю, чтобы спастись от потерь когда Spread вылетает за несколько тиков и нас StopLoss, можно только если StopLoss стирать когда скажем Spread больше некоторой стойности (параметр) и когда становится ниже этой стойности восстанавливать. Но понимаю это может быть возможно на не скорое будущее :). Еще раз спасибо!
 

cmillion

Гуру форума
За безубыток это будет отлично. Спасибо!

Советник вычисляет уровень безубытка и отмечает его на графике ценовыми метками
2020-01-04_10-17-48.png
Стоплосс для Buy ставится только выше безубытка buy b тралится только вверх.
Стоплосс sell ставится всегда ниже безубытка sell b тралится только вниз.

Проблема о которой я обратил внимание, это что Buy закрывается по цене Bid, но срабатывает по цене Ask, и соответственно sell закрывается по Ask, но срабатйваает по цене Bid.

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

Думаю, чтобы спастись от потерь когда Spread вылетает за несколько тиков и нас StopLoss, можно только если StopLoss стирать когда скажем Spread больше некоторой стойности (параметр) и когда становится ниже этой стойности восстанавливать. Но понимаю это может быть возможно на не скорое будущее :). Еще раз спасибо!

Вы хотите останавливать торговлю и не открывать сделки при высоком спреде? Но на отложенные ордера спред не распространяется, мы ставим его не по текущей цене и соответственно ни как от спреде не зависим. Спред Важен при закрытии с рынка, а так как закрытие у нас происходить по обратным ценам, то мы всегда закрываемся только в профит не зависимо от того какой сейчас спред!
 

RNikas

Прохожий
можно написать по моему алгоритму советник немного изменив ваш?
 

hotabuh

Новичок форума
Здравствуйте. Ваш советник работает у меня три дня, но не закрыл еще ни одного ордера. По каким параметрам он закрывает ордера?
 
Верх