Форум » Индикаторы » Индикатор 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 пишет: Ошибка: нужны квадратные скобки от 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



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