Форум » Индикаторы » Индикатор Quantum » Ответить

Индикатор Quantum

Genry: Решил озвучить информацию об интересном индикаторе Quantum. У индикатора всего один параметр для определения перекупленность или перепроданность рынка. Впервые индикатор появился на ФорексФактори в теме Quantum London Trading. Практически сразу появилась тема на TradeLikeaPro : QUANTUM LONDON.INC Есть статья на avtoForex: Торговая стратегия Quantum London.Безубыточная сетка

Ответов - 154, стр: 1 2 3 4 5 6 7 8 9 10 11 All

Genry: Где-то здесь на форуме Sergey высказал разумную мысль, что иногда целью трейдера становится не сама торговля, а изыскания на тему торговли. Ищутся стратегии, советники, индикаторы, методы и подходы и т.п., а сама торговля оказывается в стороне. Согласившись с ним я сократил время которое тратил на изучение всего вышесказанного и вернулся к торговле. Однако, удвоив депозит решил, что могу себе позволить отвлечься и поделиться чем-то интересным. Таким мне показался индикатор Quantum и стратегия "Quantum London" на его основе. Все ссылки в шапке темы, там же исходники индикаторов, советников и т.д. и т.п. Из статьи Natali "Торговая стратегия Quantum London": Несмотря на то, что советники-сеточники считаются самыми рискованными, интерес к ним всегда был, есть и "будет есть". Если советник правильно определяет направление движения цены, то одна лишь сетка ордеров Форекс может увеличить депозит на несколько десятков процентов. Опасность таких экспертов и стратегий заключается в том, что при открытии серии ордеров в неверном направлении, трейдер может полностью потерять свой депозит." По заявлению автора статьи, индикатор Quantum - попытка найти возможность открытия безопасной сетки ордеров. Иллюзия конечно, но не все так печально. Скрин моей сегодняшней торговли.

Sergey: Genry пишет: Скрин моей сегодняшней торговли. И это на М1. Рискованная торговля.

Genry: Scriptong пишет: И второй вопрос: мне кажется или Вы на одной и той же свече открывали более одной сделки (речь о сетке ордеров Sell)? Это не только я, еще советник Quantum_London_Trading_EA_v1_4_2+Close.mq4 Не нашел на странице "ссылку ниже", по которой можно получить индикаторы, используемые для стратегии. Если у Вас они есть, то, пожалуйста, выложите. Здесь оригинальный пакет от августа 2015 года с забугра и последняя версия советника от Staxisa (здешняя).


Scriptong: Не нашел на странице "ссылку ниже", по которой можно получить индикаторы, используемые для стратегии. Если у Вас они есть, то, пожалуйста, выложите. И второй вопрос: мне кажется или Вы на одной и той же свече открывали более одной сделки (речь о сетке ордеров Sell)?

Genry: Sergey пишет: И это на М1. Рискованная торговля. Это мониторинг счета автора сетов к советнику на Quantume v.1.4.2 на TradeLikeaPro. Предыдущий счет он утроил, а потом слил... 2-1 теперь, судя по всему, 3-1

Sergey: Genry пишет: Это мониторинг счета автора сетов к советнику на Quantume v.1.4.2 на TradeLikeaPro. А где сам советник?

Genry: Sergey пишет: А где сам советник? Он сейчас в доработке, поэтому я указал адреса исходного сайта и местного, где идет развитие проекта с советниками. Думал вы оттуда качать будете, но после поста Игоря положил на дропмифайл - ссылка выше. ЗЫ. Дубль Здесь оригинальный пакет от августа 2015 года с забугра и последняя версия советника от Staxisa (здешняя).

Sergey: Genry пишет: Дубль Здесь оригинальный пакет от августа 2015 года с забугра и последняя версия советника от Staxisa (здешняя). ОК! Я файлы индикатора нашел, а советника нет.

Scriptong: Genry пишет: ЗЫ. Дубль Здесь оригинальный пакет от августа 2015 года с забугра и последняя версия советника от Staxisa (здешняя). Спасибо, есть. Sergey пишет: ОК! Я файлы индикатора нашел, а советника нет. В этом пакете даже два советника: Quantum London Trading EA v1.6.1 m09[staxis][20150914] и Quantum London Trading EA v1.5.1. Вы же с dropmefiles качали?

Sergey: Scriptong пишет: Вы же с dropmefiles качали? Я первоначально скачивал со ссылок. Теперь скачал весь пакет. Спасибо Генри.

Sergey: Genry пишет: Вот картинка за месяц. Картинка класс! Но меня пугают такие графики

Genry: Sergey пишет: Картинка класс! Но меня пугают такие графики Основное правило: все сделки открываются с Франкфурта до Лондона - 9 до 11 по зимнему Альпари. Закрыть надо до начала Америки.

Genry: Sergey пишет: Genry пишет: цитата:Вот картинка за месяц. Картинка класс! Но меня пугают такие графики Убрал

Genry: Один из вариантов с фильтрами.

Genry: Имеет смысл читать ветку ТрейдЛакиПро с этой страницы, где yosic выложил ЕА и сеты к нему. Только надо регистрироваться - иначе не видно вложения. yosic пишет: Так как данный сайт помогает найти интересные идеи, выкладываю советник + сеты и напишу краткое описание. Что было добавлено: 1. Закрытие по ТП 2. Закрытие по определенному времени 3. Открывается только 1 сетка в сутки 4. Общий стоп-лосс (не используется) 5. Проверка по общему ТП Каждая пара открывается в определенное время, и они практически не пересекаются, но я рекомендовал использовать 5000 - 0.1 для 5 пар или 500 - 0.01 Пары открываются в след.порядке: AUDUSD - 6:00 USDCAD - 7:00 GBPUSD - 8:30 EURUSD - 9:00 EURGBP - 11:00 Время в терминале -1 от МСК, т.е. если в Москве 17, то там 16. Маджики нужно ставить разные, а то при проверке закроет всё открытое! Сеты проверял только с 01.07.15 (что были в терминале) Потестите с начала года, увидеть результаты и может какие идеи будут.

Genry: Пятница день новостей и разных неожиданностей, поэтому ЕА "Quantum_London_Trading_EA_v1_4_2+Close" которым я сейчас торгую - отдыхал. Торговал руками Евру на М5 по сигналам Квантума и сеткам фибо накинутым на фрактальные структуры. Для входа использовал советник Снайпер, по мне - удобная софтина Последующий анализ показал, что ЕА тоже заработал-бы: с 9 до 10 на нисходящем тренде было 11 сигналов в бай, а потом разворот и все они закрылись бы в плюсе. Но торговля была бы иная: открывшись как и я на вершине в селл, ЕА закрыл бы ордер при первом обратном сигнале Квантума, потом растянул сетку в минус из 11 ордеров и закрыл бы их по профиту или времени, т.к. обратного сигнала Квантума пока не было. Руками я без просадок открыл 4 ордера практически на экстремумах, но пришлось самому торчать у терминала, что тоже не айс Вот такая разница

Genry: Возможно для фильтрации ранних сигналов Квантума имеет смысл применить конверты, как в данном примере, на Фибо. В настройках задавать какие категории сигналов можно торговать.

Genry: xx70x пишет: Genry_05 .. Возможно это решение от преждевременных входов. Да, судя по всему машка с фибо вполне прилично фильтрует сигналы Квантума на длительном тренде. Только надо еще один уровень использовать - 78.6. Сильные коррекционные волны в большинстве случаев доходят до 80 Фибо, если проходят дальше - скорее всего это новый тренд. Но если фильтровать за 80, то будем терять более слабые, но вполне рабочие сигналы... Значит 78.6% Фибо смотрится как последний рубеж >):) и может обработать ситуацию с изменением волатильности при открытии Франкфурта и Лондона, о которой говорили применительно к фильтрации по ATR и ADR.

Scriptong: Предлагаю, все-таки, вернуться к обсуждению самих правил системы. В статье Павла Смирнова описывается только более простой вид торговли, по показаниям индикатора Quantum. Этот индикатор ставит квадратики на свечах, являющихся локальными экстремумами среди 300 прошлых свечей. В такие моменты и предлагается открывать сделки в противоположном направлении. При появлении нового квадрата - следующая сделка в том же направлении. И так до тех пор, пока не закроется европейская сессия или не будет получен обратный сигнал. В начале американской сессии все ордера безусловно закрываются. Для более сложного типа торговли, который визуализирует шаблон QL.tpl, я описания не нашел.

Genry: Scriptong пишет: Предлагаю, все-таки, вернуться к обсуждению самих правил системы. В статье Павла Смирнова описывается только более простой вид торговли, по показаниям индикатора Quantum...... Для более сложного типа торговли, который визуализирует шаблон QL.tpl, я описания не нашел. Игорь, день добрый! Изначально тема зародилась на ФорексФактори, поэтому авторские вариации на тему торговли Квантумом присутствуют там. Но так как кардинальных изменений от статьи Смирнова я там не увидел, то начал регулярно читать тему на TradeLikeaPro. Собственно развитие ЕА к стратегии происходит сейчас там. База осталась прежней: 1. время входа Франкфурт-Лондон. В сетах от Yoisic для версии 1.4.2. , которой я пользуюсь, глубина поиска экстремумов находится от 50 до 80 для Евро. Торгуя только Евро с 9-11 ч по Альпари за полмесяца удалось удвоить депозит, лоты для ордеров: 1-12: 0.04 13-21: 0.08 22-29: 0.8 30-36: 1.6 37-39: 3.2 >40: 5. 2. ЕА обрабатывает все сигналы базового Квантума и дает хорошую прибыль пока не налетит на затяжной и безоткатный тренд, тогда фиксируются многочисленные сливы у нарушающих ММ, а у работающих малыми объемами - приличные просадки и\или потери. К примеру, график трейдера, который использовал сет от Yosic: Чтобы с этим бороться в советнике есть настройки для пропуска сигналов в различных вариациях и тонкая настройка объема для серий ордеров, но с фильтрацией сигналов в самом Квантуме предложений мало. 3. выход - до Америки по обратному сигналу или по профиту, или по общему СЛ. Так что базовая стратегия уже автоматизирована, но Квантум пока выпал из этих процессов. Думаю надо потрудиться в этом направлении. Первая ласточка на ФФ - квантум встроен в индикатор super-signals-channel. По сути это теже сигналы квантума, но оставляется только последний сигнал на границе канала, но super-signals-channel - рисует. Вот такое положение дел. ЗЫ. ql.tpl я не рассматривал и, если честно, его описание и не искал. PS2. В версии ЕА v.1.6.1 от Staxisa перемен больше - сейчас обсуждается использование АТR для определения участков повышенной волатильности. Выложена версия "Quantum London Trading EA v1.6.1 m09-4[staxis][20150914].ex4" в которой: Корректировка предыдущих модов: 1. Выбор варианта реакции советника на сигнал закрытия: - на текущей свече, - на следующей свече в настройках - "вариант закрытия" 2. Включение TrailingStop при поступлении сигнала на закрытие в настройках - "Использовать TS сетки" - включение TrailingStop - "расстояние от цены сетки до текущей цены в % от ATR" - условие для выставления TS и собственно трал - "расстояние от цены сетки до TS (в % ATR)" - куда выставится TS, если выполнено условие (если условие не выполнено - сетка закроется) 3. Параметры для индикатора ATR задаете сами в настройках - "Таймфрейм для индикатора ATR"; - "период индикатора ATR"

Scriptong: Genry пишет: Чтобы с этим бороться в советнике есть настройки для пропуска сигналов в различных вариациях и тонкая настройка объема для серий ордеров, но с фильтрацией сигналов в самом Квантуме предложений мало. Сходу напрашивается использование какого-нибудь осциллятора. Например, всеми любимый стохастик. После появления экстремума Quantum ждем выхода главной линии осциллятора из соответствующей зоны: после максимума Quantum - из перекупленности, после минимума - из перепроданности. В итоге сигналы Quantum'a не исполняются, пока стохастик не подтвердит разворот. Да, в некоторых случаях вход оказывается несколько запоздалый, но за то уберегает от преждевременных входов и дает возможность уйти от усреднений. Выходить из сделок в случаях ошибочных входов можно по возврату стохастика в зону перекупленности/перепроданности. Из удачных сделок - по входу стохастика в противопложную зону.

Genry: Имеет смысл отфильтровать вот такие ситуации, хотя, благодаря разным объемам первых и последних ордеров, в данном случае получена нормальная прибыль, но была ненужная просадка- 58% и бездарно загружен депозит. Но на 500$ получилось 534$ прибыли за 2 недели, убыток - 167$. Сейчас я прорабатываю использование индикатора MA_Chanels_FIBO в качестве такого фильтра. Надеюсь, что мысли именно в этом направлении дадут качественный скачек для этой стратегии.

Mirostoses: Добрый день Genry. Возможно у вас есть какие-либо практические советы по использованию данного советника? Стоит-ли выключать советник перед новостями? Нужно-ли ставить скрипт, чтобы закрывал сделки при единовременной просадке по паре более 2% ?

Genry: День добрый, Mirostoses! Возможно у вас есть какие-либо практические советы по использованию данного советника? У этого ЕА несколько модификаций, я пока использую только версию 1.4.2, которую выложил Yosic. Кто-то еще использует 1.4.5, но основные обсуждения идут вокруг 1.6.1 от Staxisa и отзывы о последних модификациях - положительные. Наверно у каждой версии свои плюсы и минусы, если честно - я не вникал. Цель открытия данной ветки другая: меня интересует индикатор Quantum, на котором строится работа всех этих ЕА. На коротких трендах он дает вполне разумные сигналы и даже открывая 20-30 ордеров быстро и с прибылью их закрывает. Но длительный тренд без коррекций, в таком режиме, способен убить приличный депозит. Поэтому здесь я хотел пообсуждать фильтры чтобы отсеять ранние убыточные сигналы. Стоит-ли выключать советник перед новостями? Надо выключать. Нужно-ли ставить скрипт, чтобы закрывал сделки при единовременной просадке по паре более 2% ? Из-за особенности Квантума делать ранние входы, просадки могут быть за 50%, закрывая по 2%, по этой стратегии, можно потихоньку слить депозит. Сегодня торгую 1 час и уже 17 ордеров закрыто и 6 еще в рынке. Стратегия дает наилучший результат при входе в рынок от Франкфурта до Лондона плюс пару часов на удержание позиций и практически обязательное закрытие перед Америкой. При таком графике торговли просадки минимальные. PS. Перед запуском ЕА изучаю все ТФ на предмет исключения сильных движений в одну сторону. Если вижу такие ситуации, то в настройках ЕА ставлю открытие сделок только в одном направлении - по вероятному тренду.

Genry: Genry пишет: Имеет смысл отфильтровать вот такие ситуации, хотя, благодаря разным объемам первых и последних ордеров, в данном случае получена нормальная прибыль, но была ненужная просадка- 58% и бездарно загружен депозит. Но на 500$ получилось 534$ прибыли за 2 недели, убыток - 167$. Сейчас я прорабатываю использование индикатора MA_Chanels_FIBO в качестве такого фильтра. Надеюсь, что мысли именно в этом направлении дадут качественный скачек для этой стратегии. Думаю где-то так:

Genry: Scriptong пишет: В итоге сигналы Quantum'a не исполняются, пока стохастик не подтвердит разворот. Да, в некоторых случаях вход оказывается несколько запоздалый, но за то уберегает от преждевременных входов и дает возможность уйти от усреднений. Выходить из сделок в случаях ошибочных входов можно по возврату стохастика в зону перекупленности/перепроданности. Из удачных сделок - по входу стохастика в противопложную зону. Да, это решение напрашивается и оно было реализовано вроде автором Quantuma в индикаторе "Quantum - Stochastic OB_OS" (на скрине - внизу). В версии ЕА 1.6.1 есть выбор между этими индикаторами, кстати, сегодня была выложен исходник этой версии * [url=http://forum.tradelikeapro.ru/index.php?action=dlattach;topic=10633.0;attach=98572] Quantum London Trading EA v1.6.1 m09-4[staxis][20150914].mq4[/url] (67.19 кБ.) Я проверил этот подход. Если торговать фиксированным объемом, то результат более-менее. Но так как существующие версии ЕА торгуют сетками ордеров с нарастающими объемами, то часто возникают ситуации, когда стохастик уже показал пик экстремума, а цена пошла дальше и Квантум дает новые сигналы. Эти сигналы как-раз идут бОльшим лотом и помогают быстро ликвидировать просадку или быстро выйти в прибыль. Стохастик, с сожалению, их иногда режет в самый неподходящий момент. Немного похожая ситуация видна на скрине:

Genry: Scriptong пишет: В итоге сигналы Quantum'a не исполняются, пока стохастик не подтвердит разворот. Да, в некоторых случаях вход оказывается несколько запоздалый, но за то уберегает от преждевременных входов и дает возможность уйти от усреднений. Выходить из сделок в с лучаях ошибочных входов можно по возврату стохастика в зону перекупленности/перепроданности. Из удачных сделок - по входу стохастика в противопложную зону. Genry пишет: проверил этот подход. Если торговать фиксированным объемом, то результат более-менее. Но так как существующие версии ЕА торгуют сетками ордеров с нарастающими объемами, то часто возникают ситуации, когда стохастик уже показал пик экстремума, а цена пошла дальше и Квантум дает новые сигналы. Эти сигналы как-раз идут бОльшим лотом и помогают быстро ликвидировать просадку или быстро выйти в прибыль. Стохастик, с сожалению, их часто режет. Вот скрин работы версии 1.6.1 со стохастиком, на первый взгляд вход и выход - рановат:

Scriptong: Genry пишет: Вот скрин работы версии 1.6.1 со стохастиком, на первый взгляд вход и выход - рановат: Это просто не до конца продуманный подход. К такому результату я пришел всего за два часа работы. Если же потратить чуть больше времени (хотя бы целый день), то указанные проблемы в некоторой мере решаются.

Genry: Scriptong пишет: Если же потратить чуть больше времени (хотя бы целый день), то указанные проблемы в некоторой мере решаются. Это радует

Scriptong: Genry пишет: Это радует Да, есть некоторые идеи. Но за прошедшие выходные не удалось их проверить.

Genry: [Фрагмент обсуждения по теме с другого форума] Vassiliy пишет: При безоткатных движениях сетка закрывается по противоположному сигналу в минус. Возможно-ли вставить проверку на закрытие только по сигналу (не важно какой по счету) при профите сетки >0. DENYA пишет: Кстати да, потенциально это должно увеличить устойчивость системы. Добавить правило: При появлении обратного сигнала идет проверка по балансу и эквити: 1. Если эквити больше баланса - то вся сетка закроется и откроется противоположная (открытие противоположной сетки соответственно по настройкам советника) 2. Если эквити меньше баланса - то сетка не закрывается, противоположная НЕ открывается. Ждем следующего сигнала (сигналы либо с каждой новой свечкой, либо в одном из модов по текущей стоимости). Genry пишет: Вход в рынок важен, но выход - еще важнее. Если пропустить сигнал на выход, то следующий сигнал может дать дядя Коля . На скрине слева - серия сигналов в селл, под пунктирной линией - все закрывающие сигналы в бай и ни один из них не даст закрыть сетку в плюс. По имеющемуся предложению мы их пропустим, а последующее продолжение бычьего тренда при увеличении объема ордеров счет переживет??? По условиям у нас итак уже минус. И следующий сигнал в бай опять не сильно отошел от линии, хотя при увеличенных лотах верхних ордеров скорее всего даст плюс. Вывод: надо фильтровать сигналы на вход. Вот, кстати, участок графика EURUSD который я использую для тестирования таких ситуаций : с 2 по 4 июня 2015. Если сет проходит этот участок, то он отбирается как перспективный. Следующий - 27 июля 2015. При тестах на этих днях становится понятно насколько правильно подобрано увеличение объема ордеров , но лучше в такие дни посидеть на заборе.

Mirostoses: Необходимость резать убытки - это часть работы совы. Как я думаю. Но увеличение лота может свести эти убытки на первом скрине к минимуму. Может есть хорошие значения для периода стохастика? Вот для GPB/JPY http://shot.qip.ru/00ON6O-5Wd8G0W8d/

Scriptong: Mirostoses пишет: Может есть хорошие значения для периода стохастика? На мой взгляд, тут дело не в периоде того или иного индикатора, т. к. это всегда подстраивание под историю, которая вряд ли повторится. Хотя, конечно же, элементами подбора не стоит совсем уж брезговать. Тут главное не заиграться. Проблема, как выше заметил Genry, в том, что нужно еще и вовремя закрыть сделку. А с этим пока еще много вопросов.

Genry: Еще несколько "критических дней" на М1 для проверки данной стратегии с ТрайдЛакиПро ветка "QUANTUM LONDON.INC (индикаторная сетка-усреднитель GBPUSD M1)" author Vassiliy: Получился более менее вменяемый сет за 2015г. Хочу обратить внимание, исключил полностью торговлю после 15-00. При таких настройках просадочных получаются 4 сетки в году: 12.08._ Начало открытия 10.17sell 21.08._ Начало открытия 13.00sell 18.09._ Начало открытия 13.36bay 21.09._ Начало открытия 12.09bay Хочу найти, что дало безоткат в это время. Подскажите где смотреть архив новостей, чтобы исключить такие дни из торговли. Исключив же время, падает прибыльность. Я думаю легче исключить "просадочные дни". Нужно понять какие. При остановке советника в такие дни он без напряга проходит год при депо 2000 и снятии после каждых 100%.

Scriptong: Genry пишет: Еще несколько "критических дней" на М1 для проверки данной стратегии с ТрайдЛакиПро Да, действительно, если исключить безоткатные движения, то стратегия станет Граалем. Но, впрочем, как и всякий другой Мартингейл или сеточник, для которых такие движения как раз и убийственны. Удивляет, что author Vassiliy свято верит в то, что подобные движения где-то анонсируются Но решение проблемы имеется. Причем оно не является секретом или каким-либо гениальным ходом: прибыльные сделки должны превышать в абсолютном значении убыточные сделки. Это позволит чаще ошибаться при входе в сделку, но при этом оставаться в прибыли. Дело лишь, как всегда, в нахождении баланса количества ошибок и величины прибыли для каждой конкретной рыночной ситуации.

Genry: Scriptong пишет: Дело лишь, как всегда, в нахождении баланса количества ошибок и величины прибыли для каждой конкретной рыночной ситуации. Пока по моим наблюдения прилично отрабатывает фибо-канал вокруг машки. Слабое место этой стратегии проявляется при входе в рынок на формировании первой волны. Так как вторая волна не обновляет начальный экстремум (нулевую точку) первой волны, то Квантум не дает обратный сигнал и эти позиции попадают на безоткат 3 волны. Аналогичная ситуация с 4 волны на 5. Думаю посмотреть как Квантум будет взаимодействовать с Вашими фибо-индикаторами из статей о Волновой теории По любому, до включения советника надо делать анализ старших ТФ последовательно исключая ситуации о которых я написал.

Scriptong: Пока для возвращения к теме волновой теории у меня нет каких-либо идей. Они, возможно, появились, если бы на форуме появился мастер-волновик вроде Neval'a. Хотя с волнами, все-таки, формализация намного сложнее, чем с диверами. По системе Quantum у меня вектор такой: уменьшить количество сигналов так, чтобы хватало для входа одной сделкой с разумным, но небольшим, стопом и с достаточно ощутимым профитом. Начальную версию советника я уже разработал и протестировал. Увидел все слабые места, как на ладони. В итоге сформировались идеи по преодолению этих проблем. Теперь дело за следующей реализацией и тестированием.

Genry: Scriptong пишет: По системе Quantum у меня вектор такой: уменьшить количество сигналов так, чтобы хватало для входа одной сделкой с разумным, но небольшим, стопом и с достаточно ощутимым профитом. Игорь, еще раз покажу скрин с каналом в качестве фильтра. Можно входить несколькими ордерам, как в том-же снайпере и закрывать их частями: первый тейк (сейф), второй тейк и далее по обратному сигналу (или стопу ). На скрине 23 сигнала квантума, но ордера открывал только по трем, которые отмечены внизу. Киосотто тоже дает дополнительную информацию: если входить на сигналах сильного киосотто, то даже если тренд не развернулся и была только коррекция - можно перенести СЛ и выйти в безубытке или с мизером. Начальную версию советника я уже разработал и протестировал. Увидел все слабые места, как на ладони. В итоге сформировались идеи по преодолению этих проблем. Теперь дело за следующей реализацией и тестированием. Обнадеживающий процесс На трайдлакипро вышла версия 1.6.1. мод10 ЕА от Staxisa, вполне приличная. Но к сожалению они сейчас не идут путем улучшения качества сигналов квантума, пока идеи связаны с их обработкой.

Scriptong: Genry пишет: Игорь, еще раз покажу скрин с каналом в качестве фильтра К сожалению, не умею восхищаться подобными рисунками . Я просто не понимаю, что на нем изображено. Речь о каком-то канале, но акцент сделан на сигналах индикатора Киосото. Это индикатор вижу (и слышу о нем) впервые. Буду смотреть его код.

Genry: Я разместил индикатор Киосотто на ФорексФактори. Было небольшое обсуждение его совместной работы с индикатором Квантум. Killian19 нашел ошибку в логике его работы: надо изменить условие с >= на > (убрать проверку на равенство). With n starting at 1 and kolichestvo being 0 we take a look at the RSI of bar 1 and 0. 0 lays in the future so this is where the indicator will fail us. Chaning the n >= to > we get the correct values. [pre]i = 1 j = 0; shift=1 datetime date = iTime(Symbol(), 0, shift); int bsht = 1; int kolichestvo = 1 - 1 = 0 for (int n=bsht;n>=kolichestvo;n--) { double ii = iRSI(Symbol(),0,dev_period,PRICE_CLOSE,n); [/pre]

Genry: Еще одним результатом обсуждения на ФФ было предложение от Kilian19: I am happy that the time spend accomplished something. I usually stay away from such kind of conversation as they usually always turn out the same but I got into the swingspot / quantum method over a year ago and pretty much liked the idea. If we take the tweaked indicator and look for divergence of bars next to each other we still get some pretty nice entries. This type of system requires to cut as many false signals as possible and to get as late into the trend as possible and it seems like this accomplishes both tasks pretty well Т.е. часто в конце серии сигналов Квантума, перед разворотом, Киосотто дает сигнал дивергенции. Это можно использовать для своевременного входа в рынок. Я тоже использовал эту особенность Киосотто, но брал диапазон пошире:

Scriptong: Genry пишет: Т.е. часто в конце серии сигналов Квантума, перед разворотом, Киосотто дает сигнал дивергенции. Это можно использовать для своевременного входа в рынок. Третий сигнал на первом рисунке - конвергенция. Не так ли?

Genry: Scriptong пишет: Третий сигнал на первом рисунке - конвергенция. Не так ли? Трудно сказать, это скрин от Kilian19, видно плохо - сигналы квантума закравают бары, наверно

Genry: Версия Киосотто в варианте Kilian19: [pre] //+--------------------------------------------------+ //| | //| Based upon Kiosotto Kilian19@FF | //+--------------------------------------------------+ #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 clrRed #property indicator_color2 clrGreen #property indicator_width1 2 #property indicator_width2 2 extern int dev_period = 150; extern int bars = 1000; double ExtMapBuffer1[]; double ExtMapBuffer2[]; int init() { SetIndexStyle(0,DRAW_HISTOGRAM); SetIndexBuffer(0,ExtMapBuffer1); SetIndexLabel(0,"SELL"); SetIndexStyle(1,DRAW_HISTOGRAM); SetIndexBuffer(1,ExtMapBuffer2); SetIndexLabel(1,"Buy"); return(0); } int start() { int limit = Bars-IndicatorCounted(); if (limit > bars) limit=bars; for(int i = limit; i >= 0; i--) { double TSBUL = 0; double TSBER = 0; double globalHigh =0; double globalLow = 9999999; for(int j = 0; j<dev_period; j++) { int shift=i+j; double rsi = iRSI(Symbol(),0,dev_period,PRICE_CLOSE,shift); double high = iHigh(Symbol(), Period(), shift); double low = iLow(Symbol(), Period(), shift); double close = iClose(Symbol(), Period(), shift); double power = rsi * close; if (high > globalHigh) { globalHigh = high; TSBUL += power; } if (low < globalLow) { globalLow = low; TSBER += power; } } ExtMapBuffer1[ i] = TSBER/TSBUL; ExtMapBuffer2[ i] = TSBUL/TSBER; } return(0); }[/pre]

Sergey: Genry пишет: Версия Киосотто в варианте Kilian19: Ошибка: нужны квадратные скобки от i ExtMapBuffer1|i| = TSBER/TSBUL; ExtMapBuffer2|i| = TSBUL/TSBER;

Genry: Sergey пишет: Ошибка: нужны квадратные скобки от i ExtMapBuffer1|i| = TSBER/TSBUL; ExtMapBuffer2|i| = TSBUL/TSBER; Это при загрузке скобки как команды форматирования сработали

Scriptong: Genry пишет: Версия Киосотто в варианте Kilian19: Только нужно исправить грубую ошибку в коде. Строки: ExtMapBuffer1[ i] = TSBER/TSBUL; ExtMapBuffer2[ i] = TSBUL/TSBER; следует исправить хотя бы так: if (TSBUL != 0.0) ExtMapBuffer1[ i ] = TSBER / TSBUL; if (TSBER != 0.0) ExtMapBuffer2[ i ] = TSBUL / TSBER; Иначе индикатор будет часто вылетать по фатальной ошибке - деление на 0. По крайней мере, у меня эта ошибка быстро проявилась. Ну а сам алгоритма интересен - расчет значений справа налево по графику, а не как обычно - слева направо. Я сначала даже подумал, что индикатор будет перерисовываться. Ан нет - все ОК. Значения остаются на месте.

Genry: Scriptong пишет: Только нужно исправить грубую ошибку в коде. Строки: цитата:ExtMapBuffer1[ i] = TSBER/TSBUL; ExtMapBuffer2[ i] = TSBUL/TSBER; следует исправить хотя бы так: Спасибо, Игорь! У меня ошибки не было, но сунул в тестер и сразу получил. Перекинул это сообщение автору правки индикатора. ЗЫ. Получил ответ. Kilian19: This problem appears when the bars back value goes further than the amount of bars printed on the chart. This value is roughly 300 for the backtester. Just use a smaller number and you should be fine Немного странная позиция, почему надо помнить о количестве бар вместо того чтобы вставить проверку? Ответил, что после добавления проверки деления на ноль, индикатор начинает отображать значение тогда, когда это становится возможным.

Scriptong: Genry пишет: Игорь, есть ли возможность преобразовать Киосотто к линейному виду - как индикатор сентимента? Чтобы оценить его дивергенции через DViewer Есть, конечно. Только получим две разных линии: Вариантов сведения всего этого к одной линии множество: взять разность (аналог МАСД), разнести по разные стороны от нуля, определять максимальную величину и выводить с одной стороны от нуля... Genry пишет: Немного странная позиция, почему надо помнить о количестве бар вместо того чтобы вставить проверку? Я вот тоже не понял. Нет проблем повесить все эти проверки на индикатор.

Genry: Scriptong пишет: Есть, конечно. Только получим две разных линии: Вариантов сведения всего этого к одной линии множество: взять разность (аналог МАСД), разнести по разные стороны от нуля, определять максимальную величину и выводить с одной стороны от нуля... Даааа... немного неожиданно Это надо осмыслить Спасибо!

Genry: Scriptong пишет: Я вот тоже не понял. Нет проблем повесить все эти проверки на индикатор. И я так думаю! Однако индикатор преобразился. Спасибо еще раз

Genry: Scriptong пишет: К сожалению, не умею восхищаться подобными рисунками . Я просто не понимаю, что на нем изображено. Речь о каком-то канале, Про канал было на предыдущей странице (стр.2) Идея была в том, чтобы брать сигналы Квантума за пределами уровня 50% Фибо, при наличии сильного уровня Киосотто. Это индикатор MA_Chanels_FIBO.mq4 [pre] //+---------------------------------------------------------+ //| MA Chanels.mq4 | //| ░njel░ | //| iamnotlinked | //+---------------------------------------------------------+ #property copyright "░njel░" #property link "iamnotlinked" #property indicator_chart_window #property indicator_buffers 8 #property indicator_color1 Red #property indicator_color2 Orange #property indicator_color3 Yellow #property indicator_color4 White #property indicator_color5 White #property indicator_color6 Yellow #property indicator_color7 Orange #property indicator_color8 Red #property indicator_style1 2 #property indicator_style2 2 #property indicator_style3 2 #property indicator_style4 2 #property indicator_style5 2 #property indicator_style6 2 #property indicator_style7 2 #property indicator_style8 2 //---- input parameters extern int BarsCount = 500; extern int MAPeriod = 100; extern int MAMethod = MODE_SMA;//0-Simple;1-Exponential;2-Smoothed;3-Linear Weighted; extern int MAPrice = PRICE_CLOSE; // 0 - Close; 1 - Open;2 - High;3 - Low;4 - Median Price (HL/2); // 5 - Typical Price (HLC/3); 6 - Weighted Close (HLCC/4) extern int fontsize = 10; double max = 0; double min = 0; double Inc0 = 0.0000; double Inc1 = 0.0000; double Inc2 = 0.0000; double Inc3 = 0.0000; //---- buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; double ExtMapBuffer3[]; double ExtMapBuffer4[]; double ExtMapBuffer5[]; double ExtMapBuffer6[]; double ExtMapBuffer7[]; double ExtMapBuffer8[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); SetIndexLabel(0,"82.87%"); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,ExtMapBuffer2); SetIndexLabel(1,"78,6%"); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2,ExtMapBuffer3); SetIndexLabel(2,"23.6%"); SetIndexStyle(3,DRAW_LINE); SetIndexBuffer(3,ExtMapBuffer4); SetIndexLabel(3,"14.4%"); SetIndexStyle(4,DRAW_LINE); SetIndexBuffer(4,ExtMapBuffer5); SetIndexLabel(4,"14.4%"); SetIndexStyle(5,DRAW_LINE); SetIndexBuffer(5,ExtMapBuffer6); SetIndexLabel(5,"23.6%"); SetIndexStyle(6,DRAW_LINE); SetIndexBuffer(6,ExtMapBuffer7); SetIndexLabel(6,"78.6%"); SetIndexStyle(7,DRAW_LINE); SetIndexBuffer(7,ExtMapBuffer8); SetIndexLabel(7,"82.87%"); ObjectCreate("lf1", OBJ_TEXT, 0, 0, 0); ObjectSetText("lf1", "82.87%",fontsize,"Arial",Red); ObjectCreate("lf2", OBJ_TEXT, 0, 0, 0); ObjectSetText("lf2", "78.6%",fontsize,"Arial",Red); ObjectCreate("lf3", OBJ_TEXT, 0, 0, 0); ObjectSetText("lf3", "23.6%",fontsize,"Arial",Red); ObjectCreate("lf4", OBJ_TEXT, 0, 0, 0); ObjectSetText("lf4", "14.4%",fontsize,"Arial",Red); ObjectCreate("lf5", OBJ_TEXT, 0, 0, 0); ObjectSetText("lf5", "14.4%",fontsize,"Arial",Red); ObjectCreate("lf6", OBJ_TEXT, 0, 0, 0); ObjectSetText("lf6", "23.6%",fontsize,"Arial",Red); ObjectCreate("lf7", OBJ_TEXT, 0, 0, 0); ObjectSetText("lf7", "78.6%",fontsize,"Arial",Red); ObjectCreate("lf8", OBJ_TEXT, 0, 0, 0); ObjectSetText("lf8", "82.87%",fontsize,"Arial",Red); return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { max =0; min =0; ObjectDelete("lf1"); ObjectDelete("lf2"); ObjectDelete("lf3"); ObjectDelete("lf4"); ObjectDelete("lf5"); ObjectDelete("lf6"); ObjectDelete("lf7"); ObjectDelete("lf8"); return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { max =0; min =0; if (iBars(NULL,0) < BarsCount) BarsCount = iBars(NULL,0) -MAPeriod-1 ; for (int i =BarsCount; i>=0; i--) { double m = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i); double top = High[ i ] - m; if (top > max) max = top; double bottom = Low[ i ] - m; if (bottom < min) min = bottom; } if (MathAbs(max) > MathAbs(min)) Inc3 = MathAbs(max); // с√ыю Єръ: Inc3 = max; else Inc3 = MathAbs(min); // с√ыю Єръ: Inc3 = min; Inc2 = Inc3*0.8287; Inc1 = Inc3*0.786; Inc0 = Inc3*0.144; Inc3 = Inc3*0.236; for (i =BarsCount; i>=0; i--) { m = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i); ExtMapBuffer1[ i] = m + Inc2; ExtMapBuffer2[ i] = m + Inc1; ExtMapBuffer3[ i] = m + Inc3; ExtMapBuffer4[ i] = m + Inc0; ExtMapBuffer5[ i] = m - Inc0; ExtMapBuffer6[ i] = m - Inc3; ExtMapBuffer7[ i] = m - Inc1; ExtMapBuffer8[ i] = m - Inc2; } ObjectMove("lf1", 0, Time[ 0],ExtMapBuffer1[ 0]); ObjectMove("lf2", 0, Time[ 0],ExtMapBuffer2[ 0]); ObjectMove("lf3", 0, Time[ 0],ExtMapBuffer3[ 0]); ObjectMove("lf4", 0, Time[ 0],ExtMapBuffer4[ 0]); ObjectMove("lf5", 0, Time[ 0],ExtMapBuffer5[ 0]); ObjectMove("lf6", 0, Time[ 0],ExtMapBuffer6[ 0]); ObjectMove("lf7", 0, Time[ 0],ExtMapBuffer7[ 0]); ObjectMove("lf8", 0, Time[ 0],ExtMapBuffer8[ 0]); return(0); } //+------------------------------------------------------------------+[/pre] но акцент сделан на сигналах индикатора Киосото. Это индикатор вижу (и слышу о нем) впервые. Буду смотреть его код. Примеры с ним я тоже показывал, а теперь код привел. Игорь, есть ли возможность преобразовать Киосотто к линейному виду - как индикатор сентимента? Чтобы оценить его дивергенции через DViewer

Genry: Genry пишет: На трайдлакипро вышла версия 1.6.1. мод10 ЕА от Staxisa, вполне приличная. Но к сожалению они сейчас не идут путем улучшения качества сигналов квантума, пока идеи связаны с их обработкой. Это стейт и оценка качества версии 1.6.1 мод 10 c 1 июля по сегодня (eurusd, m1). Торговля только с 9 до 14 часов GMT+2 Исходный советник написан, мягко говоря, не просто и менять его тяжело. Думаю Staxis c ним помучился, но результат на лицо. А это оценка качества по коэффициенту Сортино: Это мониторинги торгующих: Реальный счет - выход из просадки: https://www.myfxbook.com/members/Alex_S/q-yosya/1419706 Центовый счет: https://www.myfxbook.com/members/Alex_S/quantum/1386685 Вот мониторинг демо счета на 3000, брокер альпари, пятизнак установил сова 1.5.1 с сетами предложенными автором. выдержал просадку евро в 300 старых п: https://www.myfxbook.com/members/tvist/ql-на-alpari/1405413 Вроде есть причина копья ломать

Эдуард: Здравствуйте, Генри. Вы, не рассматриваете вариант входа одним отложенным ордером?

Genry: Эдуард пишет: Здравствуйте, Генри. Вы, не рассматриваете вариант входа одним отложенным ордером? День добрый, Эдуард! Да, фильтровать вход, подтягивая стоповый ордер за ценой, разумная мысль и наверняка уменьшит количество ранних входов даже если некоторые из них сработают преждевременно. И у меня была мысль предложить народу такое решение, да все времени нет - перебираю варианты фильтров для сигналов самого квантума. Ваше предложение - еще один стимул обосновать такой подход.

Эдуард: Может по этой стратегии вообще не стоит торговать против тренда? Например при появлении сигнала в Селл, выше ставим Бай стоп, ниже определяем ближайший, или другой уровень и ставим Селл стоп. на случай. если цена пойдёт против нас, или просто ставим на этом уровне СЛ ордера Бай. Когда ордер в плюсе, ниже выставляем Селл стоп и подтягиваем за ценой - получаем положительный лок, или можно на этом уровне просто закрыть Бай. Мне кажется, для полностью автоматической торговли, это гораздо безопасней, чем в оригинальной версии.

Genry: Эдуард пишет: Может по этой стратегии вообще не стоит торговать против тренда? Пока над этим не думал и разбираюсь с прямым сигналом. Но в ЕА Staxisa есть настройки для обратного входа по сигналам Квантума. Я этот режим не пробовал.

Genry: Scriptong пишет: К сожалению, не умею восхищаться подобными рисунками . Я просто не понимаю, что на нем изображено. Речь о каком-то канале, но акцент сделан на сигналах индикатора Киосото. Это индикатор вижу (и слышу о нем) впервые. Буду смотреть его код. При ручной торговле я учитываю только те сигналы Квантума, которые отошли от центральной МА на некоторое расстояние заданное в Фибо. Для наглядности сделал еще скрины на которых сигналы Квантума обрабатываются в зависимости от уровня фибо, который они пересекли. Уровни фибо построены индикатором MA_Chanels_FIBO.mq4 (код выше). Есть еще канал индикатора MA_Triangul_center_abands. Если брать сигналы Квантума, которые отошли от центральной МА на определенное расстояние в Фибо, то их количество ранних сигналов существенно сокращается.

Genry: Scriptong пишет: Только получим две разных линии Вариантов сведения всего этого к одной линии множество: взять разность (аналог МАСД), разнести по разные стороны от нуля, определять максимальную величину и выводить с одной стороны от нуля... Игорь, день добрый! Первоначальный (авторский) Киосотто был раздельным: один индикатор для бай, другой - для селл. //+------------------------------------------------------------------+ //| kiosotto SELL.mq4 | //| Copyright 2014, Masakazu Corp. | //| http://www.masakazu.com | //+------------------------------------------------------------------+ Поэтому я оба сунул в DViewer, получилось так: Игорь, хочу обсудить одно предложение: Может добавить в параметры индикатору DivergenceViewer_AD некий идентификатор, который можно менять руками и который будет прибавляться к идентификатору окна для создания уникальности? В ситуации, когда есть два одинаковых окна с DivergenceViewer_AD, которые различаются только номером буфера пользовательского индикатора с которого снимаются данные, дивергенции иногда попадают не в свои окна. Конечно ситуация совсем не типичная, но может дать такую возможность? Или может учитывать номер буфера при поиске своего окна?

Scriptong: Genry пишет: Может добавить в параметры индикатору DivergenceViewer_AD некий идентификатор, который можно менять руками и который будет прибавляться к идентификатору окна для создания уникальности? В ситуации, когда есть два одинаковых окна с DivergenceViewer_AD, которые различаются только номером буфера пользовательского индикатора с которого снимаются данные, дивергенции иногда попадают не в свои окна. Не должно быть такого, т. к. подобное предусмотрено в коде. На приведенном Вами рисунке - это последние числа в нижних подокнах: 245242093 и 245242109. Можете привести примеры, когда регистрируете неправильное расположение объектов? И, конечно же, не забудьте указать, какие действия предпринимали перед тем, как заметили ошибку. Обновлено Разобрался. Баг в Divergence_Viewer проявляется, когда до этого индикатора были присоединены другие индикаторы (отображались выше), а потом эти индикаторы были удалены. В этом случае нумерация подокон изменялась, а индикатор продолжал оперировать старым номером подокна. Выходит, нужно постоянно обновлять номер своего подокна, т. к. оно может измениться между инициализациями индикатора. Версия 1.17

Genry: Scriptong пишет: Не должно быть такого, т. к. подобное предусмотрено в коде. На приведенном Вами рисунке - это последние числа в нижних подокнах: 245242093 и 245242109. Можете привести примеры, когда регистрируете неправильное расположение объектов? И, конечно же, не забудьте указать, какие действия предпринимали перед тем, как заметили ошибку. Обновлено Разобрался. Баг в Divergence_Viewer проявляется, когда до этого индикатора были присоединены другие индикаторы (отображались выше), а потом эти индикаторы были удалены. В этом случае нумерация подокон изменялась, а индикатор продолжал оперировать старым номером подокна. Выходит, нужно постоянно обновлять номер своего подокна, т. к. оно может измениться между инициализациями индикатора. Обновление индикатора DivergenceViewer. Версия 1.17. Спасибо, Игорь! Я еще не успел посмотреть ответы на Ваши вопросы, а уже версия

Genry: Картинка с форума с примером безотката на Квантуме. И еще одна картинка с фильтром на Фибо, который я предлагаю использовать для защиты от таких ситуаций. author=Mirostoses Просто потрясающе Подскажите, как такого можно избежать? Genry пишет: Вот про эту ситуацию я и пишу уже который раз. Благодаря тому, что у вас на графике стоит машка с фибо отлично видно какие сигналы будут использованы, а какие пропущены. Я использую значения фибо за 61.8, но даже если брать фильтр равным 61.8% получится вот такая картина, где в кружочках фильтрованные сигналы по которым можно входить. При этом первый, самый ранний сигнал имеет возможность закрыться в нормальном плюсе. У Staxisa Квантум на открытие и закрытие - разные. И так-же разные фильтры Фибо для этих Квантумов: на открытие - например 62%, а на закрытие 23 или 38%. Может имеет смысл сделать версию с фибо-машкой для фильтрации?

Эдуард: Можно открывать ордер, просто при пересечении машек - ордеров будет, раз в 10 меньше.

Genry: Эдуард пишет: Можно открывать ордер, просто при пересечении машек - ордеров будет, раз в 10 меньше. Сейчас забабахаю Квантум в фибо-машку, получится гибридный индюк. ЗЫ: Нда, программист из меня сейчас еще тот, ну так дело не в этом. Главное - проверить идею! Гимор в отображении всех Фибо-каналов в новом индюке. В фибо-машке использованы все 8 буферов, а мне надо еще 2 чтобы отобразить сигналы Квантума. Поэтому 2 буфера у машки я забрал. Чтобы было наглядно разделил каналы между фибо-машкой и квантум-машкой. Поэтому ставьте оба индюка и будут на экране все фибо-каналы. Проблема эта решается, если линии рисовать, а не отображать через буфер. Результат здесь (жми) Итак, кошмар стратегии: мелкие сигналы - стандартный Квантум отметил почти безоткатный тренд Q=78. Крупные - отфильтрованные Машкой с фильтром Фибо= 78.6% На следующем: фильтрует Машка с фильтром Фибо= 61.8% Внизу на скрине все 3 индюка и все каналы.

Genry: Если Scriptongа заинтересует идея думаю появится настоящий индикатор А этот прототип реализует саму идею Для входа в рынок и выхода из него можно брать разные фибо.

Scriptong: Genry пишет: Если Scriptongа заинтересует идея думаю появится настоящий индикатор Идея заключается в том, что нужно брать сигналы квантума ниже указанного уровня Фибо?

Genry: Scriptong пишет: Идея заключается в том, что нужно брать сигналы квантума ниже указанного уровня Фибо? Да. Точка отсчета - МА, от нее берутся фибо. Если Квантум нашел экстремум за пределами фибо-уровня - сигнал берется в работу. QuMA vs Stochastic

Scriptong: Genry пишет: Да. Точка отсчета - МА, от нее берутся фибо. Если Квантум нашел экстремум за пределами фибо-уровня - сигнал берется в работу. Хорошо, проверю и эту идею. Пока вот надыбал интересные условия входа-выхода по стохастику. Интересны они тем, что не используется какой-либо фиксированный уровень стопа и профита. Стоп - рассчитываемый, профит - не устанавливается. Для определения точки выхода в прибыли используются показания стохастика. Более подробно опишу в публикации, когда будет готова. Пока же есть очень обнадеживающие результаты оптимизации. Обнадеживающие они в том смысле, что распределение результатов оптимизации смещено в область прибыльных исходов. Причем максимумы прибыльности в абсолютном значении больше максимумов убыточности. Тесты за последние 6 лет, М15, постоянный лот. К примеру, вот лучший результат по евро. Далее - франк:

Genry: Scriptong пишет: Хорошо, проверю и эту идею. Пока вот надыбал интересные условия входа-выхода по стохастику. Интересны они тем, что не используется какой-либо фиксированный уровень стопа и профита. Стоп - рассчитываемый, профит - не устанавливается. Для определения точки выхода в прибыли используются показания стохастика. Более подробно опишу в публикации, когда будет готова. Пока же есть очень обнадеживающие результаты оптимизации. Обнадеживающие они в том смысле, что распределение результатов оптимизации смещено в область прибыльных исходов. Причем максимумы прибыльности в абсолютном значении больше максимумов убыточности. Тесты за последние 6 лет, М15, постоянный лот. К примеру, вот лучший результат по евро. Игорь, с сентября, когда я что-то озвучивал на форуме, то брал уже проверенный материал который торговал в реале. Фибо-Машка дала плюс, я торговал по ней всю прошедшую неделю с 9-13 часов и вариант с круглосуточной торговлей. Даже на безоткатах 9 декабря все трейды закрылись в плюс. Торговля с 9 до 13 (GMT+2) давала результаты вполне приличные, но с QuMaшкой и круглосуточная торговля вышла в плюс. Ваши результаты меня тоже радуют, так как включает 6-летний период с отличным качеством! Я могу показать эти скрины на сайте Trade Like A Pro ?

Scriptong: Genry пишет: Я могу показать эти скрины на сайте Trade Like A Pro ? Я их выложил в качестве "подразнить перед статьей". Такой себе анонс Сами по себе эти скрины ничего никому не скажут и вызовут лишь раздражение. Ведь я пока не озвучил основные нюансы системы, которая от Quantum уже почти ничего и не содержит. Поэтому смысл в распространении этих результатов будет уже после выхода статьи, когда любой желающий сможет ознакомится с правилами работы системы и лично проверить полученные результаты.

Genry: Scriptong пишет: Я их выложил в качестве "подразнить перед статьей". Такой себе анонс Ок, тогда дождемся статьи!

Genry: Фрагмент моей переписке Trade Like A Pro : Цитата: orlds от Декабрь 13, 2015, 05:53:07 pm Здравствуйте! а почему Вы не используете фильтры которые есть в советнике? в советнике есть 3 хороших фильтра: по свечам, по стохастику, по МА? лично я использую стохастик и расстояние между ордерами... Цитата: Genry_05 от Декабрь 11, 2015, 05:28:51 pm Основная причина, почему стохастика недостаточно - вот эта: Цитата: orlds от Декабрь 13, 2015, 05:53:07 pm У вас просто неправильные настройки :) Ну, настройки сообразны торговому методу. ;) Но ваши тоже хорошие, сам такими пользуюсь. С увеличением периода стохастик начинает все точнее повторять график цены - полезное свойство. Но даже для этих настроек есть неприятные дни, например 9 декабря 2015 - длинный безоткат с отсутствием обратного сигнала. Но когда сигнал появляется (и не один) - радости тоже мало, так как откат совсем небольшой и если по нему закрыться (скрин 1-2) А потом опять: после убыточного сигнала на закрытие селл, получаем такой-же бай (скрин 3-4). Теперь посмотрим этот-же фрагмент с КуМашкой и моими неправильными :(( настройками и увидим разницу :) (5-6)

Эдуард: Здравствуйте, Генри. Мне кажется, Стохастик должен быть с большим периодом, а открывать ордер надо, когда он отлипает от верхней, или нижней зоны.

Genry: Эдуард пишет: Здравствуйте, Генри. Мне кажется, Стохастик должен быть с большим периодом, а открывать ордер надо, когда он отлипает от верхней, или нижней зоны. День добрый, Эдуард! Для борьбы с суевериями есть тестер Когда мне кажется что параметры можно улучшить я запускаю тестер и знакомлю вас с результатом. Попробуйте и Вы свою идею, но на момент написания этого поста с последней версией ЕА (мод.13 Staxis) были проблемы - у меня она не открывает сделки с QuMA. Я написал автору, пока он молчит. Когда Staxis ее поправит - можете сравнить работу чистого Quantum, Quantum-Stochastic, QuMA_Fibo и я буду рад увидеть сет с Вашим вариантом настроек. Ну а у меня пока торгует так: ЗЫ: теперь 1.6.1 работает с QuMA

Genry: Покажу как используется Киосотто в качестве фильтра сигналов Квантума или КуМашки. На скрине цена вылетела за пределы Фибо- коридора, но ордера открывал когда Киосотто пробил уровень фильтрации силы сигнала (=21 в данном случае), а DZ_RSIofMACD показал разворот и вышел из зоны перекупленности. Закрыл после выхода DZ_RSIofMACD из зоны перепроданности. Еще одна подсказка - это движение цены в границах канала MA_Triangul_center_abands_alrt2 (сплошная красная и зеленая линия на скрине).

Scriptong: Genry пишет: На скрине цена вылетела за пределы Фибо- коридора, но ордера открывал когда Киосотто пробил уровень фильтрации силы сигнала (=21 в данном случае), а DZ_RSIofMACD показал разворот и вышел из зоны перекупленности. Стоит ли открывать доливочные/усредняющие ордера на примерно одном и том же ценовом уровне? Какой в этом смысл?

Genry: Scriptong пишет: Стоит ли открывать доливочные/усредняющие ордера на примерно одном и том же ценовом уровне? Какой в этом смысл? Смысла в этом не было, не был настроен параметр xdist - в этом причина что ордера оказались так близко. В настройках есть 4 параметра: с какого сигнала начинать, сколько сигналов пропускать, какая минимальная дистанция между входами. input int wait=0;//Wait X boxes before opening trades input int xcandles=0;//Only trade every X candles input int xdist=0;//Minimum distance between entries Only open higher (sells) or lower (buys) than previous order - выставление ордера только выше (sell) или ниже (buy) предыдущего; При смене версий настройка этого параметра "потерялась", заметил уже де-факто

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

Genry: День добрый, Игорь, Коллеги! Игорь, есть вопрос: на Ваш взгляд, насколько реально получить качественные сигналы Квантума со всех ТФ? Думаю некоторые вопросы отпадут если знать каковы сигналы Квантума на ТФ-мах старше текущего c с учетом сетки МА+Фибо. Я пробовал торговать по такому алгоритму: открывать позиции на текущем ТФ только в направлении сигнала Квантума старшего ТФ. Глобально это себя оправдывало, длительность просадок сокращается и даже если ситуация на М1 пошла против открытой сетки ордеров, то совпадение сетки с сигналами на Н4-Н1-м15-м5 в итоге выносит к плюсу. Другое дело, что правильный вход на м1 с 9 до 11 успевает отработать и сетка закрывается, даже если она шла против старших ТФ и при разумном ТП или наличии встречного сигнала можно отработать несколько входов. А тут на зарубежном форуме прочел похожее предложение и подумал что интересно обсудить этот вопрос. Hello out there, i'm new here and i read most of this Tread. So far as I understand (English is not my native language), is the issue to Filter out, then the reversal Signal of Quantum is valid. So here is my Idea. If i have a Signal in M1, i do check if there is a Signal in M5 too and so on. That means, if there is a Signal i go a Timeframe higher, so long, till there is a Timeframe without a Signal. The highest Timeframe with Signal is my Reversal Entry at the End of the Candle time. The good thing of this Strategy is that you don?t have so manny Orders opened. The bad thing is, sometimes is the entry a little bit late if the Candle spikes. Maybe it would be a Dashboard helpfull for this Strategie, wich shows all Timeframes and Signals at once. Cheers Maximumguitar

Scriptong: Genry пишет: Игорь, есть вопрос: на Ваш взгляд, насколько реально получить качественные сигналы Квантума со всех ТФ? Не вижу никаких проблем. Дело лишь в понимании, как правильно сопоставить все эти данные.

Genry: Игорь, день добрый! Я объединил с Квантумом несколько индикаторов для фильтрации его сигналов: Файлы: https://dropmefiles.com/qbgF5 1. Квантум + MA_Chanels_FIBO = QuMA_ChanelsFIBO.mq4 Данный индикатор строит 8 фибо-каналов вокруг МА. Если сигнал Квантума формируется за определенным фибо-каналом (задается параметром FibSelect), такой сигнал проходит, а более слабые - отсекаются. // 1= 23.6 2=38.4 3=50 4=61.8 5=78.6 6=Gann 82.87 7= 88.2 8=100 extern int FibSelect = 2; 2. Есть вариант с алертом "QuMA_ChanelsFIBO+alert.mq4" , но в тестере алерт срабатывает одни раз на сигнал, а в реале звонит чаще . Тестер: 19:47:27.307 QuMA_ChanelsFIBO+alert inputs: eintDepth3=78; FibSelect=2; BarsCount=500; MAPeriod=100; MAMethod=0; MAPrice=0; fontsize=10; Alerts=1; alertsMessage=1; alertsSound=1; alertsEmail=0; 19:48:04 2015.12.10 21:03 QuMA_ChanelsFIBO+alert EURUSD,M1: Alert: EURUSD at 21:03:00 QuMALevel 1.09364 Buy 19:48:11 2015.12.10 22:21 QuMA_ChanelsFIBO+alert EURUSD,M1: Alert: EURUSD at 22:21:00 QuMALevel 1.09419 Sell 19:48:23 2015.12.11 00:25 QuMA_ChanelsFIBO+alert EURUSD,M1: Alert: EURUSD at 00:25:00 QuMALevel 1.09448 Sell 19:48:28 2015.12.11 01:24 QuMA_ChanelsFIBO+alert EURUSD,M1: Alert: EURUSD at 01:24:00 QuMALevel 1.09455 Sell 19:48:51 2015.12.11 05:21 QuMA_ChanelsFIBO+alert EURUSD,M1: Alert: EURUSD at 05:21:00 QuMALevel 1.09277 Buy 3. Еще один вариант: добавил к вышеназванным еще один фильтр - по силе сигнала Киосотто: QuMAKio_ChanelsFIBO.mq4 //---- input parameters Quantum extern int eintDepth3 = 78; // 1= 23.6 2=38.4 3=50 4=61.8 5=78.6 6=Gann 82.87 7= 88.2 8=100 extern int FibSelect = 2; //---- input parameters MA_Chanels_FIBO extern int BarsCount = 500; extern int MAPeriod = 100; extern int MAMethod = MODE_SMA; extern int MAPrice = PRICE_CLOSE; extern int fontsize = 10; //---- input parameters Kiosotto input int i_Kiosotto_period = 87; // RSI period / Период RSI input double Kiosotto_level = 18; // уровень сигнала Киосотто до которого сигнал Quantum+МА_Fibo игнорируется С одной стороны эти индикаторы оказались достаточно эффективными в торговле. Но иногда у них проявляются сбои в работе: исчезают ранее определенные сигналы или на истории меняется ширина канала. Игорь, взгляните, пожалуйста, если будет время: есть ли грубые или неочевидные ошибки, которые могут создавать проблемы при торговле. Саму идею, которую я вложил при создании этих индикаторов, я проверял более двух месяцев: полученные сигналы дают стабильную прибыль на eвро - на остальных инструментах сам не проверял, но есть положительные отзывы торгующих на других валютах трейдеров в ветке M1 QUANTUM LONDON.INC (индикаторная сетка-усреднитель GBPUSD M1) Есть советник который использует QuMA_ChanelsFIBO.mq4 в торговле: "Quantum London Trading EA v1.6.1 m13-4[staxis].mq4"

Genry: Игорь, я немного доработал функцию doAlert, чтобы она давала сигнал при появлении противоположного сигнала и игнорировала повторные сигналы в одном направлении. Но это может не устроить желающих получать один алерт при каждом новом сигнале. [pre]void doAlert(string doWhat, double lFibLvl) { string message; //---- Статические переменные, в которых хранятся //---- время последнего бара и направление последнего сигнала static int PrevTime = 0; static string PrevSignal = " "; //---- Если баром для анализа выбран не 0-й, нам нет смысла проверять сигнал //---- несколько раз. Если не начался новый бар, выходим. if (SIGNAL_BAR > 0 && Time[0] <= PrevTime ) return; //---- Отмечаем, что этот бар проверен PrevTime = Time[0]; //---- Если предыдущий сигнал был СЕЛЛ if ((PrevSignal == "Sell") && (doWhat == "Sell")) return; //---- Если предыдущий сигнал был СЕЛЛ if ((PrevSignal == "Buy") && (doWhat == "Buy")) return; PrevSignal = doWhat; message = StringConcatenate(Symbol()," at ",TimeToStr(TimeLocal(),TIME_SECONDS), " QuMALevel=", DoubleToStr(lFibLvl, Digits())+ " ", doWhat); if (alertsMessage) Alert(message); if (alertsEmail) SendMail("QuMa: ", message); if (alertsSound) PlaySound(SoundFile); return; }[/pre]

Scriptong: Genry пишет: Данный индикатор строит 8 фибо-каналов вокруг МА. Если сигнал Квантума формируется за определенным фибо-каналом (задается параметром FibSelect), такой сигнал проходит, а более слабые - отсекаются. Уже по этому индикатору видно, что в нем заложена логика подглядывания в будущее. То есть индикатор является перерисовывающимся. Поэтому не удивительно, что какие-то, ранее зарегистрированные показания, могут измениться в будущем. По всей видимости, такая логика заложена в самом индикаторе ChannelsFIBO (не смотрел его, поэтому определенно сказать не могу). Перерисовка возникает потому, что на каждом новом тике производится поиск наибольшего отхода цены от МА в ту или иную сторону на интервале в последние 500 баров. А уже по этим данным отображаются каналы Фибо на тех же 500-ах барах назад. Расхождение выявляется достаточно просто. Запускаем индикатор в тестере. Смотрим первый пример: Синей вертикальной линией отметил бар, на котором следует запомнить положения верхних линий канала. Для наглядности добавил соответствующие горизонтальные линии, которые показывают ценовые данные канала на указанном баре. Теперь продвигаемся по истории вправо и ждем, когда на новейшей истории произойдет бОльший уход цены от МА: Как видно, уровни канала переместились. Вследствие этого пропало два из трех сигналов продажи на истории. Вывод: для построения сетки Фибо относительно МА нужно найти более справедливые правила построения. Существующие правила - от наперсточников.

Genry: Scriptong пишет: Уже по этому индикатору видно, что в нем заложена логика подглядывания в будущее. То есть индикатор является перерисовывающимся. Поэтому не удивительно, что какие-то, ранее зарегистрированные показания, могут измениться в будущем. По всей видимости, такая логика заложена в самом индикаторе ChannelsFIBO (не смотрел его, поэтому определенно сказать не могу). Спасибо, Игорь! Это именно тот тип перерисовки, которую я наблюдал иногда. Благодаря тому что сетки на М1 ограничены по протяженности это мало влияет на торговлю - они успевают закрыться до перерисовки. Но сам факт не радует. Даа.. надо будет думать и искать новое решение. С Рождеством!

Scriptong: Genry пишет: Это именно тот тип перерисовки, которую я наблюдал иногда. Благодаря тому что сетки на М1 ограничены по протяженности это мало влияет на торговлю - они успевают закрыться до перерисовки. Но сам факт не радует. Подумал над этой проблемой. По идее, это можно исправить. Достаточно лишь после определения величины максимального отхода цены не изменять значения предыдущих баров. Но для этого придется изменить саму архитектуру индикатора. То есть, по-хорошему, его нужно переписать.

Genry: Genry пишет: Это именно тот тип перерисовки, которую я наблюдал иногда. Благодаря тому что сетки на М1 ограничены по протяженности это мало влияет на торговлю - они успевают закрыться до перерисовки. Но сам факт не радует. Scriptong пишет: Подумал над этой проблемой. По идее, это можно исправить. Достаточно лишь после определения величины максимального отхода цены не изменять значения предыдущих баров. Но для этого придется изменить саму архитектуру индикатора. То есть, по-хорошему, его нужно переписать. ЗдОрово Спасибо, Игорь, что уделили внимание этой проблеме. Я уже начал изучать иных кандидатов на эту роль, но другого, более изящного подхода, пока не увидел. В тоже время количество пользователей индикатора растет, даже с перерисовкой народ фиксирует прибыль. Игорь, а вот в таком варианте Ваше замечание учтено? Только подход получился тяжелый - в тестере еле движется. Может есть иное решение ? [pre] //+------------------------------------------------------------------+ //| MA Chanels.mq4 | //| °njel° | //| iamnotlinked | //+------------------------------------------------------------------+ /* -m Переделано для корректного отображения на истории */ #property copyright "°njel°" #property link "iamnotlinked" #property indicator_chart_window #property indicator_buffers 8 #property indicator_color1 Red #property indicator_color2 Red #property indicator_color3 Red #property indicator_color4 Red #property indicator_color5 Blue #property indicator_color6 Blue #property indicator_color7 Blue #property indicator_color8 Blue #property indicator_width1 1 #property indicator_width2 3 #property indicator_width3 1 #property indicator_width4 1 #property indicator_width5 1 #property indicator_width6 1 #property indicator_width7 3 #property indicator_width8 1 #property indicator_style3 STYLE_DOT #property indicator_style4 STYLE_DOT #property indicator_style5 STYLE_DOT #property indicator_style6 STYLE_DOT //---- input parameters extern int BarsCount = 500; extern int MAPeriod = 100; extern int MAMethod = MODE_SMA; extern int MAPrice = PRICE_CLOSE; extern int IndPeriod = 500; extern int fontsize=10; double max =0; double min =0; double Inc0 = 0.0000; double Inc1 = 0.0000; double Inc2 = 0.0000; double Inc3 = 0.0000; //---- buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; double ExtMapBuffer3[]; double ExtMapBuffer4[]; double ExtMapBuffer5[]; double ExtMapBuffer6[]; double ExtMapBuffer7[]; double ExtMapBuffer8[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); SetIndexLabel(0,"61.8%"); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,ExtMapBuffer2); SetIndexLabel(1,"50%"); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2,ExtMapBuffer3); SetIndexLabel(2,"38.2%"); SetIndexStyle(3,DRAW_LINE); SetIndexBuffer(3,ExtMapBuffer4); SetIndexLabel(3,"23.5%"); SetIndexStyle(4,DRAW_LINE); SetIndexBuffer(4,ExtMapBuffer5); SetIndexLabel(4,"23.5%"); SetIndexStyle(5,DRAW_LINE); SetIndexBuffer(5,ExtMapBuffer6); SetIndexLabel(5,"38.2%"); SetIndexStyle(6,DRAW_LINE); SetIndexBuffer(6,ExtMapBuffer7); SetIndexLabel(6,"50%"); SetIndexStyle(7,DRAW_LINE); SetIndexBuffer(7,ExtMapBuffer8); SetIndexLabel(7,"61.8%"); ObjectCreate("l1", OBJ_TEXT, 0, 0, 0); ObjectSetText("l1", "61.8%",fontsize,"Arial",Red); ObjectCreate("l2", OBJ_TEXT, 0, 0, 0); ObjectSetText("l2", "50%",fontsize,"Arial",Red); ObjectCreate("l3", OBJ_TEXT, 0, 0, 0); ObjectSetText("l3", "38.2%",fontsize,"Arial",Red); ObjectCreate("l4", OBJ_TEXT, 0, 0, 0); ObjectSetText("l4", "23.5%",fontsize,"Arial",Red); ObjectCreate("l5", OBJ_TEXT, 0, 0, 0); ObjectSetText("l5", "23.5%",fontsize,"Arial",Red); ObjectCreate("l6", OBJ_TEXT, 0, 0, 0); ObjectSetText("l6", "38.2%",fontsize,"Arial",Red); ObjectCreate("l7", OBJ_TEXT, 0, 0, 0); ObjectSetText("l7", "50%",fontsize,"Arial",Red); ObjectCreate("l8", OBJ_TEXT, 0, 0, 0); ObjectSetText("l8", "61.8%",fontsize,"Arial",Red); return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { max =0; min =0; ObjectDelete("l1"); ObjectDelete("l2"); ObjectDelete("l3"); ObjectDelete("l4"); ObjectDelete("l5"); ObjectDelete("l6"); ObjectDelete("l7"); ObjectDelete("l8"); return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { double dev; int i; max =0; min =0; if (iBars(NULL,0) < BarsCount) BarsCount = iBars(NULL,0) -MAPeriod-1 ; /* for (int i = BarsCount ; i>=0; i--) { double m = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i); double top = High[ i] - m; if (top > max) max = top; double bottom = Low[ i] - m; if (bottom < min) min = bottom; } if (MathAbs(max) > MathAbs(min)) Inc3 = max; else Inc3 = min; dev = Deviat(i); Inc2 = Inc3*0.618; Inc1 = Inc3*0.5; Inc0 = Inc3*0.236; Inc3 = Inc3*0.382; */ for (i =BarsCount; i>=0; i--) { dev = Deviat(i); if(dev == 0) continue; Inc2 = dev*0.618; Inc1 = dev*0.5; Inc0 = dev*0.236; Inc3 = dev*0.382; double m = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i); ExtMapBuffer1[ i] = m + Inc2; ExtMapBuffer2[ i] = m + Inc1; ExtMapBuffer3[ i] = m + Inc3; ExtMapBuffer4[ i] = m + Inc0; ExtMapBuffer5[ i] = m - Inc0; ExtMapBuffer6[ i] = m - Inc3; ExtMapBuffer7[ i] = m - Inc1; ExtMapBuffer8[ i] = m - Inc2; } ObjectMove("l1", 0, Time[0],ExtMapBuffer1[0]); ObjectMove("l2", 0, Time[0],ExtMapBuffer2[0]); ObjectMove("l3", 0, Time[0],ExtMapBuffer3[0]); ObjectMove("l4", 0, Time[0],ExtMapBuffer4[0]); ObjectMove("l5", 0, Time[0],ExtMapBuffer5[0]); ObjectMove("l6", 0, Time[0],ExtMapBuffer6[0]); ObjectMove("l7", 0, Time[0],ExtMapBuffer7[0]); ObjectMove("l8", 0, Time[0],ExtMapBuffer8[0]); return(0); } double Deviat(int bar) { int i; double val = 0, loDev = 0, hiDev = 0; if( bar + IndPeriod >= Bars - 1) return(0); for (i = bar + IndPeriod; i >= bar; i--) { double m = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i); if(MathAbs(m - High[ i]) > hiDev) hiDev = MathAbs(m - High[ i]); if(MathAbs(m - Low[ i]) > loDev) loDev = MathAbs(m - Low[ i]); } val = MathMax(hiDev, loDev); return (val); } [/pre]

Scriptong: Genry пишет: Игорь, а вот в таком варианте Ваше замечание учтено? По идее, да. Но скрупулезно не проверял. Только подход получился тяжелый - в тестере еле движется. Не удивительно. Ведь на каждом тике производится расчет значений для всех тех баров, которые с предыдущего тика не изменились. То есть производится много лишней работы. Суть изменений заключается в том, что нужно сделать перерасчет только для обновленных баров. В обычном ходе истории это максимум 2 бара (нулевой и первый), а на каждом тике вообще 1 бар (нулевой). В советнике же и этого не нужно будет, т. к. нулевой бар ему нужен как рыбе зонтик

Genry: Тест совы, по ценам открытия, с этим вариантом индикатора. EA берет сигнал по открытию бара, поэтому тест по тикам не сильно отличается, но по тикам очень долго тестирует.

Sergey: Genry пишет: Тест совы, по ценам открытия, с этим вариантом индикатора. EA берет сигнал по открытию бара, поэтому тест по тикам не сильно отличается, но по тикам очень долго тестирует. Красивая картинка А как насчет бек-теста?

Genry: Sergey пишет: Красивая картинка А как насчет бек-теста? Этот тестовый сет я делал для версии ЕА "Quantum London Trading EA v1.6.1 m10[staxis].mq4" 27 ноября 2014 LO c 9 (Франкфурт) до 13, GMT+2, М1, EurUsd, счет долларовый, спред - 13. Логика была такая: эти настройки я делал для 1.6.1 mod 10, а потом перетаскивал с версии на версию, чтобы убедиться что новый мод дает результат не хуже старого. Я изменил индикатор QuMA_ChannelsFIBO и запустил тест на сегодняшней "Quantum London Trading EA v1.6.1 m13-4[staxis].mq4" с 14 сентября по 11 декабря. Есть проблема: исправленный индикатор работает еще медленне , надеюсь Игорь найдет красивое решение . Сейчас прогоню с 11 декабря по сегодня.... Результат: поднял счет с 500 до 650$ и слился на обвале Шанхая 5 января. Сет тестовый, предназначен проверять обратные сигналы индикатора - тейков и стопов нет.

Sergey: Genry пишет: Сет тестовый, предназначен проверять обратные сигналы индикатора - тейков и стопов нет. Добро!

Genry: Sergey пишет: Genry пишет: цитата: Сет тестовый, предназначен проверять обратные сигналы индикатора - тейков и стопов нет. Добро! Это с 500$ с 12 декабря, если с сентября тем-же сетом, то и 5 января проскочит

Genry: Версия QuMA_ChannelsFIBO_min.mq4 урезана для вызова из советника, чтобы ускорить тестирование. [pre]//+------------------------------------------------------------------+ //| MA Chanels.mq4 | //| ░njel░ | //| iamnotlinked | //| Quantum.mq4 | //+------------------------------------------------------------------+ //| Quantum.mq4 | //| Copyright й 2010, zznbrm | //| //+------------------------------------------------------------------+ //| 2012Jan27 mod for mer071898 //+------------------------------------------------------------------+ //| //| 10.12.2015 Genry : MA_Channels+Quantum = QuMA_ChannelsFIBO.mq4 //| 10.01.2016 Genry : Add the algorithm for finding extrema. //| The idea and code Deviat: Development Slim33 10/18/2014 //| 11.01.2016 Staxis: Increasing the speed indicator. //| 11.01.2016 Genry : MIN version to work with the advisor. //| It works faster than the standard version. //+------------------------------------------------------------------+ #property copyright "zznbrm+njel+Genry" #property link "notlinked" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 clrAquamarine #property indicator_color2 clrMagenta #property indicator_width1 5 #property indicator_width2 5 //---- input parameters Quantum extern int eintDepth3 = 78; // 1= 23.6 2=38.4 3=50 4=61.8 5=78.6 6=Gann 82.87 7= 88.2 8=100 extern int FibSelect = 2; //--------------------- MA extern int BarsCount = 500; extern int MAPeriod = 100; extern int MAMethod = MODE_SMA; extern int MAPrice = PRICE_CLOSE; extern int fontsize = 10; double FibMult = 0.0; double Inc0 = 0.0000; double Inc1 = 0.0000; double Inc2 = 0.0000; double Inc3 = 0.0000; double Inc4 = 0.0000; double Inc5 = 0.0000; double Inc6 = 0.0000; double Inc7 = 0.0000; //---- buffers double gadblUp3[]; // Quantum double gadblDn3[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { SetIndexBuffer( 0, gadblUp3 ); SetIndexEmptyValue( 0, 0.0 ); SetIndexStyle( 0, DRAW_ARROW ); SetIndexArrow( 0, 250 ); SetIndexLabel( 0, NULL ); SetIndexBuffer( 1, gadblDn3 ); SetIndexEmptyValue( 1, 0.0 ); SetIndexStyle( 1, DRAW_ARROW ); SetIndexArrow( 1, 250 ); SetIndexLabel( 1, NULL ); return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { double dev = 0; int intLow3, intHigh3, limit; // if (iBars(NULL,0) < BarsCount) // BarsCount = iBars(NULL,0) - MAPeriod-1 ; int counted_bars = IndicatorCounted(); //---- check for possible errors if(counted_bars < 0) return(-1); if(counted_bars <= MAPeriod) limit = Bars - MAPeriod ; else limit = Bars - counted_bars; for (int i =limit; i>=0; i--) { dev = Deviat(i); if(dev == 0) continue; Inc2 = dev*0.618; Inc1 = dev*0.5; Inc0 = dev*0.236; Inc4 = dev*0.786; Inc5 = dev*0.828; // Gann 82.87 Inc6 = dev*0.882; Inc7 = Inc3; // 100% Inc3 = dev*0.382; //------------------------------------- double m = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i); gadblUp3[ i] = 0.0; gadblDn3[ i] = 0.0; switch ( FibSelect ) { case 1: FibMult = m -Inc0; break; // 23.6 case 2: FibMult = m -Inc3; break; // 38.2 case 3: FibMult = m -Inc1; break; // 50 case 4: FibMult = m -Inc2; break; // 61.8 case 5: FibMult = m -Inc4; break; // 78.6 case 6: FibMult = m -Inc5; break; // Gann 82.87 case 7: FibMult = m -Inc6; break; // 88.2 case 8: FibMult = m -Inc7; break; // 100.0 default: FibMult = m -Inc3; } intLow3 = iLowest( Symbol(), Period(), MODE_LOW, eintDepth3, i ); if ( intLow3 == i ) { if (Low[ i] <= FibMult) gadblUp3[ i] = Low[ i]; } switch ( FibSelect ) { case 1: FibMult = m +Inc0; break; // 23.6 case 2: FibMult = m +Inc3; break; // 38.2 case 3: FibMult = m +Inc1; break; // 50 case 4: FibMult = m +Inc2; break; // 61.8 case 5: FibMult = m +Inc4; break; // 78.6 case 6: FibMult = m +Inc5; break; // Gann 82.87 case 7: FibMult = m +Inc6; break; // 88.2 case 8: FibMult = m +Inc7; break; // 100.0 default: FibMult = m +Inc3; } intHigh3 = iHighest( Symbol(), Period(), MODE_HIGH, eintDepth3, i ); if ( intHigh3 == i ) { if (High[ i] >= FibMult) gadblDn3[ i] = High[ i]; } } return(0); } //+------------------------------------------------------------------+ //|Slim33 18.10.2014 //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ double Deviat(int bar) { int i; double val = 0, loDev = 0, hiDev = 0; if( bar + BarsCount >= Bars - 1) return(0); for (i = bar + BarsCount; i >= bar; i--) { double m = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i); if(MathAbs(m - High[ i]) > hiDev) hiDev = MathAbs(m - High[ i]); if(MathAbs(m - Low[ i]) > loDev) loDev = MathAbs(m - Low[ i]); } val = MathMax(hiDev, loDev); return (val); }[/pre]

Scriptong: Genry пишет: Версия QuMA_ChannelsFIBO_min.mq4 урезана для вызова из советника, чтобы ускорить тестирование. Соедините эту версию с предыдущей и получите оптимальный вариант. Вроде бы так, но надо будет еще проверить. А в советнике не стоит вызывать индикатор. Достаточно просто поставить в него функцию расчета текущих уровней. Она будет достаточно компактной и "легкой".

Genry: Scriptong пишет: Вроде бы так, но надо будет еще проверить. А в советнике не стоит вызывать индикатор. Достаточно просто поставить в него функцию расчета текущих уровней. Она будет достаточно компактной и "легкой". Предложения понятны, спасибо, Игорь! Эх, практики не хватает. Я еще хотел сделать из этого индикатора MTF-ный. Возможно это улучшит результат, если сигналы на вход и выход будут с разных ТФ.

Scriptong: Genry пишет: Эх, практики не хватает. Я еще хотел сделать из этого индикатора MTF-ный. Практика подоспела

Genry: Ура! Это как с велосипеда на ракету пересесть: был здесь - и сразу там Спасибо, Игорь, за участие в этом вопросе - думаю много трейдеров скажет доброе слово! А еще один вариант - mtf третьим будет ?

Scriptong: Genry пишет: А еще один вариант - mtf третьим будет ? Не будет ли слишком много линий? Для текущего и еще одного ТФ - 16 линий, для трех ТФ - 24 и т. д.

Genry: Scriptong пишет: Не будет ли слишком много линий? Для текущего и еще одного ТФ - 16 линий, для трех ТФ - 24 и т. д. А не надо добавлять. Добавить параметр TF - если 0, то текущий, а если > текущего, то с него и данные для отрисовки. Проще загрузить 2 индикатора на один график, если надо.

Scriptong: Genry пишет: А не надо добавлять. Добавить параметр TF - если 0, то текущий, а если > текущего, то с него и данные для отрисовки. Проще загрузить 2 индикатора на один график, если надо. А, ну это просто

Genry: Scriptong пишет: Genry пишет: цитата:А не надо добавлять. Добавить параметр TF - если 0, то текущий, а если > текущего, то с него и данные для отрисовки. Проще загрузить 2 индикатора на один график, если надо. Scriptong пишет: А, ну это просто Это хорошо что просто, а возможности расширяет

Genry: Обсуждая ускорение QuMaшки, мы с коллегой iew независимо совершили "открытие" - исправленная QuMaшка отлично повторяет Envelopes из стандартного набора МТ, которые при оптимизации должны работать быстрее любого пользовательского индикатора .

Genry: Genry пишет: Обсуждая ускорение QuMaшки, мы с коллегой iew независимо совершили "открытие" - исправленная QuMaшка отлично повторяет Envelopes из стандартного набора МТ, которые при оптимизации должны работать быстрее любого пользовательского индикатора . Игорь, я использую такой подход удобство подбора уровней фибо или отклонения для енвелопес: назначение отрицательного индекса для стандартных значений Фибо. После этого в тестере можно задать параметры перебора уровней фибо: от -1 шаг -1 до -8 и он будет перебирать фиксированную сетку, а в остальных случаях - диапазон определенный трейдером. [pre] double i_fibo_Level1 = i_fiboLevel1; // для удобства оптимизации и задания шага фибо double i_fibo_Level1_cl = i_fiboLevel1_cl; // для удобства оптимизации и задания шага фибо double i_fibo_Level1_v2 = i_fiboLevel1_v2; // для удобства оптимизации и задания шага фибо double i_fibo_Level1_v2_cl = i_fiboLevel1_v2_cl; // для удобства оптимизации и задания шага фибо //+------------------------------------------------------------------+ switch ( int(i_fiboLevel1 )) { case -1: i_fibo_Level1 = 23.6; break; // 23.6 case -2: i_fibo_Level1 = 38.2; break; // 38.2 case -3: i_fibo_Level1 = 50.0; break; // 50 case -4: i_fibo_Level1 = 61.8; break; // 61.8 case -5: i_fibo_Level1 = 78.6; break; // 78.6 case -6: i_fibo_Level1 = 82.87; break; // Gann 82.87 case -7: i_fibo_Level1 = 88.2; break; // 88.2 case -8: i_fibo_Level1 = 100.0; break; // 100.0 default: i_fibo_Level1 = i_fiboLevel1; } switch ( int(i_fiboLevel1_cl )) { case -1: i_fibo_Level1_cl = 23.6; break; // 23.6 case -2: i_fibo_Level1_cl = 38.2; break; // 38.2 case -3: i_fibo_Level1_cl = 50.0; break; // 50 case -4: i_fibo_Level1_cl = 61.8; break; // 61.8 case -5: i_fibo_Level1_cl = 78.6; break; // 78.6 case -6: i_fibo_Level1_cl = 82.87; break; // Gann 82.87 case -7: i_fibo_Level1_cl = 88.2; break; // 88.2 case -8: i_fibo_Level1_cl = 100.0; break; // 100.0 default: i_fibo_Level1_cl = i_fiboLevel1_cl; } switch ( int(i_fiboLevel1_v2 )) { case -1: i_fibo_Level1_v2 = 23.6; break; // 23.6 case -2: i_fibo_Level1_v2 = 38.2; break; // 38.2 case -3: i_fibo_Level1_v2 = 50.0; break; // 50 case -4: i_fibo_Level1_v2 = 61.8; break; // 61.8 case -5: i_fibo_Level1_v2 = 78.6; break; // 78.6 case -6: i_fibo_Level1_v2 = 82.87; break; // Gann 82.87 case -7: i_fibo_Level1_v2 = 88.2; break; // 88.2 case -8: i_fibo_Level1_v2 = 100.0; break; // 100.0 default: i_fibo_Level1_v2 = i_fiboLevel1_v2; } switch ( int(i_fiboLevel1_v2_cl )) { case -1: i_fibo_Level1_v2_cl = 23.6; break; // 23.6 case -2: i_fibo_Level1_v2_cl = 38.2; break; // 38.2 case -3: i_fibo_Level1_v2_cl = 50.0; break; // 50 case -4: i_fibo_Level1_v2_cl = 61.8; break; // 61.8 case -5: i_fibo_Level1_v2_cl = 78.6; break; // 78.6 case -6: i_fibo_Level1_v2_cl = 82.87; break; // Gann 82.87 case -7: i_fibo_Level1_v2_cl = 88.2; break; // 88.2 case -8: i_fibo_Level1_v2_cl = 100.0; break; // 100.0 default: i_fibo_Level1_v2_cl = i_fiboLevel1_v2_cl; } return(0); }[/pre] И то-же самое для Envelopes: [pre]double Envelopes_MA = iMA(Symbol(),0, MA_Period, MA_Shift, MA_Method, Applied_Price,1); switch ( int( Deviation )) { case -1: Deviation = 0.23* Envelopes_MA; break; // 23.6 case -2: Deviation = 0.38* Envelopes_MA; break; // 38.2 case -3: Deviation = 0.50* Envelopes_MA; break; // 50 case -4: Deviation = 0.62* Envelopes_MA; break; // 61.8 case -5: Deviation = 0.78* Envelopes_MA; break; // 78.6 case -6: Deviation = 0.83* Envelopes_MA; break; // Gann 82.87 case -7: Deviation = 0.88* Envelopes_MA; break; // 88.2 } double Envelopes_MA_cl = iMA(Symbol(),0, MA_Period_cl, MA_Shift_cl, MA_Method_cl, Applied_Price_cl,1); switch ( int( Deviation_cl )) { case -1: Deviation_cl = 0.23* Envelopes_MA_cl; break; // 23.6 case -2: Deviation_cl = 0.38* Envelopes_MA_cl; break; // 38.2 case -3: Deviation_cl = 0.50* Envelopes_MA_cl; break; // 50 case -4: Deviation_cl = 0.62* Envelopes_MA_cl; break; // 61.8 case -5: Deviation_cl = 0.78* Envelopes_MA_cl; break; // 78.6 case -6: Deviation_cl = 0.83* Envelopes_MA_cl; break; // Gann 82.87 case -7: Deviation_cl = 0.88* Envelopes_MA_cl; break; // 88.2 } [/pre]

Genry: Перенес свои сообщения из ветки советника по Квантуму: ------------------------------------------------------------------------------------- ... у меня была идея сделать такой алгоритм скальпирования на тренде: 1. по аналогии с Фибо-сеткой строим ATR-сетку по такому принципу: 1ATR * (3.618 && 6.618 && 8.618, уровни настраиваются) получается канал с учетом волатильности (можно учитывать и фибо-уровени для надежности). 2. На сильном тренде если цена пробивает максимально удаленный ATR-уровень , например: 8.618 - по сигналам Квантума начинаем строить сетку. Сетку переводим в безубыток (закрытием части ордеров ) при развороте и достижении предыдущего уровня 6.618 и : 1. закрываем при достижении уровня 3.618 или 2. оставляем и тралим по уровням до обратного сигнала. A теперь доказательство эффективности этого алгоритма на примере: Это график тестера с 01 июня 2014 года по 28 января 2016 года. Сов прошел 20 месяцев начав с 1000$ возможно потому, что открывал и закрывал короткие сетки между уровнями 23 и 38 Фибо с одной стороны канала, а не у противоположного уровня. На графике есть пару ступенек которые снесут депозит в 1000$ если начать торговлю в этот день, но в целом получилось красиво :). Доход в 5000$ за 20 месяцев - это 250 баксов в месяц, совсем немного, но ММ брался из расчета дальнего уровня, а так можно и побольше поставить. Жаль на графике есть сливные участки, надо думать как из преодолевать, но может перевод в безубыток поможет или использовать SL. --------------------------------------------------------------------------------------------------------------------------- В первом примере ММ был: старт: 0.02 множители 1.05 и 1.1 Если взять январь 2016 с 11 числа по сегодня, т.е. пару недель старт тот-же 0.02 и множители 1.2. и 1.3, то данный подход скальпирования сеткой на одной стороне канала принесет 960$, риски будут выше, но не для этого января :d --------------------------------------------------------------------------------------------------------------------------- Я сделал скрин с пояснениями к сообщению http://forum.tradelikeapro.ru/index.php?topic=10633.msg259491#msg259491 и проторговал эту методику руками, получилось так: 1. При торговле волатильности использовал АТR-канал построенный от МА100 в обе стороны. Первоначальные уровни: а) ATR x 8.618 (8.62) - дальний уровень, при его касании или пробитии начинаем строить сетку по сигналам Квантума. После касания ценой среднего уровня 6.62 на уровень 8.62 переносим SL - первый шаг трала. б). АТR х 6.618 (6.62) - средний уровень, при касании его ценой - трал перемещается в безубыток на уровень 8.62. В теории, т.к. ордера открывались за уровнем 8.62 должны получить всю сетку в безубытке, но возможны варианты, когда часть ордеров останется еще в минусе. в). АТR х 3.618 (3.62 :) ) - самый близкий к МА100 уровень, используется как сигнал для закрытия половины прибыли сетки (можно всей сетки), чтобы сделать Сейф. г) МА100 при касании ценой уровня МА100 можем закрыть всю сетку или передвинуть трал и продолжать тралить по уровням ATR (и Фибо) до появления встречного сигнала Квантума. ЗЫ: можно добавить еще один уровень в АТР (хотя он вроде уже есть в советнике) - за 8.62 для установки первоначального стопа.

Scriptong: Genry пишет: по аналогии с Фибо-сеткой строим ATR-сетку по такому принципу: 1ATR * (3.618 && 6.618 && 8.618, уровни настраиваются) получается канал с учетом волатильности (можно учитывать и фибо-уровени для надежности). То есть к МАшке откладываем в обе стороны значение ATR на предыдущем (или текущем?) баре, умноженное на соответствующий коэффициент?

Genry: Genry пишет: по аналогии с Фибо-сеткой строим ATR-сетку по такому принципу: 1ATR * (3.618 && 6.618 && 8.618, уровни настраиваются) получается канал с учетом волатильности (можно учитывать и фибо-уровени для надежности). Scriptong пишет: То есть к МАшке откладываем в обе стороны значение ATR на предыдущем (или текущем?) баре, умноженное на соответствующий коэффициент? Да, именно так. На скрине два примера: 1. торговля на "одной стороне Фибо-канал" 2. торговля на "одной стороне ATR-канала" Еще статистики не набрал, но на тренде с высокой волатильностью ATR-канал дает более широкий торговый диапазон, т.к. оперативнее реагирует на импульсы чем Фибо. [pre]//+------------------------------------------------------------------+ //| ATR Channels.mq4 | //| Copyright c 2005, Luis Guilherme Damiani | //| http://www.damianifx.com.br | //+------------------------------------------------------------------+ #property copyright "Copyright c 2005, Luis Guilherme Damiani" #property link "http://www.damianifx.com.br" #property indicator_chart_window #property indicator_buffers 7 #property indicator_color1 Aqua //Moving Average #property indicator_color2 DeepSkyBlue // Lower band 1 #property indicator_color3 DeepSkyBlue // Upper band 1 #property indicator_color4 RoyalBlue // Lower band 2 #property indicator_color5 RoyalBlue // Upper band 2 #property indicator_color6 BlueViolet // Lower band 3 #property indicator_color7 BlueViolet // Upper band 3 //---- indicator buffers double MA_Buffer0[ ]; double Ch1up_Buffer1[ ]; double Ch1dn_Buffer2[ ]; double Ch2up_Buffer3[ ]; double Ch2dn_Buffer4[ ]; double Ch3up_Buffer5[ ]; double Ch3dn_Buffer6[ ]; //---- input parameters extern int PeriodsATR = 24; extern int MA_Periods = 100; extern int MA_type = MODE_LWMA; extern double Mult_Factor1 = 3.62; extern double Mult_Factor2 = 5.62; extern double Mult_Factor3 = 7.62; extern int fontsize = 8; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //string mat; //---7- indicators // MA SetIndexStyle(0, DRAW_LINE, 2); SetIndexBuffer(0,MA_Buffer0); SetIndexDrawBegin(0,0); /*if (MA_type==MODE_LWMA)SetIndexLabel(0,"WMA"+MA_Periods) else { if (MA_type==MODE_SMA) SetIndexLabel(0,"SMA"+MA_Periods) else { if (MA_type==MODE_EMA) SetIndexLabel(0,"EMA"+MA_Periods) else SetIndexLabel(0,"SMMA"+MA_Periods); }; };*/ // ATR 1 up SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,Ch1up_Buffer1); SetIndexDrawBegin(1,0); SetIndexLabel(1,"ATRu "+PeriodsATR+", "+Mult_Factor1); // ATR 1 down SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2,Ch1dn_Buffer2); SetIndexDrawBegin(2,0); SetIndexLabel(2,"ATRd "+PeriodsATR+", "+Mult_Factor1); // ATR 2 up SetIndexStyle(3,DRAW_LINE); SetIndexBuffer(3,Ch2up_Buffer3); SetIndexDrawBegin(3,0); SetIndexLabel(3,"ATRu "+PeriodsATR+", "+Mult_Factor2); // ATR 2 down SetIndexStyle(4,DRAW_LINE); SetIndexBuffer(4,Ch2dn_Buffer4); SetIndexDrawBegin(4,0); SetIndexLabel(4,"ATRd "+PeriodsATR+", "+Mult_Factor2); // ATR 3 up SetIndexStyle(5,DRAW_LINE); SetIndexBuffer(5,Ch3up_Buffer5); SetIndexDrawBegin(5,0); SetIndexLabel(5,"ATRu "+PeriodsATR+", "+Mult_Factor3); // ATR 3 down SetIndexStyle(6,DRAW_LINE); SetIndexBuffer(6,Ch3dn_Buffer6); SetIndexDrawBegin(6,0); SetIndexLabel(6,"ATRd "+PeriodsATR+", "+Mult_Factor3); //---- ObjectCreate("lf1", OBJ_TEXT, 0, 0, 0); ObjectSetString(0, "lf1", OBJPROP_TOOLTIP, "\n"); ObjectSetInteger(0, "lf1", OBJPROP_ANCHOR, ANCHOR_LEFT); ObjectSetText("lf1", DoubleToStr(Mult_Factor3,3),fontsize,"Arial",Red); ObjectCreate("lf2", OBJ_TEXT, 0, 0, 0); ObjectSetString(0, "lf2", OBJPROP_TOOLTIP, "\n"); ObjectSetInteger(0, "lf2", OBJPROP_ANCHOR, ANCHOR_LEFT); ObjectSetText("lf2", DoubleToStr(Mult_Factor2,3),fontsize,"Arial",Red); ObjectCreate("lf3", OBJ_TEXT, 0, 0, 0); ObjectSetString(0, "lf3", OBJPROP_TOOLTIP, "\n"); ObjectSetInteger(0, "lf3", OBJPROP_ANCHOR, ANCHOR_LEFT); ObjectSetText("lf3", DoubleToStr(Mult_Factor1,3),fontsize,"Arial",Red); ObjectCreate("lf4", OBJ_TEXT, 0, 0, 0); ObjectSetString(0, "lf4", OBJPROP_TOOLTIP, "\n"); ObjectSetInteger(0, "lf4", OBJPROP_ANCHOR, ANCHOR_LEFT); ObjectSetText("lf4", DoubleToStr(Mult_Factor1,3),fontsize,"Arial",Red); ObjectCreate("lf5", OBJ_TEXT, 0, 0, 0); ObjectSetString(0, "lf5", OBJPROP_TOOLTIP, "\n"); ObjectSetInteger(0, "lf5", OBJPROP_ANCHOR, ANCHOR_LEFT); ObjectSetText("lf5", DoubleToStr(Mult_Factor2,3),fontsize,"Arial",Red); ObjectCreate("lf6", OBJ_TEXT, 0, 0, 0); ObjectSetString(0, "lf6", OBJPROP_TOOLTIP, "\n"); ObjectSetInteger(0, "lf6", OBJPROP_ANCHOR, ANCHOR_LEFT); ObjectSetText("lf6", DoubleToStr(Mult_Factor3,3),fontsize,"Arial",Red); return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() {//---- ObjectDelete("lf1"); ObjectDelete("lf2"); ObjectDelete("lf3"); ObjectDelete("lf4"); ObjectDelete("lf5"); ObjectDelete("lf6"); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int fixed_bars=IndicatorCounted(); for(int i=0;i< Bars - fixed_bars;i++) { double atr=iATR(NULL,0,PeriodsATR,i); double ma=iMA(NULL,0,MA_Periods,0,MA_type,PRICE_TYPICAL,i); MA_Buffer0[ i]=ma; Ch1up_Buffer1[ i]=ma+atr*Mult_Factor1; Ch1dn_Buffer2[ i]=ma-atr*Mult_Factor1; Ch2up_Buffer3[ i]=ma+atr*Mult_Factor2; Ch2dn_Buffer4[ i]=ma-atr*Mult_Factor2; Ch3up_Buffer5[ i]=ma+atr*Mult_Factor3; Ch3dn_Buffer6[ i]=ma-atr*Mult_Factor3; } ObjectMove("lf1", 0, Time[ 0],Ch3up_Buffer5[ 0]); ObjectMove("lf2", 0, Time[ 0],Ch2up_Buffer3[ 0]); ObjectMove("lf3", 0, Time[ 0],Ch1up_Buffer1[ 0]); ObjectMove("lf4", 0, Time[ 0],Ch1dn_Buffer2[ 0]); ObjectMove("lf5", 0, Time[ 0],Ch2dn_Buffer4[ 0]); ObjectMove("lf6", 0, Time[ 0],Ch3dn_Buffer6[ 0]); //---- //---- return(0); } [/pre]

Scriptong: Genry пишет: Да, именно так. ОК, и с ним проверим Quantum. Наверное, даже сделаю версию с переключателем между ChannelsFIBO и ATRChannelsFIBO.

Genry: Scriptong пишет: ОК, и с ним проверим Quantum. Наверное, даже сделаю версию с переключателем между ChannelsFIBO и ATRChannelsFIBO. Спасибо, Игорь! Время уделенное данной теме несомненно окупится

Genry: Еще одно мое сообщение по теме торговли на индикаторе Квантум в ветке советника: ---------------------------------------------------------------------------------------------------- Предложение Eriksonа торговать сигналы Квантума по тренду думаю всем понятно. На версии 1.4.2. я делал тоже самое, только направление тренда определял не индикаторами, а волновым анализом. Поэтому предложение Эрика торговать по индикаторам воспринял оч.положительно. Но здесь нас ждала засада - индикатор сигнала с ТФ Д1 оказался рисовальщиком на истории. Хорошая замена ему пока не нашлась, но разные индикаторы для реализации этой идеи я периодически пробую. Алгоритм торговли по Эрику такой: 1. Определяем направление тренда на тф Д1. 2. Определяем направление тренда на тф Н4. 3. Если направления совпадают, то строим сетку по сигналам Квантума в направлении тренда. Когда сигналы Д1 и Н4 расходятся - закрываем всю сетку. 4. Если сигналы на Д1 и Н4 не совпадают - значит это режим Флета и мы открываем ордера по сигналам Квантума в любом направлении (так мы торгуем сейчас). Трендовый режим в этом алгоритме определяющий - основная прибыль ожидается именно от сеток по тренду. Сегодня я решил поменять подход и посмотреть что будет. Алгоритм такой: 1. Когда индикаторы старших ТФ сигнализируют тренд - сидим на заборе и ордера не ставим вообще. 2. Когда старшие ТФ разнонаправлены - торгуем флет как обычно. Оптимизировал я этот подход на участке с 20 сентября 2015 года по 12 декабря 2015 года. А бэк-тест запустил на интервале с 1 июня 2013 года по 30 января 2016 года. Счет - долларовый. Стартовый депо - 600$. Лот - фиксированный 0.04. EurUsd, m5. Сигналы Квантума с м1. Для сравнения я открыл рядом дневной график евры (уместился с июля 2013 года) и внизу кривую доходности тестера. На евре с июля 2013 года до 5 мая 2014 года шел восходящий тренд, а с 5 мая 2014 по 13 марта 2015 года - нисходящий. С марта 2015 и по настоящее время на Д1 - флет и график идет в бок. Вывод по алгоритму нашей сегодняшней торговли напрашивается такой: 1. Когда на рынке (Д1) тренд - алгоритм сильно не сливает и почти не зарабатывает. 2. Когда на рынке (Д1) флет - алгоритм отлично зарабатывает. Пока сохраняется флет - будем с профитом, сколько продлится сегодняшняя неопределенность неизвестно, но надо продумывать трендовую часть советника. Если вспомнить регулярные проблемы сеток с безоткатом, которые возникали в октябре - январе, то есть над чем задуматься. А ведь мы сейчас торгуем на флетовом рынке, что будет на тренде? Это не значит что в теперешней реализации ЕА не может приносить прибыль на тренде. Это значит что ЕА должен уметь определят наличие тренда и флета, и торговать учитывая эти состояния рынка.

Genry: Еще один график тестера и дневной график EurUSD для наглядности. Алгоритм прежний: 1. Когда индикаторы старших ТФ сигнализируют тренд - сидим на заборе и ордера не ставим вообще. 2. Когда старшие ТФ разнонаправлены - торгуем флет как обычно. Оптимизировал я этот подход на участке с 01 февраля 2014 года по 30 сентября 2014 года, чтобы в интервал теста попал восходящий тренд, вершина и нисходящий тренд. Бэк-тест на интервале с 21 июля 2013 года по 30 января 2016 года. Счет - долларовый. Стартовый депо - 600$. Лот - фиксированный 0.04. EurUsd, m5. Сигналы Квантума с м1. Торговля круглосуточная. Но в идеале надо работать по полному алгоритму: 1. есть тренд - открываем сигналы по тренду. Для скальпирования в этом режиме можно пробовать торговать на одной стороне ATR- канала или Фибо-канала, т.е. отлавливать коррекции. 2. нет тренда - торгуем двунаправлено. ЗЫ. По определению направления тренда на старших ТФ было предложение использовать МТФ Ишимоку: mr.smart пишет: http://forum.tradelikeapro.ru/index.php?topic=10633.msg259928#msg259928 Я собственно по теме индикатора тренда, правда особо не силен в понимании его работы, но есть такой индикатор как Ichimoku_Signal 2. Там как раз есть предположительные направления тренда на различных ТФ.

Genry: author=Appletownworld Можно ли использовать для индикатора тренда Heiken Ashi? Он уже давно встроен в советник, но как я понимаю с периодом только в неделю. ... Genry пишет: Самому было интересно оценить эффективность фильтра на Heiken Ashi. Чтобы проверить как он влияет провел эксперимент. Вот его последовательность: 1. Нашел сет с хорошим ровным графиком на котором одна сильная просадка 2. Сделал возможным выбор ТФ Heiken Ashi, чтобы проверить не только W1 3. Запустил оптимизацию сета с включенным Heiken Ashi в диапазоде от Д1 к W1 ТОЛЬКО НА УЧАСТКЕ СЛИВА и получил два положительных результата из 4 ТФ 4. Затем прогнал тест с включенным НА на ВЕСЬ ДИАПАЗОН первого теста (вернее чуть короче: первый тест с 1 марта 15 по 30 января 16г второй с 1 марта 15 по 12.12.15 - на полтора месяца короче, но интересовал именно сливной участок. Результат внизу. Вывод: 1. наиболее эффективено сравнение текущего Heiken Ashi с Heiken Ashi на W1. 2. на трендовом рынке Heiken Ashi помогает избежать потерь. Просадка значительно уменьшилась. 3. на флете Heiken Ashi на недельном графике трудновато поспеть за нашими рабочими ТФ - м1, м5. 4. результат получен для EurUSD, возможно более волатильные пары дадут иной результат.

Genry: Совместная работа Quantum, ATR-канала и Fibo-Канала с учетом исторических уровней цены и Фибо-кластеров.

Genry: Только ATR-канал

Genry: Игорь, день добрый! Перечитывал ветку и решил ее немного обновить: Scriptong пишет: ОК, и с ним проверим Quantum. Наверное, даже сделаю версию с переключателем между ChannelsFIBO и ATRChannelsFIBO. Думаю результат будет положительным. Оба канала работают хорошо и дополняют сигналами друг-друга как комбинация более статичного и динамичного канала. Scriptong пишет: kiosotto.mq4 | 2014, Masakazu Corp. .... Ну а сам алгоритма интересен - расчет значений справа налево по графику, а не как обычно - слева направо. Я сначала даже подумал, что индикатор будет перерисовываться. Ан нет - все ОК. Значения остаются на месте. ... индикатор В прошедшем декабре мы обсуждали индикатор Киосотто. Вы сделали отличный вариант этого индикатора. Я просматривал свои записи того периода и увидел пометки которые не отправил на форум: учесть при расчете сигнала Киосотто текущую волатильность. Сейчас сигнал формируется фактически так: double rsi = iRSI(NULL, 0, i_dev_period, PRICE_CLOSE, shift); double power = rsi * iClose(NULL, 0, shift); И практически всегда индикатор точно отмечает экстремумы, но слабо учитывает различие экстремума ночного флета или экстремума при открытии Европейской или Американской сессии. Как Вы смотрите на предложение учесть показатель волатильности для изменения данной ситуации? Например вариант или комбинация вариантов следующих показателей: 1 вариант: учесть в расчете ATR или StDev, возможно (ATR + StDev)/2 : 2 вариант: учесть ширину канала (как в Боллинджере) и удаление нового экстремума (как в Quantum) от центральной МА канала; 3 вариант: учесть нахождение в зоне перекупленности/перепроданности стохастического осциллятора double sth = iStochastic(NULL, 0, k_period, d_period, slowing, metod, price, MODE_MAIN ,shift); if (sth > 50) sth = 100 - sth; // сначала значения ниже 50 (перепроданность) приравниваются по весу к перекупленности // здесь можем дополнительно учесть значение выше или ниже порога, например 80 sth = sth*0.5; // при формировании окончательного веса можем брать лишь часть значения стохастика, т.к. // он иногда "залипает" в экстремальных зонах и будет "смазывать" менее залипающий RSI Тогда при расчете power можно учесть не только rsi * iClose(NULL, 0, shift), но и добавить изменение волатильности. Цель добавления: увеличить пики индикатора для волатильного рынка по сравнению с низковолатильным. Идеально было бы при росте волатильности "удлинить" только экстремальные пики, т.е. если раньше на развороте в 4 утра и в 11 дня их значения были практически одинаковы, то теперь 11 часовые - имели более высокое значение.

Scriptong: Genry пишет: И практически всегда индикатор точно отмечает экстремумы, но слабо учитывает различие экстремума ночного флета или экстремума при открытии Европейской или Американской сессии. Это, как бы, вечная проблема - определить значимость экстремума. С одной стороны кажется, что экстремум при низкой волатильности не должен иметь такой же вес по сравнению с экстремумом, сформированным при высокой волатильности. С другой стороны, это всего лишь разные масштабы измерений. А потому такие сигналы вполне могут быть эквивалентными. Как решить эту проблему, я не знаю. Genry пишет: 1 вариант: учесть в расчете ATR или StDev, возможно (ATR + StDev)/2 : Зачем дополнительно учитывать ATR, если канал построен как раз по нему? Genry пишет: 2 вариант: учесть ширину канала (как в Боллинджере) и удаление нового экстремума (как в Quantum) от центральной МА канала; Тут требуется более подробное описание, т. к. вариантов слишком много. Какой из них Вы имеете в виду, долго буду угадывать. Genry пишет: 3 вариант: учесть нахождение в зоне перекупленности/перепроданности стохастического осциллятора double sth = iStochastic(NULL, 0, k_period, d_period, slowing, metod, price, MODE_MAIN ,shift); if (sth > 50) sth = 100 - sth; // сначала значения ниже 50 (перепроданность) приравниваются по весу к перекупленности // здесь можем дополнительно учесть значение выше или ниже порога, например 80 sth = sth*0.5; // при формировании окончательного веса можем брать лишь часть значения стохастика, т.к. // он иногда "залипает" в экстремальных зонах и будет "смазывать" менее залипающий RSI Тогда при расчете power можно учесть не только rsi * iClose(NULL, 0, shift), но и добавить изменение волатильности. Насколько я понимаю, это просто дополнительный фильтр по типу того, который уже используется в моей интерпретации Quantum. И пока не понятен переход от Stochastic к RSI, т. к. о нем выше не было ни слова, а потом он вдруг появился в сообщении.

Genry: Scriptong пишет: Это, как бы, вечная проблема - определить значимость экстремума. С одной стороны кажется, что экстремум при низкой волатильности не должен иметь такой же вес по сравнению с экстремумом, сформированным при высокой волатильности. С другой стороны, это всего лишь разные масштабы измерений. А потому такие сигналы вполне могут быть эквивалентными. Согласен, сигналы практически эквивалентны и оба правильно сигнализируют разворот, но масштаб хочется учесть, т.к. после одного сигнала цена пройдет 1000 п, а другого - 100. Поэтому я пытаюсь сформировать power как сумму нескольких сигналов вес которых привязан к волатильности. Scriptong пишет: Genry пишет: 2 вариант: учесть ширину канала (как в Боллинджере) и удаление нового экстремума (как в Quantum) от центральной МА канала; При расчетe power учесть формирование новых экстремумов + их удаление от МА. Тогда ночные пики и дневные будут различны на величину удаления от центра канала. [pre]double intLow3 = iLowest( Symbol(), Period(), MODE_LOW, eintDepth3, shift ); if ( intLow3 == shift ) { qUp = Low[ shift]; } double intHigh3 = iHighest( Symbol(), Period(), MODE_HIGH, eintDepth3, shift ); if ( intHigh3 == shift ){ qDn = High[ shift]; } if (qUp>0) { ma_diff = NormalizeDouble(fabs(ma - qUp), 4); } else if (qDn>0) { ma_diff = NormalizeDouble(fabs(qDn - ma), 4); } else { ma_diff = NormalizeDouble(fabs(ma - iClose(NULL, 0, shift)), 4); }[/pre] Боллинджер я тоже рассматриваю как показатель текущей волатильности канала и он просто один из претендентов - что лучше подойдет. Scriptong пишет: Насколько я понимаю, это просто дополнительный фильтр по типу того, который уже используется в моей интерпретации Quantum. И пока не понятен переход от Stochastic к RSI, т. к. о нем выше не было ни слова, а потом он вдруг появился в сообщении. В данном случае проверка нахождения стохастика в экстремальных зонах нужна чтобы увеличить значение power для вершин, которые совпадают с нахождением стохастика в этих зонах, т.е. например такой вариант расчета: power = (RSI +Stoch + (StDev+MA_diff)/2 ) * iClose(NULL, 0, shift), или даже без RSI (Stoch + StDev+MA_diff ) * iClose(NULL, 0, shift), где Stoch: double Stoch = iStochastic(NULL, 0, k_period, d_period, slowing, metod, price, MODE_MAIN ,shift); if (Stoch < 50) Stoch = 100 - Stoch; // значения ниже 50 (перепроданность) приравниваются по весу к перекупленности if (Stoch < StochTreshLevel) Stoch = Stoch*0.01; // если значение не в зоне перекупленности/перепроданности - не учитываем его , a расчет ma_diff приведен выше и учитывает удаление нового экстремума от средней за некоторый период Т.е. если сейчас показания Киосотто одинаковы при разной волатильности, то я предлагаю попробовать увеличение веса: 1. с увеличением StDev; 2. для вершин с бОльшим удалением от МА; 3. для вершин которые сформировались при нахождении стохастика в зоне перкупленности\перепроданности. Возможно все эти показатели не нужны и какой-то один из них может дать необходимые изменения. Так или иначе я хотел обсудить этот момент - в случае удачи информативность индикатора увеличится и можно задавать пороги его значений с учетом роста волатильности. На нижнем скрине величина левого пика Киосотто выше чем у правого, но учет удаления вершины от МА позволяет несколько исправить эту ситуацию и реальный разворот произошел после правой вершины.

Scriptong: Genry пишет: т.к. после одного сигнала цена пройдет 1000 п, а другого - 100. Здесь никогда не угадаете. Для правильного выхода нужно действовать по обстоятельствам, а не пытаться предугадать. Genry пишет: При расчетe power учесть формирование новых экстремумов + их удаление от МА. Тогда ночные пики и дневные будут различны на величину удаления от центра канала. В этом коде имеется перекос в пользу регистрации минимумов. Максимумы могут пропускаться. Genry пишет: На втором скрине величина левого пика Киосотто выше чем у правого, но учет удаления вершины от МА позволяет несколько исправить эту ситуацию и реальный разворот произошел после правой вершины. Так в данном случае имеет место дивергенция класса А (причем две подряд)! Зачем что-то исправлять, когда и без того имеется достаточно интересный инструмент для анализа? На мой взгляд, Вы пытаетесь подогнать свои методы под конкретную рыночную ситуацию. Ошибочность такого подхода в том, что вытянув хорошие показатели в одном месте, безмерно ухудшаются показания в другом месте. А истинного экстремума, после которого произойдет разворот, мы никогда не определим наверняка. Его нужно лишь ловить, скрупулезно открывая сделки по сигналам, не забывая закрывать их в случае ошибки. А вот на той сделке, которая словит экстремум, "отыграться по полной".

Genry: Scriptong пишет: На мой взгляд, Вы пытаетесь подогнать свои методы под конкретную рыночную ситуацию. Ошибочность такого подхода в том, что вытянув хорошие показатели в одном месте, безмерно ухудшаются показания в другом месте. да уж И все же остается некоторое сомнение что мы все выжали из этого алгоритма. Я достаточно давно использую Киосотто и его основные промахи , с которыми я сталкивался, были связаны с неучтенной волатильностью. Ну может еще какие мысли придут - я регулярно пробую что-то в этом направлении

Scriptong: Genry пишет: И все же остается некоторое сомнение что мы все выжали из этого алгоритма. Я не это имел в виду. Ведь речь шла о том, чтобы корректировать пики индикатора Kiosotto так, чтобы они совпадали "по смыслу" с экстремумами цены. Именно в этом контексте был мой ответ. Подобные подгонки я уже не раз проводил со многими индикаторами. Итог во всех случаях был точно такой, как описан: в одном месте ушиваем, а в другом - расползается.

Genry: К теме Киосотто и Квантума: Staxis реализовал мое предложение по встраиванию Вашей версии индикатора Киосотто в советник. Но видимо наблюдения за работой индикатора и его подвигли на внесение дополнений - пороговый уровень сигнала определяет скользящая средняя, цитата: ДОПОЛНЕНИЕ В СОВЕТНИК Добавлен индикатор MA_Kiosotto - это индикатор Kiosotto_v41(Scriptong) с добавленной МА (простой скользящей средней) максимумов показаний индикатора за определенный период. Индикатор Kiosotto обсуждался неоднократно, поэтому ссылок не привожу - ищите в ветке. Сигналом для срабатывания индикатора считается факт пересечения баром индикатора линии МА (желтого цвета). Положение линии МА по вертикали регулируется параметром смещение MA - это множитель значения МА. Индикатор: MA_Kiosotto Теперь работа 3-х индикаторов (в середине мой очередной вариант с волатильностью ) у меня выглядит так:

Genry: Scriptong пишет: Ведь речь шла о том, чтобы корректировать пики индикатора Kiosotto так, чтобы они совпадали "по смыслу" с экстремумами цены. Именно в этом контексте был мой ответ. Подобные подгонки я уже не раз проводил со многими индикаторами. Итог во всех случаях был точно такой, как описан: в одном месте ушиваем, а в другом - расползается. Мне понятен мотив и я согласен с выводом. По крайней мере, там где экстремум цены не поддержан индикатором мы имеем сигнал дивергенции Побудительная причина изменений именно в том, что сама идея Квантума и Киосотто интересная и вызывает желание думать в этом направлении. Вот последние мысли о Киосотто: прогоны многочисленных тестов в советнике показывают его эффективность. Сейчас наилучший результат дает Киосотто с фильтрацией скользящей средней. Игорь, если будет возможность, посмотрите вариант правки Вашей версии индикатора и добавления в нее МА: https://dropmefiles.com/WmnmI . Автор правки - Staxis, написал мне следующее сообщение: MA_Kiosotto - это индикатор Kiosotto_v41(Scriptong) с добавленной МА (простой скользящей средней) максимумов показаний индикатора за определенный период. Сигналом (порогом) для срабатывания индикатора считается факт пересечения баром индикатора линии МА (желтого цвета). Положение линии МА по вертикали регулируется параметром смещение MA - это множитель значения МА. У меня просьба - попроси Scriptongа нормально приклеить МА к Киосотто. По моим тестам он дает лучшие показатели. Индикаторы это не мое -могу только вырезать из них что нибудь.

Scriptong: Genry пишет: Игорь, если будет возможность, посмотрите вариант правки Вашей версии индикатора и добавления в нее МА: https://dropmefiles.com/WmnmI Посмотрел. Технические ошибки вижу. Но вот, не понимая сути "добавления МА", не могу понять алгоритм редакции кода. Например, что вот это должно означать: g_MA[barIndex]=(g_MA[barIndex+1]*MA_Period/g_shift - g_MA[MA_Period-1]/g_shift + MathMax(g_sellBuffer[barIndex+1], g_buyBuffer[barIndex+1]))/MA_Period * g_shift Кроме того, вот эта строка вообще странная: g_MA[barIndex]=sum/MA_Period * g_shift По умолчанию g_shift равно нулю. Таким образом, буфер g_MA на всем своем протяжении будет содержать 0, кроме случая первого запуска индикатора, когда буфер инициализируется значением 1 (тоже, кстати, непонятно, для чего). Итого: требуется описание идеи "добавления МА в Киосотто".

Genry: Scriptong пишет: Итого: требуется описание идеи "добавления МА в Киосотто". Staxis пишет: Идея добавления МА в том, чтобы рассчитать и нарисовать среднюю линию максимумов баров Киосотто. Прорыв данной линии - подтверждение сигнала на вход. Применение усреднения позволяет использовать Киосотто на полном автомате на различных реакциях рынка (как на сильно волатильном, так и на относительно спокойном). Закомментированные строки (в том числе "g_MA[ barIndex]=(g_MA[ barIndex+1]*MA_Period/g_shift - g_MA[ MA_Period-1]/g_shift + MathMax(g_sellBuffer[ barIndex+1], g_buyBuffer[ barIndex+1]))/MA_Period * g_shift ")- технологический мусор, который можно смело выкидывать. Множитель "g_shift" - это смещение МА по вертикали. 0 по умолчанию там быть не должен, скорее 1, а само значение >= 1 (просто не обратил внимание). Буферы инициализировал значением 1 (не 0 или "EMPTY_VALUE"), потому что МА периодически улетала в бесконечность или падала в 0. Индикаторы это не моя стезя >:d<. https://dropmefiles.com/VshBf Игорь, предложение по смыслу похоже на задачу, которую решала статья Историческая волатильность: задать некий уровень для сравнения В индикаторе HistoricalVolatility было: "Синей пунктирной линией индикатор показывает среднее значение волатильности за последние 260 баров (значение параметра i_averagingPeriod). " В данном случае уровень МА фильтрует сигналы Kiosotto, чтобы использовать отфильтрованный по уровню сигнал Kiosotto для оценки (фильтрации) сигналов индикатора Quantum.

Scriptong: Genry пишет: Идея добавления МА в том, чтобы рассчитать и нарисовать среднюю линию максимумов баров Киосотто. Итак, нужно взять все максимумы за некий период времени (кстати, максимумы - простые или с неким периодом типа фракталов?). Период времени, как я понимаю, должен указываться в настроечных параметрах. К примеру, если за этот период времени (к примеру, 30 баров) было обнаружено 10 максимумов, то их значения суммируются и делятся на 10. А вот что будет, если за нужный период времени не было максимумов? Получим 0. Genry пишет: В данном случае уровень МА фильтрует сигналы Kiosotto, чтобы использовать отфильтрованный по уровню сигнал Kiosotto для оценки (фильтрации) сигналов индикатора Quantum. Сначала давайте разберемся с принципом построения индикатора, а потом уже перейдем к самой стратегии.

Stas: Scriptong пишет: Итак, нужно взять все максимумы за некий период времени. Это я неправильно выразился - не максимумы, а значения (высоты) баров Киосотто - MathMax(g_sellBuffer[ii+barIndex+1], g_buyBuffer[ii+barIndex+1]). Scriptong пишет: Период времени, как я понимаю, должен указываться в настроечных параметрах. Да - input int MA_Period = 13; // MA period / Период MA

Scriptong: Stas пишет: Это я неправильно выразился - не максимумы, а значения (высоты) баров Киосотто - MathMax(g_sellBuffer[ii+barIndex+1], g_buyBuffer[ii+barIndex+1]). А, ну да. Я забыл, что в Киосотто две линии. Для определения того значения, которое используется в усреднении, берем то, которое на обрабатываемом баре больше. Понятно. Теперь далее. Получили МАшку и просто отобразили ее в том же окне? В итоге те значения Киосотто, которые находятся выше МАшки, нужно как-то обозначить?

Stas: Scriptong пишет: Теперь далее. Получили МАшку и просто отобразили ее в том же окне? В итоге те значения Киосотто, которые находятся выше МАшки, нужно как-то обозначить? В основном это всё. В советнике сравнивается значение Киосотто со значение МА (по данным Киосотто) на предыдущем баре. Если Киосотто выше, чем МА * g_shift - это сигнал. Анализировать что-то в индикаторе я думаю не стоит. Изначально хотел иметь выбор варианта МА (СМА, ЕМА и т.д.), но потом запутался и плюнул. Вообще-то алерт бы не помешал (звуковой во всяком случае). Сейчас сижу в ручном режиме и вход проспал.

Scriptong: Stas пишет: В основном это всё. Так? Kiosotto_Lines_MA

Stas: Scriptong пишет: Так? Kiosotto_Lines_MA Да! Я и не знал, что такой индикатор существует встроенным в MQL - iMAOnArray. Просьба - поставить коэффициент смещения МА по вертикали во входные параметры: input double g_shift = 1; // смещение MA и добавить его в расчет g_maBuffer[barIndex] = iMAOnArray(g_maSourceValues, 0, i_maPeriod, 0, i_maMethod, 0) * g_shift; И поставить возможность отключения алертов, чтобы молчал в советнике на полном автомате. Могу сам, но чтобы не нарушать авторские права А вообще, это именно то, что хотелось! Спасибо.

Genry: Scriptong пишет: Так? Kiosotto_Lines_MA Stas пишет: А вообще, это именно то, что хотелось! Спасибо.

Scriptong: Stas пишет: Просьба - поставить коэффициент смещения МА по вертикали во входные параметры: input double g_shift = 1; // смещение MA и добавить его в расчет g_maBuffer[barIndex] = iMAOnArray(g_maSourceValues, 0, i_maPeriod, 0, i_maMethod, 0) * g_shift; И поставить возможность отключения алертов, чтобы молчал в советнике на полном автомате. Тогда вот так.

Stas: Scriptong пишет: Тогда вот так. Полный фарш! Огромный респект! Спасибо!

Scriptong: Время хранения разработанных индикаторов на ресурсе dropmefiles небольшое. Постоянное место хранения исходников теперь здесь: Kiosotto_Lines Kiosotto_Lines_MA

Sergey: Scriptong пишет: Время хранения разработанных индикаторов на ресурсе dropmefiles небольшое. Постоянное место хранения исходников теперь здесь: Отлично!

Genry: Вот некоторые результаты работы Квантума. Выложил один из участников проекта (Urytomsk) для копирования сигналов. Но сайт дает достаточно подробную статистику работы самого робота. https://www.mql5.com/ru/signals/207274#!tab=history Актуальная версия от Staxisa: "Quantum London Trading EA v1.6.1 m13-7-294[staxis]"

Genry: С мая 2016 пробую торговый подход на 3-х индикаторах: Квантум, PFE и мтфRSI (или мтфStoch) с трех периодов, обычно m5, m15, H4. Подход не без проблем, но достаточно хорошо фильтрует ранние сигналы Квантума и уменьшает просадки. Пары для торговли подобрал с широким флетовым коридором: AUDCAD audchf eursek gbpnzd nzdcad nzdchf nzdsgd nzdusd usdcad интересно, но под вопросом: audjpy euraud gbpchf usdsek xagusd xauusd Набралась некоторая статистика - буду оформлять и выкладывать. Возможно результат будет интересен Игорю и появится статья. С 5 по 19 октября 2016 С 5 по 25 октября 2016

Scriptong: Genry пишет: Возможно результат будет интересен Игорю Мне пока интересно развитие темы симбиоза Quantum и SplashAndShelf. На данный момент точно определился только с тем, что нужно попробовать советник чисто на SplashAndShelf (это в ближайших планах). Затем можно будет посмотреть, как хорошо фильтруют друг друга SlpashAndShelf и Quantum. Вот с этим моментом еще не определился, т. е. как именно они должны друг друга фильтровать. Ведь возможных вариантов подхода к этой теме достаточно много.

Genry: Scriptong пишет: Мне пока интересно развитие темы симбиоза Quantum и SplashAndShelf. На данный момент точно определился только с тем, что нужно попробовать советник чисто на SplashAndShelf (это в ближайших планах). Мне тоже интересно это решение, так как оно позволяет добавить к данному методу расчет по Фибо сектора запрета на обработку сигналов Квантума о котором я уже писал. В данном случае мною движет желание поделиться вполне рабочей информацией по методу который полгода дает положительный результат в автоматической торговле.

Genry: Я заменил фильтр сигналов Квантума со стохастика на PFE. Не вдаваться в подробности, суть алгоритма стохастика (автор Джордж Лейн, 1948 год): используется 2 линии – быстрая (%К) и медленная (%D). Стохастик фиксирует в какой части диапазона закрываются свечи. На бычьем рынке большая часть свечей закрываются в верхней части диапазона, соответственно и осциллятор показывает рост, а на медвежьем - обратная картина. Polarized Fractal Efficiency (PFE), алгоритм разработал в 1994 Hans Hannula, индикатор для МТ4 сделал в 2008 году Giampiero Raschetti (aka Giaras) - это адаптивная скользящая средняя Кауфмана (известна как AMA, KAMA, AMkA - Kaufman's Adaptive Moving Average) - вариант адаптивной скользящей средней на базе EMA + методики учета волатильности в качестве динамически изменяющейся сглаживающей константы. Сам автор PFE написал так : эффективность фрактала вычисляется как в KAMA (соотношении эффективности Kaufman’s Adaptive Moving Average), плюс поляризация и наличие опционального EMA. На скрине внизу кривые стохастика и PFE с одинаковым периодом =14. Наглядно видна разница в частоте возникновения сигнала при входе индикатора в зоны перекупленности\перепроданности. На втором скрине (более крупно) можно увидеть разницу в фильтрации сигналов Квантума с помощью стохастика или PFE.

Genry: Второй индикатор анализирует среднее значение показаний RSI или Стохастика на трех ТФ. Сигнал появляется когда средняя входи в зоны перекупленности\перепроданности. Скрины сделок: audcad m5 c 01фев по 21 сентября 2016 Дружественной парой в 2016 году оказалась AudCAD, которая для депо до 1000$ дает приемлемую просадку и нормальный доход.

Scriptong: Genry пишет: Дружественной парой в 2016 году оказалась AudCAD, которая для депо до 1000$ дает приемлемую просадку и нормальный доход. Я бы не назвал 60% просадки приемлемой Да и, все-таки, из начала стейта видно, что прибыль набирается не просто за счет доливок, а доливок с постепенным увеличением объема. Хотя это еще полбеды. Беда в том, что все эти доливки происходят практически на одном и том же ценовом уровне. С этим нужно что-то делать. Какой смысл открывать доливки на одном уровне, не улучшая цену открытия совокупной позиции, но увеличивая риск? Наиболее простое решение - поставить запрет на исполнение сигнала, если последний ордер имеет худшую цену, чем текущая, не более чем N пунктов.

Genry: Scriptong пишет: Я бы не назвал 60% просадки приемлемой Да и, все-таки, из начала стейта видно, что прибыль набирается не просто за счет доливок, а доливок с постепенным увеличением объема. Хотя это еще полбеды. Беда в том, что все эти доливки происходят практически на одном и том же ценовом уровне. С этим нужно что-то делать. Какой смысл открывать доливки на одном уровне, не улучшая цену открытия совокупной позиции, но увеличивая риск? Наиболее простое решение - поставить запрет на исполнение сигнала, если последний ордер имеет худшую цену, чем текущая, не более чем N пунктов. Игорь, в текущей версии советника уже уйма настоек которые учитывают эти нюансы. Я не стремился показывать наилучшие варианты, т.к. метод стабильно дает приемлемый для торговли результат. Скрины были взяты из архива как первопопавшиеся, вот другой получше - с 0102 по 210916, начальный депозит 500$, max DD 240$. Мне интересно было предложить для рассмотрения сочетание PFE и средней трех периодов МТФ-RSI как фильтра сигналов Квантума.

Scriptong: Genry пишет: Мне интересно было предложить для рассмотрения сочетание PFE и средней трех периодов МТФ-RSI как фильтра сигналов Квантума. Просто Вы акцентировали внимание на результатах тестирования. Вот я о них и отзываюсь. Хотя, конечно, дело это неблагодарное и во многих случаях пустое. Обговаривать стоит именно подходы, а не результаты. Обсуждать результаты лучше уже после полной разработки системы с целью выявления сильных и слабых сторон стратегии.

Genry: Scriptong пишет: Обговаривать стоит именно подходы, а не результаты. Обсуждать результаты лучше уже после полной разработки системы с целью выявления сильных и слабых сторон стратегии.

Scriptong: Genry пишет: Мне интересно было предложить для рассмотрения сочетание PFE и средней трех периодов МТФ-RSI как фильтра сигналов Квантума. Порылся в теме и нашел описание самой системы: Я заменил фильтр сигналов Квантума со стохастика на PFE. Не вдаваться в подробности, суть алгоритма стохастика (автор Джордж Лейн, 1948 год): используется 2 линии – быстрая (%К) и медленная (%D). Стохастик фиксирует в какой части диапазона закрываются свечи. На бычьем рынке большая часть свечей закрываются в верхней части диапазона, соответственно и осциллятор показывает рост, а на медвежьем - обратная картина. Polarized Fractal Efficiency (PFE), алгоритм разработал в 1994 Hans Hannula, индикатор для МТ4 сделал в 2008 году Giampiero Raschetti (aka Giaras) - это адаптивная скользящая средняя Кауфмана (известна как AMA, KAMA, AMkA - Kaufman's Adaptive Moving Average) - вариант адаптивной скользящей средней на базе EMA + методики учета волатильности в качестве динамически изменяющейся сглаживающей константы. Сам автор PFE написал так : эффективность фрактала вычисляется как в KAMA (соотношении эффективности Kaufman’s Adaptive Moving Average), плюс поляризация и наличие опционального EMA. На скрине внизу кривые стохастика и PFE с одинаковым периодом =14. Наглядно видна разница в частоте возникновения сигнала при входе индикатора в зоны перекупленности\перепроданности. На втором скрине (более крупно) можно увидеть разницу в фильтрации сигналов Квантума с помощью стохастика или PFE. Это все? Или есть что-то "поглубже"?

Genry: Scriptong пишет: Это все? Или есть что-то "поглубже"? Вторая часть идеи - получить среднюю линию от трех MTF-индикаторов: RSI или Stochastic. Когда такая средняя входит в экстремальные зоны перекупленности\перепроданности - это означает что как минимум 3 периода готовы к развороту. Например, если торгую на м5, тогда для расчета средней беру показания RSI c m5, m15, H4. Помимо учета экстремальных зон средней для каждой кривой индикатора МОГУТ учитываться собственные зоны перекупленности\перепроданности, т.е. 4 пары границ: для средней и трех кривых. При таком алгоритме можно получит дополнительные возможности: 1. Более строгий сигнал, если проверяется нахождение в перекупленности\перепроданности и средней и, например, кривой старшего периода - Н4 в зоне +85 и +15. 2. Менее строгий сигнал, когда можно взять значение средней с зонами 70 и 30 и вхождение м15 в зону 80 и 20.

Scriptong: Genry пишет: Вторая часть идеи - получить среднюю линию от трех MTF-индикаторов: RSI или Stochastic. Поглубже я имел в виду именно развитие идеи совокупного использования стохастика и PFE, а не подключение еще каких-то индикаторов

Genry: Scriptong пишет: Поглубже я имел в виду именно развитие идеи совокупного использования стохастика и PFE, а не подключение еще каких-то индикаторов Игорь, так это и есть использование PFE и стохастика (или RSI), но интересует не просто стохастик, а показания стохастика на старших ТФ по отношению к торгуемому. Если стохастики на 3-х ТF дружно вошли в экстремальные зоны + PFE тоже + Квантум засигналил - это повод поставить ордер . Ну и удобно анализировать не 3 линии стохастиков, а одну среднюю от их показаний.

Scriptong: Genry пишет: Игорь, так это и есть использование PFE и стохастика (или RSI), но интересует не просто стохастик, а показания стохастика на старших ТФ по отношению к торгуемому. Про ИЛИ я где-то пропустил, значит Genry пишет: Если стохастики на 3-х ТF дружно вошли в экстремальные зоны + PFE тоже + Квантум засигналил - это повод поставить ордер Это более-менее понятно. Только пока складывается впечатление, что такие сигналы будут относительно редкими. Genry пишет: Ну и удобно анализировать не 3 линии стохастиков, а одну среднюю от их показаний. Что-то не понял про 3 линии стохастика. У него вроде их две всего... Хотя может имеется в виду линии на 3-х ТФ.

Genry: Scriptong пишет: Что-то не понял про 3 линии стохастика. У него вроде их две всего... Хотя может имеется в виду линии на 3-х ТФ. Да, именно среднюю от 3-х ТФ. Scriptong пишет: Это более-менее понятно. Только пока складывается впечатление, что такие сигналы будут относительно редкими. Фрагмент оптимизации audcad_m5_с 010216 по 110916. Порог индикатора PFE 0.2- 0.3 - при таком уровне фильтрации сигналов достаточно . Стартовое депо 500$. [pre] № 2446 5433.33 694 2.07 7.83 1346.67 48.17% 0.16 2954 4451.95 1178 1.72 3.78 1168.52 48.98% 0.14 2677 4283.00 804 1.82 5.33 1425.54 49.05% 0.15 2570 3978.00 608 2.05 6.54 1476.17 48.67% 0.14 2569 3845.47 669 1.90 5.75 884.47 48.42% 0.16 2436 3824.50 1058 1.57 3.61 1678.35 39.61% 0.11 2041 3806.01 1178 2.09 3.23 1095.45 48.25% 0.13 2959 3675.29 1164 1.48 3.16 1670.05 42.58% 0.10 2825 3646.52 1130 1.63 3.23 1014.05 49.84% 0.13 2504 3631.38 1115 2.09 3.26 1038.67 48.14% 0.13 2939 3583.73 609 1.94 5.88 1304.60 49.00% 0.13 2703 3561.90 804 1.74 4.43 1111.77 46.64% 0.16 2252 3560.41 804 1.74 4.43 1111.38 46.64% 0.16 2014 3558.81 1082 2.08 3.29 1037.31 48.62% 0.13 2775 3556.49 804 1.74 4.42 1110.19 46.62% 0.16 2952 3552.61 804 1.74 4.42 1108.91 46.60% 0.16 2768 3470.45 1145 2.01 3.03 1035.34 47.97% 0.13 2848 3460.70 778 1.75 4.45 1109.61 48.52% 0.16 2956 3456.16 1048 2.07 3.30 1034.21 49.18% 0.13 2806 3450.40 757 1.77 4.56 1108.98 48.69% 0.16 2458 3447.86 1130 1.55 3.05 960.68 49.79% 0.13 2789 3439.21 1039 1.63 3.31 1015.99 48.68% 0.13 2384 3391.95 741 1.77 4.58 1111.20 48.12% 0.16 2285 3388.14 1072 1.56 3.16 963.56 47.68% 0.13 2984 3336.15 724 1.77 4.61 1108.25 49.58% 0.16 2274 3297.74 717 1.77 4.60 1110.91 49.98% 0.16 2872 3225.94 568 2.27 5.68 1216.93 43.81% 0.15 2770 3219.64 1039 1.54 3.10 962.82 48.78% 0.13 2930 3216.53 558 2.29 5.76 1215.47 43.46% 0.15 [/pre]

Genry: Коллеги! Хочу обратить ваше внимание на еще одну разработку, основанную на сигналах индикатора Квантум. К сожалению прямое чтение материала требует регистрации, вот ссылка: http://forum.tradelikeapro.ru/index.php?topic=14413.0 На мой взгляд очень устойчивая к просадкам реализация со стабильным доходом, которую сложно свалить маржинКолом Название советника: QLT Год выпуска: 2016, 2017 Версия: 1.51 Терминал: MT4 build 971, MT4 build 1010 Сайт продажи: TradeLikeAPro Валютные пары: EURUSD, GBPUSD, EURJPY, AUDUSD, EURGBP, AUDJPY, USDCAD Таймфрейм: M1 (рекомендуется 5-тизнак, хотя может работать и на 4-хзнаке) Время торговли: Круглосуточно Описание: Советник основан на индикаторе Quantum. Используются свои методы фильтрации сигналов и выставления ордеров. На данный момент не использует никаких других индикаторов. Сетки buy/sell не зависят друг от друга. Цель используемых методов - уменьшить просадку и не строить большие сетки. Использование: Закинуть советник на график М1 нужной пары и загрузить соответствующий пресет. Настройки по-умолчанию не использовать! Наличие индикатора Quantum не требуется. ММ: $5000 на начальные 0.01 лота. Настройки: Используются старые пункты, на 5-тизнак пересчитывается автоматом. mn = 2016; // Magic Number Slip = 5; // Проскальзывание tf = M1; // Используемый таймфрейм NoNewGrid = false; // Не начинать новую сетку (Если нужно чтобы советник закончил текущую сетку и не начинал новую, то выставить значение в true) Wait = 0; // Пропустить N боксов перед открытием сетки // Обнулить счетчики если... NumBoxes = 8; // 1а ...количество сигналов больше и... NumPoints = 8; // 1б ...цена прошла меньше (пункты) NumPriceTime = 180; // 2 ...или прошло больше времени от начала отсчета (минуты) NumBoxes2 = 5; // 3 ...или количество сигналов равно количеству свечей (>) // ----------------------------- OnlyLowerHigher = true; // Открывать только выше/ниже (для sell/buy) чем предыдущий ордер NumOrders = 8; // Количество ордеров для которых применяется параметр HighLowPoints = 1; // Количество пунктов между ордерами NumOrders2 = 8; // Количество ордеров для которых применяется предыдущий параметр HL12 = false; // Для оптимизации. Верхнее количество ордеров равно нижнему // ----------------------------- qde = 240; // Quantum eintDepth3 for Entry (QDE) qdcqde = false; // Для оптимизации. QDC равно QDE qdc = 240; // Quantum eintDepth3 for Close (QDC) // ----------------------------- CloseOnlyPlus = true; // Закрывать сетку только в плюс ProfitPoints = 1; // Количество пунктов профита ProfitPoints3 = 20; // Количество пунктов профита (закрытие без QDC) (Если текщий профит достиг заданного уровня, то сетка закроется) PointLoss = 12; // Допустимый убыток при закрытии (пункты), менее (Если поставить отрицательное значение, то убыток станет соответствующим профитом) NumOrdPointLoss = 50; // Кол-во ордеров (>), с которых применяется предыдущий параметр // ----------------------------- UseTrStop = false; // Использовать TrailingStop для профита (Трал используется вместо немедленного закрытия, т.е. должен появиться сигнал на закрытие сетки) TrailingStop0 = 2; // Начальный уровень (пункты) TrailingStop = 2; // TrailingStop (пункты) TrailingStopStep = 1; // Шаг TrailingStop (пункты) ProfitPoints2 = 4; // Размер профита, с которого включается трал (пункты) // ----------------------------- UseOtlOrders = true; // Использовать отложенные ордера (стоповые) (Ордера виртуальные) Delta = 1; // Расстояние от текущей цены до отложенного ордера (пункты) TimeSec = 210; // Время жизни отложенного ордера (сек.) UseOtlTrailing = false; // Использовать трал для отложенных ордеров DeltaTr = 3; // Расстояние трала отложенных ордеров (пункты) NumOtl = 10; // Количество ордеров (>), с которых включать трал // ----------------------------- Klots = 1; // Коэффициент умножения лота (0 - автомат) MarginForLot = 10000; // Размер свободной маржи на 0.01 лота (при Klots = 0) // ----------------------------- T1 = 0.01; // Размер лота1 kol1 = 12; // Количество ордеров1 T2 = 0.02; // Размер лота2 kol2 = 9; // Количество ордеров2 T3 = 0.04; // Размер лота3 kol3 = 8; // Количество ордеров3 T4 = 0.08; // Размер лота4 kol4 = 7; // Количество ордеров4 T5 = 0.16; // Размер лота5 kol5 = 3; // Количество ордеров5 T6 = 0.25; // Размер лота6 kol6 = 70; // Количество ордеров6 // ----------------------------- font_color = clrSilver; // Цвет шрифта FontSize = 10; // Размер шрифта enum ugol { topleft = 0, // верхний левый topright = 1, // верхний правый bottomleft = 2, // нижний левый bottomright = 3 // нижний правый }; corner = 0; // Угол окна для вывода информации xx = 10; // Отступ по горизонтали yy = 20; // Отступ по вертикали Как работает советник: При появлении сигнала от Quantuma начинается отсчет. Если не было сброса счетчика и было пропущено нужное количество сигналов (все в соответствии с настройками), то берется или рассчитывается коэф. умножения лота и открывается рыночный ордер. При появлении новых сигналов выставляются отложенные ордера. Если у новой отложки цена лучше чем у имеющихся, то они закрываются. Новый ордер выставляется с учетом объема не сработавших. Версия 1.51 http://forum.tradelikeapro.ru/index.php?topic=14413.msg331860#msg331860 1. Убрана настройка UseOtlOrders. Теперь отложки не отключаемые. 2. Добавлена настройка DistanceForPL. Это расстояние от противоположного сигнала до начала сетки. Если текущее расстояние больше указанного здесь, то допустимый убыток (PointLoss) для текущей сетки использоваться не будет, т.е. сетка закроется по ProfitPoints. Информация об использовании PointLoss выводится в окне рядом с самим PointLoss (ON/OFF). В связи с новой настройкой, в архиве новые сеты. 3. Добавлена настройка CloseAllOrdersDrowdown. Работает только в тестере. Если текущий минус и маржа превысят указанное в настройке значение, то все ордера будут закрыты. Проверка происходит на новой свече. Следует иметь ввиду, что CloseAllOrdersDrowdown умножается на коэффициент умножения лота (Klots). 4. Настройки, имеющие смысл только для оптимизации, теперь работают только в тестере. В частности, HL12 и qdcqde. 5. При удалении отложки по времени, не обновлялась информация об отложенном объеме. На работу советника не влияет. Исправлено. 6. При отрисовке визуального уровня появления сигнала qdc, учитывалась текущая свеча. На работу советника не влияет. Исправлено. Архив содержит 2 варианта советника (на русском и английском), актуальное описание (на русском) и актуальные сеты.

Genry: Некоторые тесты последних версий ЕА на индикаторе Квантум:

Scriptong: Genry пишет: Некоторые тесты последних версий ЕА на индикаторе Квантум: Ну, на таком рынке, который мы наблюдаем последние 2 месяца, Квантуму невероятно комфортно Хотя, как я погляжу, здесь тест за последние 17 лет. Кривая баланса вроде ничего, ровненькая. Правда, среднегодовая доходность выходит всего 10%. Это если брать без экспоненциального увеличения. С ним - еще меньше. Для Баффета доходность отличная, а для наших граальщиков - ниже плинтуса

Genry: Scriptong пишет: Хотя, как я погляжу, здесь тест за последние 17 лет. Кривая баланса вроде ничего, ровненькая. Правда, среднегодовая доходность выходит всего 10%. Это если брать без экспоненциального увеличения. С ним - еще меньше. Игорь, день добрый! Ценность этого теста в том, что с этими настройками ЕА проходит 17 лет в пределах 600$ просадки и 1000$ депозита. И только в 2009 году эту картину портит пик просадки почти в 4000$, что увеличило требования к депо до 5000$. Вне 2009 года доходность выше, так как на те-же 5000$ можно увеличить стартовый лот и иметь не более 30% просадки. Но были и другие сеты, вот для 650$: Интересный факт: период оптимизации на котором создан сет - с 13 декабря 2015 по 20 ноября 2016, и на этих параметрах он проходит 17 лет. Есть вариант с 3000$ депо: Еще один интересный результат: один и тот-же сет подходит для нескольких пар без существенного изменения соотношения доход\просадка. Вот средние показатели такого теста: Вот сет от USDCAD загружен для пары GBPUsd:



полная версия страницы