Форум » Индикаторы » Индикатор 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

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 января. Сет тестовый, предназначен проверять обратные сигналы индикатора - тейков и стопов нет.



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