[M1] QUANTUM LONDON.INC (индикаторная сетка-усреднитель GBPUSD M1)📌

От DENYA, 20 августа, 2015 в Торговые системы

#3858





КОРРЕКЦИЯ СОВЕТНИКА
1. Возвращен параметр выбор учета спреда. В прошлых версиях проверка была только при открытии ордеров.


Процитирую тебя еще раз по логике закрытия:
Порядок закрытия сетки ордеров (упрощенно) ТОЛЬКО ДЛЯ ВЕРСИЙ начиная с 13-7-298:
1. Проверка условий закрытия (индикаторы, TP, TS, Close only in profit ...)
2. Ожидание освобождения торгового потока.
Если поток занят и это 1-й ордер сетки - на п.1.
Если поток занят и это не 1-й ордер сетки - ждем, пока поток не освободится.
3. Команда на закрытие ордеров.
Если ордер не закрылся(в том числе и по проскальзыванию - только для Instant Execution) и это 1-й ордер сетки - на п.1
Если ордер не закрылся и это не 1-й ордер сетки - на п.2
Вопрос: спред проверяется перед действием 3 ?

Спред проверяется в п.1.
При Market Execution все ордера закрываются по рынку (в том числе и 1-й). Ни проскальзывание, ни актуальность цены здесь значения не имеют.

Сделай, плиз, маленькое пояснение. Предположим в п.1. выполнились все условия за исключением "спреда при закрытии". Спред вернулся в нормальный диапазон через 30 секунд. Закрытие произойдет в случае если цена не ушла в другую сторону? Или Сов будет дожидаться нового Сигнала на закрытие и только тогда снова проверять условие на спред?

Закрытие произойдет, если другие условия позволяют. Значения индикаторов не изменяются на текущей свече (не сбрасываются после первой проверки).
#3859

Не подскажите почему в тестере стратегий а именно в оптимизаторе не учитывается проход по параметру тест: новая сетка с фиксированной маржоей?

Изменено 26 июля, 2016 пользователем astafyev

#3860

Протестировав в тестере, использую TS на реале. Линия рисуется, трал работает.
Хотелось бы еще оценить эффективность. Относительно тестера пару раз успевал заметить что отрабатывает ожидаемо хуже, т.к. закрывает не моментально: цена может пробить стоп и пробежать еще немного прежде чем закроет, чего тестер не учитывает.
Черт с ним с тестером, хотелось бы иметь возможность оценить эффективность трала относительно закрытия без трала! А как? Линия трала после его отработки исчезает. В итоге в Истории счета видим только цены закрытия по тралу. Staxis, есть ли возможность на графике оставлять какой то нестираемый ценовой маркер в момент выставления TS? чтобы была возможность потом сравнить с ним цену закрытия по тралу.

#3861




Журнал забит вот этим
2016.07.06 09:30:01.428 Quantum London Trading EA v1.6.1rus EURUSD,M1: Alert: OrderSend Error: 4109
Сделки открывает, но алертами задолбал, в чем трабла?


Staxis, это действительно так. Только у меня не в журнале, а просто Алерты постоянно выходят. И код ошибки другой: OrderSend Error: 4202. Можно что-нибудь сделать?

КОРРЕКЦИЯ СОВЕТНИКА


После распаковки в каталог данных, и перезапуска терминала, советник версии 1.4 стал открывать первые сделки объемом в 0.10 лота, хотя по настройкам стоит 0.01. Сова версии 1.6 вообще не торгует. У кого была похожая проблема и как ее исправить?
#3862

Привет, Коллеги! День добрый, Staxis :)

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

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

1. периодически мы приходим к простому выводу: для тренда и флета в советнике должны работать разные алгоритмы входа в рынок. Когда идет тренд и входить надо по тренду, беря во внимание
трендовые сигналы Квантума после коррекции. При наличии тренда осцилляторы залипают и врут,
поэтому полезны мало . В это время актуальны сигналы MACD, EMA и т.п. А для Квантума на м1\м5
актуальна большая глубина поиска экстремумов, например 1500.

2. Когда на рынке флет - приходит время осцилляторов и рулят стохастики, ССI, RSI и иже с ними.
Меняется и стратегия торговли: Квантум короткий - глубину можно даже 15-20 ставить, в зависимости
от волатильности, и чем больше контртрендовых сигналов - тем выше доходность.

Так как доверенного механизма определения состояния рынка - флет или тренд в советнике нет, мы
в основном торгуем как на флете, а от разрушающих в таком режиме трендов защищаемся пропуском сигналов, каналами на фибках и атр и т.п. Они конечно выручают, но не всегда - тогда ЕА льет.

На форуме Сетки, кажется с подачи maxand, пробуют использовать ADX как селектор
тренда\флета и с уважением относятся к нашим (и своим) каналам, но тоже находятся в поиске решения.

Почему я решил это написать? Занимаясь своими делами открыл тестер, а в нем остался мой тестовый
ЕА на котором я проверял разные индикаторы. Последними были PFE и мтфRSI и мтфCтох о которых я
писал и которые закачал сюда. Они конечно тренд\флет не определяли, но давали сигнал когда
на 3-х ТФ стох или RSI находились в зонах перекупленности\перепроданности, что было отмашкой
для начала построения сетки.

Пробовал я все это, кажется, в апреле-мае и поэтому было интересно запустить сова со старыми
параметрами через летние скачки и английский брексит. :) По результатам прогона на Евро М5
сов не слил, а даже заработал. Так что идею эту можно достать из нафталина и попробовать обыграть.
Ну, если у Staxisa еще остался запал на модернизации совы. ;)

Сейчас выложу в ex4 тестовый сов, индикаторы и сет к ним - можете попробовать сами. А для Staxisa
исходники вызовов и логику - может захочет поэкспериментировать :d
По любому тестирующие получат в свое распоряжение сеты для собственной торговли :)
В модели нет никаких ограничений по времени работы или привязок к счетам, это просто
рабочая лошадка для тестирования разных идей.

Сов конечно совсем другой, но параметры думаю будут вам понятны. Из индикаторов используются
Квантум, PFE и RSI, а остальные должны быть OFF, т.к. их сигналы ЕА не обрабатывает.
Ceт для EurUSD, M5, у меня начальный депозит был 500$, спред 13.
Период проверки 5 Минут (M5) 2016.02.01 00:05 - 2016.07.25 23:55 (2016.02.01 - 2016.07.26)
QLT_Stoch4Cmtf.ex4 - закинуть в советники, остальные два - индикаторы, ну и сет.

Коллеги, если не лениво будет, то сообщите о результате или проблемах с запуском ЕА, если возникнут.
Думаю, Staxis будет ориентироваться на ваши сообщения.

Для Staxisa: >):)

Спойлер


1. oбъявления

input  string  A23="Параметры Stoch4";
extern ENUM_TIMEFRAMES g_TF_minor = 0;

input int i_kp1 = 8,
i_dp1 = 3,
i_slw1 = 3; // Stochastic
input int i_kp2 = 8,
i_dp2 = 3,
i_slw2 = 3; // Stochastic
input int i_kp3 = 8,
i_dp3 = 3,
i_slw3 = 3; // Stochastic

input ENUM_MA_METHOD i_Mode_MA = MODE_SMA;
input int i_overB_lvl = 80;
input int i_overS_lvl = 20;
input bool Stoch3_On = FALSE;

input bool CCI_on = true;
input ENUM_TIMEFRAMES CCITimeFrame = 15;
input int CCIPeriods = 12;
input int CCItresh = 160;

input string A24="Параметры Pfe";
extern int i_PfePeriod = 5;
extern bool i_PfeUseAvarage = true;
extern int i_PfeMaPeriod = 5;
input ENUM_MA_METHOD i_PfeMODE_MA = MODE_EMA;
extern double i_PfeTresh = 0.5;
input bool i_Pfe_On = true;

input string A25="Параметры RSI4";
input bool i_RSI3_On = true;
extern ENUM_TIMEFRAMES g_tfRSI_minor = 0;
extern ENUM_TIMEFRAMES g_tfRSI_middle = 0;
extern ENUM_TIMEFRAMES g_tfRSI_major = 0;

input int i_RSIperiodMinor = 8; // RSI
input int i_RSIperiodMiddle = 8; // RSI
input int i_RSIperiodMajor = 8; // RSI

input int i_RSIoverB_Average_lvl = 80;
input int i_RSIoverS_Average_lvl = 20;

input bool i_RSIMinor_lvl_On = false;
input int i_RSIoverB_Minor_lvl = 80;
input int i_RSIoverS_Minor_lvl = 20;

input bool i_RSIMiddle_lvl_On = false;
input int i_RSIoverB_Middle_lvl = 80;
input int i_RSIoverS_Middle_lvl = 20;

input bool i_RSIMajor_lvl_On = false;
input int i_RSIoverB_Major_lvl = 80;
input int i_RSIoverS_Major_lvl = 20;

input bool i_RSICCI_on = false;
input int i_RSICCITimeFrame = 240;
input int i_RSICCIPeriods = 18;
input int i_RSICCItresh = 220;
input ENUM_APPLIED_PRICE i_RSICCI_PRICE = PRICE_TYPICAL;


2.вызовы
   // закроем все, если сигнал Квантума возникает на экстремуме в том-же направлении бай - бай или селл-селл 
if (QLTcl_on) {
double SgQPclmin = iCustom(Symbol(), tf, "Quantum", Qnt_cl, 0, qSb); // minimum - close sell
double SgQPclmax = iCustom(Symbol(), tf, "Quantum", Qnt_cl, 1, qSb); // maximum - close buy
if (SgQPclmin > 0) SgQLT =-2; // close sell
if (SgQPclmax > 0) SgQLT = 2; // close buy
}

if (QLT_on) {
double SgQPmin = iCustom(Symbol(), tf, "Quantum", Qnt_op, 0, qSb); // buy minimum
double SgQPmax = iCustom(Symbol(), tf, "Quantum", Qnt_op, 1, qSb); // sell maximum
if (SgQPmin > 0) SgQLT = 1; // buy
if (SgQPmax > 0) SgQLT =-1; // sell
}

if (Stoch3_On) {
SgStoch3 = 0;
double SgStoch4dn = iCustom(Symbol(), tf, "Stoch4Cmtf", g_TF_minor, i_kp1, i_dp1, i_slw1, i_kp2, i_dp2, i_slw2,
i_kp3, i_dp3, i_slw3, i_Mode_MA, i_overB_lvl, i_overS_lvl,
CCI_on, CCITimeFrame, CCIPeriods, CCItresh, 4, 1);

double SgStoch4up = iCustom(Symbol(), tf, "Stoch4Cmtf", g_TF_minor, i_kp1, i_dp1, i_slw1, i_kp2, i_dp2, i_slw2,
i_kp3, i_dp3, i_slw3, i_Mode_MA, i_overB_lvl, i_overS_lvl,
CCI_on, CCITimeFrame, CCIPeriods, CCItresh, 5, 1);

if (SgStoch4up != EMPTY_VALUE) SgStoch3 = 1;
if (SgStoch4dn != EMPTY_VALUE) SgStoch3 =-1;
}

if (i_RSI3_On) {
SgRSI3 = 0;
double SgRSI4dn = iCustom(Symbol(), tf, "RSI4Cmtf", g_tfRSI_minor, g_tfRSI_middle, g_tfRSI_major,
i_RSIperiodMinor, i_RSIperiodMiddle, i_RSIperiodMajor,
i_RSIoverB_Average_lvl, i_RSIoverS_Average_lvl, i_RSIMinor_lvl_On, i_RSIoverB_Minor_lvl, i_RSIoverS_Minor_lvl,
i_RSIMiddle_lvl_On, i_RSIoverB_Middle_lvl, i_RSIoverS_Middle_lvl, i_RSIMajor_lvl_On, i_RSIoverB_Major_lvl,
i_RSIoverS_Major_lvl, i_RSICCI_on, i_RSICCITimeFrame, i_RSICCIPeriods, i_RSICCItresh, i_RSICCI_PRICE, 4, 1);

double SgRSI4up = iCustom(Symbol(), tf, "RSI4Cmtf", g_tfRSI_minor, g_tfRSI_middle, g_tfRSI_major,
i_RSIperiodMinor, i_RSIperiodMiddle, i_RSIperiodMajor,
i_RSIoverB_Average_lvl, i_RSIoverS_Average_lvl, i_RSIMinor_lvl_On, i_RSIoverB_Minor_lvl, i_RSIoverS_Minor_lvl,
i_RSIMiddle_lvl_On, i_RSIoverB_Middle_lvl, i_RSIoverS_Middle_lvl, i_RSIMajor_lvl_On, i_RSIoverB_Major_lvl,
i_RSIoverS_Major_lvl, i_RSICCI_on, i_RSICCITimeFrame, i_RSICCIPeriods, i_RSICCItresh, i_RSICCI_PRICE, 5, 1);

if (SgRSI4up != EMPTY_VALUE) SgRSI3 = 1;
if (SgRSI4dn != EMPTY_VALUE) SgRSI3 =-1;
}


if (i_Pfe_On) {
double SgPfe1 = iCustom(Symbol(), 0, "Pfe", i_PfePeriod, i_PfeUseAvarage, i_PfeMaPeriod, i_PfeMODE_MA, 0, 1);
double SgPfe2 = iCustom(Symbol(), 0, "Pfe", i_PfePeriod, i_PfeUseAvarage, i_PfeMaPeriod, i_PfeMODE_MA, 0, 2);

if ((SgPfe1 >= i_PfeTresh) && (SgPfe2 if ((SgPfe == -1) && (SgPfe1 = i_PfeTresh)) SgPfe = 0; // отмена селл
//
if ((SgPfe1 -i_PfeTresh)) SgPfe = 1; // Pfe в перепроданности = бай
if ((SgPfe == 1) && (SgPfe1 > -i_PfeTresh) && (SgPfe2 }


3.Логика
   if ((SgRSI3 == 1) && (SgPfe == 1) && (SgQLT == 1)) { // покупка 

Signal = 1; // сигнал покупки
TrendDirection = 1; // запоминаем направление
TrendDirectionGV = TrendDirection; // присваиваем глобальной переменной значение бай
return;

} else if ((TrendDirection == 1) && (((SgPfe == -1) || (SgRSI3 == -1)) && ((SgQLT ==-1) || (SgQLT == 2)))) {
Signal = 2; // закроем покупку по любому встречному сигналу индикаторов
TrendDirection = 0; // направление торговли не определено
TrendDirectionGV = TrendDirection;
}

if ((SgRSI3 == -1) && (SgPfe == -1) && (SgQLT == -1)) { // ((SgQLT == -1) && (SgTDI == -1)) {

Signal = -1; // продажа
TrendDirection = -1;
TrendDirectionGV = TrendDirection;
return;

} else if ((TrendDirection ==-1) && (((SgPfe == 1)|| (SgRSI3 == 1)) && ((SgQLT == 1) || (SgQLT == -2)))) {

Signal =-2; // закроем продажи по встречному сигналу от любого индикатора
TrendDirection = 0;
TrendDirectionGV = TrendDirection;
}

QLT_Stoch4Cmtf.ex4108 скач.
Rsi4Cmtf.ex4107 скач.
PFE.mq4110 скач.
eurusd_m5_pfe_#115.set100 скач.
StrategyTester_июль.gif

Изменено 27 июля, 2016 пользователем Genry_05

#3863


Привет, Коллеги! День добрый, Staxis :)

Спойлер


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

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

1. периодически мы приходим к простому выводу: для тренда и флета в советнике должны работать разные алгоритмы входа в рынок. Когда идет тренд и входить надо по тренду, беря во внимание
трендовые сигналы Квантума после коррекции. При наличии тренда осцилляторы залипают и врут,
поэтому полезны мало . В это время актуальны сигналы MACD, EMA и т.п. А для Квантума на м1\м5
актуальна большая глубина поиска экстремумов, например 1500.

2. Когда на рынке флет - приходит время осцилляторов и рулят стохастики, ССI, RSI и иже с ними.
Меняется и стратегия торговли: Квантум короткий - глубину можно даже 15-20 ставить, в зависимости
от волатильности, и чем больше контртрендовых сигналов - тем выше доходность.

Так как доверенного механизма определения состояния рынка - флет или тренд в советнике нет, мы
в основном торгуем как на флете, а от разрушающих в таком режиме трендов защищаемся пропуском сигналов, каналами на фибках и атр и т.п. Они конечно выручают, но не всегда - тогда ЕА льет.



На форуме Сетки, кажется с подачи maxand, пробуют использовать ADX как селектор
тренда\флета и с уважением относятся к нашим (и своим) каналам, но тоже находятся в поиске решения.

Спойлер

Почему я решил это написать? Занимаясь своими делами открыл тестер, а в нем остался мой тестовый
ЕА на котором я проверял разные индикаторы. Последними были PFE и мтфRSI и мтфCтох о которых я
писал и которые закачал сюда. Они конечно тренд\флет не определяли, но давали сигнал когда
на 3-х ТФ стох или RSI находились в зонах перекупленности\перепроданности, что было отмашкой
для начала построения сетки.

Пробовал я все это кажется в апреле-мае и поэтому было интересно запустить сова со старыми
параметрами через летние скачки и английский брексит. :) По результатам прогона на Евро М5
сов не слил, а даже заработал. Так что идею эту можно достать из нафталина и попробовать обыграть.
Ну, если у Staxisa еще остался запал на модернизации совы. ;)

Сейчас выложу в ex4 тестовый сов, индикаторы и сет к ним - можете попробовать сами. А для Staxisa
исходники вызовов и логику - может захочет поэкспериментировать :d

Сов конечно совсем другой, но параметры думаю будут вам понятны. Из индикаторов используются
Квантум, PFE и RSI, а остальные должны быть OFF, т.к. их сигналы ЕА не обрабатывает.
Ceт для EurUSD, M5, у меня начальный депозит был 500$, спред 13.
Период проверки 5 Минут (M5) 2016.02.01 00:05 - 2016.07.25 23:55 (2016.02.01 - 2016.07.26)
QLT_Stoch4Cmtf.ex4 - закинуть в советники, остальные два - индикаторы, ну и сет.

Коллеги, если не лениво будет, то сообщите о результате или проблемах с запуском ЕА, если возникнут.
Думаю, Staxis будет ориентироваться на ваши сообщения.

Для Staxisa: >):)

Спойлер


1. oбъявления

input  string  A23="Параметры Stoch4";
extern ENUM_TIMEFRAMES g_TF_minor = 0;

input int i_kp1 = 8,
i_dp1 = 3,
i_slw1 = 3; // Stochastic
input int i_kp2 = 8,
i_dp2 = 3,
i_slw2 = 3; // Stochastic
input int i_kp3 = 8,
i_dp3 = 3,
i_slw3 = 3; // Stochastic

input ENUM_MA_METHOD i_Mode_MA = MODE_SMA;
input int i_overB_lvl = 80;
input int i_overS_lvl = 20;
input bool Stoch3_On = FALSE;

input bool CCI_on = true;
input ENUM_TIMEFRAMES CCITimeFrame = 15;
input int CCIPeriods = 12;
input int CCItresh = 160;

input string A24="Параметры Pfe";
extern int i_PfePeriod = 5;
extern bool i_PfeUseAvarage = true;
extern int i_PfeMaPeriod = 5;
input ENUM_MA_METHOD i_PfeMODE_MA = MODE_EMA;
extern double i_PfeTresh = 0.5;
input bool i_Pfe_On = true;

input string A25="Параметры RSI4";
input bool i_RSI3_On = true;
extern ENUM_TIMEFRAMES g_tfRSI_minor = 0;
extern ENUM_TIMEFRAMES g_tfRSI_middle = 0;
extern ENUM_TIMEFRAMES g_tfRSI_major = 0;

input int i_RSIperiodMinor = 8; // RSI
input int i_RSIperiodMiddle = 8; // RSI
input int i_RSIperiodMajor = 8; // RSI

input int i_RSIoverB_Average_lvl = 80;
input int i_RSIoverS_Average_lvl = 20;

input bool i_RSIMinor_lvl_On = false;
input int i_RSIoverB_Minor_lvl = 80;
input int i_RSIoverS_Minor_lvl = 20;

input bool i_RSIMiddle_lvl_On = false;
input int i_RSIoverB_Middle_lvl = 80;
input int i_RSIoverS_Middle_lvl = 20;

input bool i_RSIMajor_lvl_On = false;
input int i_RSIoverB_Major_lvl = 80;
input int i_RSIoverS_Major_lvl = 20;

input bool i_RSICCI_on = false;
input int i_RSICCITimeFrame = 240;
input int i_RSICCIPeriods = 18;
input int i_RSICCItresh = 220;
input ENUM_APPLIED_PRICE i_RSICCI_PRICE = PRICE_TYPICAL;


2.вызовы
   // закроем все если сигнал Квантума возникает на экстремуме в том-же направлении бай - бай или селл-селл 
if (QLTcl_on) {
double SgQPclmin = iCustom(Symbol(), tf, "Quantum", Qnt_cl, 0, qSb); // minimum - close sell
double SgQPclmax = iCustom(Symbol(), tf, "Quantum", Qnt_cl, 1, qSb); // maximum - close buy
if (SgQPclmin > 0) SgQLT =-2; // close sell
if (SgQPclmax > 0) SgQLT = 2; // close buy
}

if (QLT_on) {
double SgQPmin = iCustom(Symbol(), tf, "Quantum", Qnt_op, 0, qSb); // buy minimum
double SgQPmax = iCustom(Symbol(), tf, "Quantum", Qnt_op, 1, qSb); // sell maximum
if (SgQPmin > 0) SgQLT = 1; // buy
if (SgQPmax > 0) SgQLT =-1; // sell
}

if (Stoch3_On) {
SgStoch3 = 0;
double SgStoch4dn = iCustom(Symbol(), tf, "Stoch4Cmtf", g_TF_minor, i_kp1, i_dp1, i_slw1, i_kp2, i_dp2, i_slw2,
i_kp3, i_dp3, i_slw3, i_Mode_MA, i_overB_lvl, i_overS_lvl,
CCI_on, CCITimeFrame, CCIPeriods, CCItresh, 4, 1);

double SgStoch4up = iCustom(Symbol(), tf, "Stoch4Cmtf", g_TF_minor, i_kp1, i_dp1, i_slw1, i_kp2, i_dp2, i_slw2,
i_kp3, i_dp3, i_slw3, i_Mode_MA, i_overB_lvl, i_overS_lvl,
CCI_on, CCITimeFrame, CCIPeriods, CCItresh, 5, 1);

if (SgStoch4up != EMPTY_VALUE) SgStoch3 = 1;
if (SgStoch4dn != EMPTY_VALUE) SgStoch3 =-1;
}

if (i_RSI3_On) {
SgRSI3 = 0;
double SgRSI4dn = iCustom(Symbol(), tf, "RSI4Cmtf", g_tfRSI_minor, g_tfRSI_middle, g_tfRSI_major,
i_RSIperiodMinor, i_RSIperiodMiddle, i_RSIperiodMajor,
i_RSIoverB_Average_lvl, i_RSIoverS_Average_lvl, i_RSIMinor_lvl_On, i_RSIoverB_Minor_lvl, i_RSIoverS_Minor_lvl,
i_RSIMiddle_lvl_On, i_RSIoverB_Middle_lvl, i_RSIoverS_Middle_lvl, i_RSIMajor_lvl_On, i_RSIoverB_Major_lvl,
i_RSIoverS_Major_lvl, i_RSICCI_on, i_RSICCITimeFrame, i_RSICCIPeriods, i_RSICCItresh, i_RSICCI_PRICE, 4, 1);

double SgRSI4up = iCustom(Symbol(), tf, "RSI4Cmtf", g_tfRSI_minor, g_tfRSI_middle, g_tfRSI_major,
i_RSIperiodMinor, i_RSIperiodMiddle, i_RSIperiodMajor,
i_RSIoverB_Average_lvl, i_RSIoverS_Average_lvl, i_RSIMinor_lvl_On, i_RSIoverB_Minor_lvl, i_RSIoverS_Minor_lvl,
i_RSIMiddle_lvl_On, i_RSIoverB_Middle_lvl, i_RSIoverS_Middle_lvl, i_RSIMajor_lvl_On, i_RSIoverB_Major_lvl,
i_RSIoverS_Major_lvl, i_RSICCI_on, i_RSICCITimeFrame, i_RSICCIPeriods, i_RSICCItresh, i_RSICCI_PRICE, 5, 1);

if (SgRSI4up != EMPTY_VALUE) SgRSI3 = 1;
if (SgRSI4dn != EMPTY_VALUE) SgRSI3 =-1;
}


if (i_Pfe_On) {
double SgPfe1 = iCustom(Symbol(), 0, "Pfe", i_PfePeriod, i_PfeUseAvarage, i_PfeMaPeriod, i_PfeMODE_MA, 0, 1);
double SgPfe2 = iCustom(Symbol(), 0, "Pfe", i_PfePeriod, i_PfeUseAvarage, i_PfeMaPeriod, i_PfeMODE_MA, 0, 2);

if ((SgPfe1 >= i_PfeTresh) && (SgPfe2 if ((SgPfe == -1) && (SgPfe1 = i_PfeTresh)) SgPfe = 0; // отмена селл
//
if ((SgPfe1 -i_PfeTresh)) SgPfe = 1; // Pfe в перепроданности = бай
if ((SgPfe == 1) && (SgPfe1 > -i_PfeTresh) && (SgPfe2 }


3.Логика
   if ((SgRSI3 == 1) && (SgPfe == 1) && (SgQLT == 1)) { // покупка 

Signal = 1; // сигнал покупки
TrendDirection = 1; // запоминаем направление
TrendDirectionGV = TrendDirection; // присваиваем глобальной переменной значение бай
return;

} else if ((TrendDirection == 1) && (((SgPfe == -1) || (SgRSI3 == -1)) && ((SgQLT ==-1) || (SgQLT == 2)))) {
Signal = 2; // закроем покупку по любому встречному сигналу индикаторов
TrendDirection = 0; // направление торговли не определено
TrendDirectionGV = TrendDirection;
}

if ((SgRSI3 == -1) && (SgPfe == -1) && (SgQLT == -1)) { // ((SgQLT == -1) && (SgTDI == -1)) {

Signal = -1; // продажа
TrendDirection = -1;
TrendDirectionGV = TrendDirection;
return;

} else if ((TrendDirection ==-1) && (((SgPfe == 1)|| (SgRSI3 == 1)) && ((SgQLT == 1) || (SgQLT == -2)))) {

Signal =-2; // закроем продажи по встречному сигналу от любого индикатора
TrendDirection = 0;
TrendDirectionGV = TrendDirection;
}



Это предложение уже звучало от maxand в этой ветке /torgovye-sistemy/2/m1-quantum-londoninc-indikatornaya-setka-usrednitel-gbpusd-m1/10633/?do=findComment&comment=232086

Изменено 26 июля, 2016 пользователем Reisende-al

#3864


Коллеги, если не лениво будет, то сообщите о результате или проблемах с запуском ЕА, если возникнут.
Думаю, Staxis будет ориентироваться на ваши сообщения.

Для Staxisa: >):)

Спойлер


1. oбъявления

input  string  A23="Параметры Stoch4";
extern ENUM_TIMEFRAMES g_TF_minor = 0;

input int i_kp1 = 8,
i_dp1 = 3,
i_slw1 = 3; // Stochastic
input int i_kp2 = 8,
i_dp2 = 3,
i_slw2 = 3; // Stochastic
input int i_kp3 = 8,
i_dp3 = 3,
i_slw3 = 3; // Stochastic

input ENUM_MA_METHOD i_Mode_MA = MODE_SMA;
input int i_overB_lvl = 80;
input int i_overS_lvl = 20;
input bool Stoch3_On = FALSE;

input bool CCI_on = true;
input ENUM_TIMEFRAMES CCITimeFrame = 15;
input int CCIPeriods = 12;
input int CCItresh = 160;

input string A24="Параметры Pfe";
extern int i_PfePeriod = 5;
extern bool i_PfeUseAvarage = true;
extern int i_PfeMaPeriod = 5;
input ENUM_MA_METHOD i_PfeMODE_MA = MODE_EMA;
extern double i_PfeTresh = 0.5;
input bool i_Pfe_On = true;

input string A25="Параметры RSI4";
input bool i_RSI3_On = true;
extern ENUM_TIMEFRAMES g_tfRSI_minor = 0;
extern ENUM_TIMEFRAMES g_tfRSI_middle = 0;
extern ENUM_TIMEFRAMES g_tfRSI_major = 0;

input int i_RSIperiodMinor = 8; // RSI
input int i_RSIperiodMiddle = 8; // RSI
input int i_RSIperiodMajor = 8; // RSI

input int i_RSIoverB_Average_lvl = 80;
input int i_RSIoverS_Average_lvl = 20;

input bool i_RSIMinor_lvl_On = false;
input int i_RSIoverB_Minor_lvl = 80;
input int i_RSIoverS_Minor_lvl = 20;

input bool i_RSIMiddle_lvl_On = false;
input int i_RSIoverB_Middle_lvl = 80;
input int i_RSIoverS_Middle_lvl = 20;

input bool i_RSIMajor_lvl_On = false;
input int i_RSIoverB_Major_lvl = 80;
input int i_RSIoverS_Major_lvl = 20;

input bool i_RSICCI_on = false;
input int i_RSICCITimeFrame = 240;
input int i_RSICCIPeriods = 18;
input int i_RSICCItresh = 220;
input ENUM_APPLIED_PRICE i_RSICCI_PRICE = PRICE_TYPICAL;


2.вызовы
   // закроем все если сигнал Квантума возникает на экстремуме в том-же направлении бай - бай или селл-селл 
if (QLTcl_on) {
double SgQPclmin = iCustom(Symbol(), tf, "Quantum", Qnt_cl, 0, qSb); // minimum - close sell
double SgQPclmax = iCustom(Symbol(), tf, "Quantum", Qnt_cl, 1, qSb); // maximum - close buy
if (SgQPclmin > 0) SgQLT =-2; // close sell
if (SgQPclmax > 0) SgQLT = 2; // close buy
}

if (QLT_on) {
double SgQPmin = iCustom(Symbol(), tf, "Quantum", Qnt_op, 0, qSb); // buy minimum
double SgQPmax = iCustom(Symbol(), tf, "Quantum", Qnt_op, 1, qSb); // sell maximum
if (SgQPmin > 0) SgQLT = 1; // buy
if (SgQPmax > 0) SgQLT =-1; // sell
}

if (Stoch3_On) {
SgStoch3 = 0;
double SgStoch4dn = iCustom(Symbol(), tf, "Stoch4Cmtf", g_TF_minor, i_kp1, i_dp1, i_slw1, i_kp2, i_dp2, i_slw2,
i_kp3, i_dp3, i_slw3, i_Mode_MA, i_overB_lvl, i_overS_lvl,
CCI_on, CCITimeFrame, CCIPeriods, CCItresh, 4, 1);

double SgStoch4up = iCustom(Symbol(), tf, "Stoch4Cmtf", g_TF_minor, i_kp1, i_dp1, i_slw1, i_kp2, i_dp2, i_slw2,
i_kp3, i_dp3, i_slw3, i_Mode_MA, i_overB_lvl, i_overS_lvl,
CCI_on, CCITimeFrame, CCIPeriods, CCItresh, 5, 1);

if (SgStoch4up != EMPTY_VALUE) SgStoch3 = 1;
if (SgStoch4dn != EMPTY_VALUE) SgStoch3 =-1;
}

if (i_RSI3_On) {
SgRSI3 = 0;
double SgRSI4dn = iCustom(Symbol(), tf, "RSI4Cmtf", g_tfRSI_minor, g_tfRSI_middle, g_tfRSI_major,
i_RSIperiodMinor, i_RSIperiodMiddle, i_RSIperiodMajor,
i_RSIoverB_Average_lvl, i_RSIoverS_Average_lvl, i_RSIMinor_lvl_On, i_RSIoverB_Minor_lvl, i_RSIoverS_Minor_lvl,
i_RSIMiddle_lvl_On, i_RSIoverB_Middle_lvl, i_RSIoverS_Middle_lvl, i_RSIMajor_lvl_On, i_RSIoverB_Major_lvl,
i_RSIoverS_Major_lvl, i_RSICCI_on, i_RSICCITimeFrame, i_RSICCIPeriods, i_RSICCItresh, i_RSICCI_PRICE, 4, 1);

double SgRSI4up = iCustom(Symbol(), tf, "RSI4Cmtf", g_tfRSI_minor, g_tfRSI_middle, g_tfRSI_major,
i_RSIperiodMinor, i_RSIperiodMiddle, i_RSIperiodMajor,
i_RSIoverB_Average_lvl, i_RSIoverS_Average_lvl, i_RSIMinor_lvl_On, i_RSIoverB_Minor_lvl, i_RSIoverS_Minor_lvl,
i_RSIMiddle_lvl_On, i_RSIoverB_Middle_lvl, i_RSIoverS_Middle_lvl, i_RSIMajor_lvl_On, i_RSIoverB_Major_lvl,
i_RSIoverS_Major_lvl, i_RSICCI_on, i_RSICCITimeFrame, i_RSICCIPeriods, i_RSICCItresh, i_RSICCI_PRICE, 5, 1);

if (SgRSI4up != EMPTY_VALUE) SgRSI3 = 1;
if (SgRSI4dn != EMPTY_VALUE) SgRSI3 =-1;
}


if (i_Pfe_On) {
double SgPfe1 = iCustom(Symbol(), 0, "Pfe", i_PfePeriod, i_PfeUseAvarage, i_PfeMaPeriod, i_PfeMODE_MA, 0, 1);
double SgPfe2 = iCustom(Symbol(), 0, "Pfe", i_PfePeriod, i_PfeUseAvarage, i_PfeMaPeriod, i_PfeMODE_MA, 0, 2);

if ((SgPfe1 >= i_PfeTresh) && (SgPfe2 if ((SgPfe == -1) && (SgPfe1 = i_PfeTresh)) SgPfe = 0; // отмена селл
//
if ((SgPfe1 -i_PfeTresh)) SgPfe = 1; // Pfe в перепроданности = бай
if ((SgPfe == 1) && (SgPfe1 > -i_PfeTresh) && (SgPfe2 }


3.Логика
   if ((SgRSI3 == 1) && (SgPfe == 1) && (SgQLT == 1)) { // покупка 

Signal = 1; // сигнал покупки
TrendDirection = 1; // запоминаем направление
TrendDirectionGV = TrendDirection; // присваиваем глобальной переменной значение бай
return;

} else if ((TrendDirection == 1) && (((SgPfe == -1) || (SgRSI3 == -1)) && ((SgQLT ==-1) || (SgQLT == 2)))) {
Signal = 2; // закроем покупку по любому встречному сигналу индикаторов
TrendDirection = 0; // направление торговли не определено
TrendDirectionGV = TrendDirection;
}

if ((SgRSI3 == -1) && (SgPfe == -1) && (SgQLT == -1)) { // ((SgQLT == -1) && (SgTDI == -1)) {

Signal = -1; // продажа
TrendDirection = -1;
TrendDirectionGV = TrendDirection;
return;

} else if ((TrendDirection ==-1) && (((SgPfe == 1)|| (SgRSI3 == 1)) && ((SgQLT == 1) || (SgQLT == -2)))) {

Signal =-2; // закроем продажи по встречному сигналу от любого индикатора
TrendDirection = 0;
TrendDirectionGV = TrendDirection;
}



Привет Genry_05!
Совсем даже не лениво.
Все запускается и тестируется.
Результаты на Дукасах как и у тебя.
Я сейчас работаю с канальными индюками.
Где-то мы что-то не дорабатываем, с моей точки зрения.
Прикрепляю прогон твоего сета.

Тест.jpg

Изменено 26 июля, 2016 пользователем Vassiliy

#3865


Это предложение уже звучало от maxand в этой ветке /torgovye-sistemy/2/m1-quantum-londoninc-indikatornaya-setka-usrednitel-gbpusd-m1/10633/?do=findComment&comment=232086



Спасибо, Reisende-al !
Я появился на форуме в октябре и не видел этого сентябрьского сообщения >:d
Добавлено: 26-07-2016 14:21:34


Привет Genry_05! Совсем даже не лениво. Все запускается и тестируется.
Результаты на Дукасах как и у тебя.

Я сейчас работаю с канальными индюками. Где-то мы что-то не дорабатываем, с моей точки зрения.
Прикрепляю прогон твоего сета.



Спасибо, Дружище! Оперативность радует :) Тем более что тест прошел со стартовым депо в 300$
Но максимальная просадка 2012$, значит для этого сета центов надо иметь за 3500 для спокойного
сна на очередном брэХсите. :d

Если будут мысли по каналам - пиши. Я нет-нет да заскакиваю в тему и читаю.

Но концептуально прорабатываю совсем иной подход к определению направления торговли -
все по старшим ТФ, сигналы которых нисходят к рабочему ТФ.

Добавлено: 26-07-2016 15:31:54


Подсажите, плиз, в сете включен Stochastic на вход и я пытаюсь наблюдать визуализацию на графике. Считается что фильтр Stochastic одобряет сигнал на BUY когда основная линия %K уходит под заданную линию 30%,... а положение/пересечение дополнительной линии %D стохастика при этом имеет какое то значение?



В коде вызов стохастика прописан так:
Stochastic_op_cl = iStochastic(NULL,Stochastic_tf,Stochastic_K_cl, Stochastic_D_cl, Stochastic_S_cl, MODE_SMA, 0, MODE_MAIN,1);

Смотрим описание в справке по mql:
mode [in] Индекс линии индикатора (0 - MODE_MAIN, 1 - MODE_SIGNAL).

Значит в советнике считывается и используется значение только основной линии.

Изменено 26 июля, 2016 пользователем Genry_05

#3866

Спасибо, Genry_05! Ощущается эффект от возвращения опытного товарища

#3867


Спасибо, Genry_05! Ощущается эффект от возвращения опытного товарища



Это не возвращение, пока заскочил проездом >:dсетке-усреднителю напрямую не стыкуются, но это еще впереди :)

Вот только пока один Vassiliy дал результаты тестирования Квантума+PFE+мтфRSI,
хотелось бы увидеть еще результаты, а то Staxisy и анализировать будет нечего ;)
Модель уже скачали 25 трейдеров, а результат выложил только Василий ... ну
и где брать Staxisy мотивацию для коллективной работы??? :-? ... у меня это уже 4 месяца
работает, Staxis в своей сове тоже за 5 минут организует, а остальным наверно не надо :-W

Изменено 27 июля, 2016 пользователем Genry_05

#3868

Уважаемый Genry_05, добрый день.
Готов протестировать и оптимизировать (соответственно и выложить сеты) Вашу стратегию с качеством 99.90%.Какие параметы в первую очередь надо оптимизировать?
C важением.


Добавлено: 27-07-2016 12:42:00

Забыл добавить, тикстори лайт лицензионный и оптимизация может проходить 24*7.

Изменено 27 июля, 2016 пользователем nairi88

#3869


Уважаемый Genry_05, добрый день.
Готов протестировать и оптимизировать (соответственно и выложить сеты) Вашу стратегию с качеством 99.90%.Какие параметы в первую очередь надо оптимизировать?
C уважением.



Спасибо, nairi88!
Собственно чего-то особенного делать не надо. Цель тестирования - набрать статистики на
разных ТФ и инструментах. Я проверил только М5 евро, на м1 тоже проходит. Если и другие
пары порадуют, то это может подвигнет Staxisa на очередной подвиг - модификацию ЕА.

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

Я не помню были ли включены параметры в предыдущем сете, но я его запомнил еще раз
из тестера. Правда параметры RSI не отмечены, только Quantum, PFE , SL - наверно это был
уже второй подбор параметров после RSI. Так что поле для эксперимента есть :d

eurusd_m5_pfe_#115.set49 скач.

Изменено 27 июля, 2016 пользователем Genry_05

#3871


Спойлер

Привет, Коллеги! День добрый, Staxis :)

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

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

1. периодически мы приходим к простому выводу: для тренда и флета в советнике должны работать разные алгоритмы входа в рынок. Когда идет тренд и входить надо по тренду, беря во внимание
трендовые сигналы Квантума после коррекции. При наличии тренда осцилляторы залипают и врут,
поэтому полезны мало . В это время актуальны сигналы MACD, EMA и т.п. А для Квантума на м1\м5
актуальна большая глубина поиска экстремумов, например 1500.

2. Когда на рынке флет - приходит время осцилляторов и рулят стохастики, ССI, RSI и иже с ними.
Меняется и стратегия торговли: Квантум короткий - глубину можно даже 15-20 ставить, в зависимости
от волатильности, и чем больше контртрендовых сигналов - тем выше доходность.

Так как доверенного механизма определения состояния рынка - флет или тренд в советнике нет, мы
в основном торгуем как на флете, а от разрушающих в таком режиме трендов защищаемся пропуском сигналов, каналами на фибках и атр и т.п. Они конечно выручают, но не всегда - тогда ЕА льет.

На форуме Сетки, кажется с подачи maxand, пробуют использовать ADX как селектор
тренда\флета и с уважением относятся к нашим (и своим) каналам, но тоже находятся в поиске решения.

Почему я решил это написать? Занимаясь своими делами открыл тестер, а в нем остался мой тестовый
ЕА на котором я проверял разные индикаторы. Последними были PFE и мтфRSI и мтфCтох о которых я
писал и которые закачал сюда. Они конечно тренд\флет не определяли, но давали сигнал когда
на 3-х ТФ стох или RSI находились в зонах перекупленности\перепроданности, что было отмашкой
для начала построения сетки.

Пробовал я все это, кажется, в апреле-мае и поэтому было интересно запустить сова со старыми
параметрами через летние скачки и английский брексит. :) По результатам прогона на Евро М5
сов не слил, а даже заработал. Так что идею эту можно достать из нафталина и попробовать обыграть.
Ну, если у Staxisa еще остался запал на модернизации совы. ;)

Сейчас выложу в ex4 тестовый сов, индикаторы и сет к ним - можете попробовать сами. А для Staxisa
исходники вызовов и логику - может захочет поэкспериментировать :d
По любому тестирующие получат в свое распоряжение сеты для собственной торговли :)
В модели нет никаких ограничений по времени работы или привязок к счетам, это просто
рабочая лошадка для тестирования разных идей.

Сов конечно совсем другой, но параметры думаю будут вам понятны. Из индикаторов используются
Квантум, PFE и RSI, а остальные должны быть OFF, т.к. их сигналы ЕА не обрабатывает.
Ceт для EurUSD, M5, у меня начальный депозит был 500$, спред 13.
Период проверки 5 Минут (M5) 2016.02.01 00:05 - 2016.07.25 23:55 (2016.02.01 - 2016.07.26)
QLT_Stoch4Cmtf.ex4 - закинуть в советники, остальные два - индикаторы, ну и сет.

Коллеги, если не лениво будет, то сообщите о результате или проблемах с запуском ЕА, если возникнут.
Думаю, Staxis будет ориентироваться на ваши сообщения.

Для Staxisa: >):)

Спойлер


1. oбъявления

input  string  A23="Параметры Stoch4";
extern ENUM_TIMEFRAMES g_TF_minor = 0;

input int i_kp1 = 8,
i_dp1 = 3,
i_slw1 = 3; // Stochastic
input int i_kp2 = 8,
i_dp2 = 3,
i_slw2 = 3; // Stochastic
input int i_kp3 = 8,
i_dp3 = 3,
i_slw3 = 3; // Stochastic

input ENUM_MA_METHOD i_Mode_MA = MODE_SMA;
input int i_overB_lvl = 80;
input int i_overS_lvl = 20;
input bool Stoch3_On = FALSE;

input bool CCI_on = true;
input ENUM_TIMEFRAMES CCITimeFrame = 15;
input int CCIPeriods = 12;
input int CCItresh = 160;

input string A24="Параметры Pfe";
extern int i_PfePeriod = 5;
extern bool i_PfeUseAvarage = true;
extern int i_PfeMaPeriod = 5;
input ENUM_MA_METHOD i_PfeMODE_MA = MODE_EMA;
extern double i_PfeTresh = 0.5;
input bool i_Pfe_On = true;

input string A25="Параметры RSI4";
input bool i_RSI3_On = true;
extern ENUM_TIMEFRAMES g_tfRSI_minor = 0;
extern ENUM_TIMEFRAMES g_tfRSI_middle = 0;
extern ENUM_TIMEFRAMES g_tfRSI_major = 0;

input int i_RSIperiodMinor = 8; // RSI
input int i_RSIperiodMiddle = 8; // RSI
input int i_RSIperiodMajor = 8; // RSI

input int i_RSIoverB_Average_lvl = 80;
input int i_RSIoverS_Average_lvl = 20;

input bool i_RSIMinor_lvl_On = false;
input int i_RSIoverB_Minor_lvl = 80;
input int i_RSIoverS_Minor_lvl = 20;

input bool i_RSIMiddle_lvl_On = false;
input int i_RSIoverB_Middle_lvl = 80;
input int i_RSIoverS_Middle_lvl = 20;

input bool i_RSIMajor_lvl_On = false;
input int i_RSIoverB_Major_lvl = 80;
input int i_RSIoverS_Major_lvl = 20;

input bool i_RSICCI_on = false;
input int i_RSICCITimeFrame = 240;
input int i_RSICCIPeriods = 18;
input int i_RSICCItresh = 220;
input ENUM_APPLIED_PRICE i_RSICCI_PRICE = PRICE_TYPICAL;


2.вызовы
   // закроем все, если сигнал Квантума возникает на экстремуме в том-же направлении бай - бай или селл-селл 
if (QLTcl_on) {
double SgQPclmin = iCustom(Symbol(), tf, "Quantum", Qnt_cl, 0, qSb); // minimum - close sell
double SgQPclmax = iCustom(Symbol(), tf, "Quantum", Qnt_cl, 1, qSb); // maximum - close buy
if (SgQPclmin > 0) SgQLT =-2; // close sell
if (SgQPclmax > 0) SgQLT = 2; // close buy
}

if (QLT_on) {
double SgQPmin = iCustom(Symbol(), tf, "Quantum", Qnt_op, 0, qSb); // buy minimum
double SgQPmax = iCustom(Symbol(), tf, "Quantum", Qnt_op, 1, qSb); // sell maximum
if (SgQPmin > 0) SgQLT = 1; // buy
if (SgQPmax > 0) SgQLT =-1; // sell
}

if (Stoch3_On) {
SgStoch3 = 0;
double SgStoch4dn = iCustom(Symbol(), tf, "Stoch4Cmtf", g_TF_minor, i_kp1, i_dp1, i_slw1, i_kp2, i_dp2, i_slw2,
i_kp3, i_dp3, i_slw3, i_Mode_MA, i_overB_lvl, i_overS_lvl,
CCI_on, CCITimeFrame, CCIPeriods, CCItresh, 4, 1);

double SgStoch4up = iCustom(Symbol(), tf, "Stoch4Cmtf", g_TF_minor, i_kp1, i_dp1, i_slw1, i_kp2, i_dp2, i_slw2,
i_kp3, i_dp3, i_slw3, i_Mode_MA, i_overB_lvl, i_overS_lvl,
CCI_on, CCITimeFrame, CCIPeriods, CCItresh, 5, 1);

if (SgStoch4up != EMPTY_VALUE) SgStoch3 = 1;
if (SgStoch4dn != EMPTY_VALUE) SgStoch3 =-1;
}

if (i_RSI3_On) {
SgRSI3 = 0;
double SgRSI4dn = iCustom(Symbol(), tf, "RSI4Cmtf", g_tfRSI_minor, g_tfRSI_middle, g_tfRSI_major,
i_RSIperiodMinor, i_RSIperiodMiddle, i_RSIperiodMajor,
i_RSIoverB_Average_lvl, i_RSIoverS_Average_lvl, i_RSIMinor_lvl_On, i_RSIoverB_Minor_lvl, i_RSIoverS_Minor_lvl,
i_RSIMiddle_lvl_On, i_RSIoverB_Middle_lvl, i_RSIoverS_Middle_lvl, i_RSIMajor_lvl_On, i_RSIoverB_Major_lvl,
i_RSIoverS_Major_lvl, i_RSICCI_on, i_RSICCITimeFrame, i_RSICCIPeriods, i_RSICCItresh, i_RSICCI_PRICE, 4, 1);

double SgRSI4up = iCustom(Symbol(), tf, "RSI4Cmtf", g_tfRSI_minor, g_tfRSI_middle, g_tfRSI_major,
i_RSIperiodMinor, i_RSIperiodMiddle, i_RSIperiodMajor,
i_RSIoverB_Average_lvl, i_RSIoverS_Average_lvl, i_RSIMinor_lvl_On, i_RSIoverB_Minor_lvl, i_RSIoverS_Minor_lvl,
i_RSIMiddle_lvl_On, i_RSIoverB_Middle_lvl, i_RSIoverS_Middle_lvl, i_RSIMajor_lvl_On, i_RSIoverB_Major_lvl,
i_RSIoverS_Major_lvl, i_RSICCI_on, i_RSICCITimeFrame, i_RSICCIPeriods, i_RSICCItresh, i_RSICCI_PRICE, 5, 1);

if (SgRSI4up != EMPTY_VALUE) SgRSI3 = 1;
if (SgRSI4dn != EMPTY_VALUE) SgRSI3 =-1;
}


if (i_Pfe_On) {
double SgPfe1 = iCustom(Symbol(), 0, "Pfe", i_PfePeriod, i_PfeUseAvarage, i_PfeMaPeriod, i_PfeMODE_MA, 0, 1);
double SgPfe2 = iCustom(Symbol(), 0, "Pfe", i_PfePeriod, i_PfeUseAvarage, i_PfeMaPeriod, i_PfeMODE_MA, 0, 2);

if ((SgPfe1 >= i_PfeTresh) && (SgPfe2 if ((SgPfe == -1) && (SgPfe1 = i_PfeTresh)) SgPfe = 0; // отмена селл
//
if ((SgPfe1 -i_PfeTresh)) SgPfe = 1; // Pfe в перепроданности = бай
if ((SgPfe == 1) && (SgPfe1 > -i_PfeTresh) && (SgPfe2 }


3.Логика
   if ((SgRSI3 == 1) && (SgPfe == 1) && (SgQLT == 1)) { // покупка 

Signal = 1; // сигнал покупки
TrendDirection = 1; // запоминаем направление
TrendDirectionGV = TrendDirection; // присваиваем глобальной переменной значение бай
return;

} else if ((TrendDirection == 1) && (((SgPfe == -1) || (SgRSI3 == -1)) && ((SgQLT ==-1) || (SgQLT == 2)))) {
Signal = 2; // закроем покупку по любому встречному сигналу индикаторов
TrendDirection = 0; // направление торговли не определено
TrendDirectionGV = TrendDirection;
}

if ((SgRSI3 == -1) && (SgPfe == -1) && (SgQLT == -1)) { // ((SgQLT == -1) && (SgTDI == -1)) {

Signal = -1; // продажа
TrendDirection = -1;
TrendDirectionGV = TrendDirection;
return;

} else if ((TrendDirection ==-1) && (((SgPfe == 1)|| (SgRSI3 == 1)) && ((SgQLT == 1) || (SgQLT == -2)))) {

Signal =-2; // закроем продажи по встречному сигналу от любого индикатора
TrendDirection = 0;
TrendDirectionGV = TrendDirection;
}



Привет, Genry! Рад, что зашел :)
Выскажу свою точку зрения.
Очень редкие идеи развития торговой системы (и советника, в частности) тонут в "полировке" имеющихся возможностей. Всё развитие свелось к обсуждению - в чём (пунктах, АТР, $) лучше считать TP, SL, TS.
Поэтому "зависла" попытка вставить в советник индикатор флета/тренда "35_MA_Squize...", хотя (по результатам работы в своём советнике) он дает положительные результаты, как и использование PFE.
За вопросами типа "Почему я покрасил стены, а они зеленые" (естественно, без конкретики) или предложениями "Давайте добавим значок, может будет лучше работать" идеи развития и теряются. :(
На текущем этапе лично мне хотелось бы (для продолжения развития советника) увидеть предложения по индикаторам флета/тренда. Желательно с картинками сравнения.
Что касается "безиндикаторного" (без обид - не мог отказать в себе в удовольствии цитирования v:) - цитата не от Genry) индикатора Quantum - лично у меня он не входит даже во вторую очередь по ценности.
#3872


Привет, Genry! Рад, что зашел :)
Выскажу свою точку зрения.
Очень редкие идеи развития торговой системы (и советника, в частности) тонут в "полировке" имеющихся возможностей. Всё развитие свелось к обсуждению - в чём (пунктах, АТР, $) лучше считать TP, SL, TS.
Поэтому "зависла" попытка вставить в советник индикатор флета/тренда "35_MA_Squize...", хотя (по результатам работы в своём советнике) он дает положительные результаты, как и использование PFE.
....


Привет! :)
Я тоже думал что мое отсутствие заполнится свежими идеями. Перед уходом как раз в полемику
вступали разные достойные люди. Ну, думаю, надо свалить и дать возможность новым мыслям,
без оглядки на старые авторитеты, пробивать дорогу в жизнь :))
Правда я время потратил с пользой :d

Про весеннюю модель на мтф индикаторах я рассказал, сработала зараза нормально на брексите.
Думаю, может захочешь прикрутить куда, если народ ее покрутит и найдет полезной.

А осенью может чего дельного добавлю - сейчас пока рою в глубину, копаю =))
#3873



Спойлер

Привет, Коллеги! День добрый, Staxis :)

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

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

1. периодически мы приходим к простому выводу: для тренда и флета в советнике должны работать разные алгоритмы входа в рынок. Когда идет тренд и входить надо по тренду, беря во внимание
трендовые сигналы Квантума после коррекции. При наличии тренда осцилляторы залипают и врут,
поэтому полезны мало . В это время актуальны сигналы MACD, EMA и т.п. А для Квантума на м1м5
актуальна большая глубина поиска экстремумов, например 1500.

2. Когда на рынке флет - приходит время осцилляторов и рулят стохастики, ССI, RSI и иже с ними.
Меняется и стратегия торговли: Квантум короткий - глубину можно даже 15-20 ставить, в зависимости
от волатильности, и чем больше контртрендовых сигналов - тем выше доходность.

Так как доверенного механизма определения состояния рынка - флет или тренд в советнике нет, мы
в основном торгуем как на флете, а от разрушающих в таком режиме трендов защищаемся пропуском сигналов, каналами на фибках и атр и т.п. Они конечно выручают, но не всегда - тогда ЕА льет.

На форуме Сетки, кажется с подачи maxand, пробуют использовать ADX как селектор
трендафлета и с уважением относятся к нашим (и своим) каналам, но тоже находятся в поиске решения.

Почему я решил это написать? Занимаясь своими делами открыл тестер, а в нем остался мой тестовый
ЕА на котором я проверял разные индикаторы. Последними были PFE и мтфRSI и мтфCтох о которых я
писал и которые закачал сюда. Они конечно трендфлет не определяли, но давали сигнал когда
на 3-х ТФ стох или RSI находились в зонах перекупленностиперепроданности, что было отмашкой
для начала построения сетки.

Пробовал я все это, кажется, в апреле-мае и поэтому было интересно запустить сова со старыми
параметрами через летние скачки и английский брексит. :) По результатам прогона на Евро М5
сов не слил, а даже заработал. Так что идею эту можно достать из нафталина и попробовать обыграть.
Ну, если у Staxisa еще остался запал на модернизации совы. ;)

Сейчас выложу в ex4 тестовый сов, индикаторы и сет к ним - можете попробовать сами. А для Staxisa
исходники вызовов и логику - может захочет поэкспериментировать :d
По любому тестирующие получат в свое распоряжение сеты для собственной торговли :)
В модели нет никаких ограничений по времени работы или привязок к счетам, это просто
рабочая лошадка для тестирования разных идей.

Сов конечно совсем другой, но параметры думаю будут вам понятны. Из индикаторов используются
Квантум, PFE и RSI, а остальные должны быть OFF, т.к. их сигналы ЕА не обрабатывает.
Ceт для EurUSD, M5, у меня начальный депозит был 500$, спред 13.
Период проверки 5 Минут (M5) 2016.02.01 00:05 - 2016.07.25 23:55 (2016.02.01 - 2016.07.26)
QLT_Stoch4Cmtf.ex4 - закинуть в советники, остальные два - индикаторы, ну и сет.

Коллеги, если не лениво будет, то сообщите о результате или проблемах с запуском ЕА, если возникнут.
Думаю, Staxis будет ориентироваться на ваши сообщения.

Для Staxisa: >):)

Спойлер


1. oбъявления

input  string  A23="Параметры Stoch4";
extern ENUM_TIMEFRAMES g_TF_minor = 0;

input int i_kp1 = 8,
i_dp1 = 3,
i_slw1 = 3; // Stochastic
input int i_kp2 = 8,
i_dp2 = 3,
i_slw2 = 3; // Stochastic
input int i_kp3 = 8,
i_dp3 = 3,
i_slw3 = 3; // Stochastic

input ENUM_MA_METHOD i_Mode_MA = MODE_SMA;
input int i_overB_lvl = 80;
input int i_overS_lvl = 20;
input bool Stoch3_On = FALSE;

input bool CCI_on = true;
input ENUM_TIMEFRAMES CCITimeFrame = 15;
input int CCIPeriods = 12;
input int CCItresh = 160;

input string A24="Параметры Pfe";
extern int i_PfePeriod = 5;
extern bool i_PfeUseAvarage = true;
extern int i_PfeMaPeriod = 5;
input ENUM_MA_METHOD i_PfeMODE_MA = MODE_EMA;
extern double i_PfeTresh = 0.5;
input bool i_Pfe_On = true;

input string A25="Параметры RSI4";
input bool i_RSI3_On = true;
extern ENUM_TIMEFRAMES g_tfRSI_minor = 0;
extern ENUM_TIMEFRAMES g_tfRSI_middle = 0;
extern ENUM_TIMEFRAMES g_tfRSI_major = 0;

input int i_RSIperiodMinor = 8; // RSI
input int i_RSIperiodMiddle = 8; // RSI
input int i_RSIperiodMajor = 8; // RSI

input int i_RSIoverB_Average_lvl = 80;
input int i_RSIoverS_Average_lvl = 20;

input bool i_RSIMinor_lvl_On = false;
input int i_RSIoverB_Minor_lvl = 80;
input int i_RSIoverS_Minor_lvl = 20;

input bool i_RSIMiddle_lvl_On = false;
input int i_RSIoverB_Middle_lvl = 80;
input int i_RSIoverS_Middle_lvl = 20;

input bool i_RSIMajor_lvl_On = false;
input int i_RSIoverB_Major_lvl = 80;
input int i_RSIoverS_Major_lvl = 20;

input bool i_RSICCI_on = false;
input int i_RSICCITimeFrame = 240;
input int i_RSICCIPeriods = 18;
input int i_RSICCItresh = 220;
input ENUM_APPLIED_PRICE i_RSICCI_PRICE = PRICE_TYPICAL;


2.вызовы
   // закроем все, если сигнал Квантума возникает на экстремуме в том-же направлении бай - бай или селл-селл 
if (QLTcl_on) {
double SgQPclmin = iCustom(Symbol(), tf, "Quantum", Qnt_cl, 0, qSb); // minimum - close sell
double SgQPclmax = iCustom(Symbol(), tf, "Quantum", Qnt_cl, 1, qSb); // maximum - close buy
if (SgQPclmin > 0) SgQLT =-2; // close sell
if (SgQPclmax > 0) SgQLT = 2; // close buy
}

if (QLT_on) {
double SgQPmin = iCustom(Symbol(), tf, "Quantum", Qnt_op, 0, qSb); // buy minimum
double SgQPmax = iCustom(Symbol(), tf, "Quantum", Qnt_op, 1, qSb); // sell maximum
if (SgQPmin > 0) SgQLT = 1; // buy
if (SgQPmax > 0) SgQLT =-1; // sell
}

if (Stoch3_On) {
SgStoch3 = 0;
double SgStoch4dn = iCustom(Symbol(), tf, "Stoch4Cmtf", g_TF_minor, i_kp1, i_dp1, i_slw1, i_kp2, i_dp2, i_slw2,
i_kp3, i_dp3, i_slw3, i_Mode_MA, i_overB_lvl, i_overS_lvl,
CCI_on, CCITimeFrame, CCIPeriods, CCItresh, 4, 1);

double SgStoch4up = iCustom(Symbol(), tf, "Stoch4Cmtf", g_TF_minor, i_kp1, i_dp1, i_slw1, i_kp2, i_dp2, i_slw2,
i_kp3, i_dp3, i_slw3, i_Mode_MA, i_overB_lvl, i_overS_lvl,
CCI_on, CCITimeFrame, CCIPeriods, CCItresh, 5, 1);

if (SgStoch4up != EMPTY_VALUE) SgStoch3 = 1;
if (SgStoch4dn != EMPTY_VALUE) SgStoch3 =-1;
}

if (i_RSI3_On) {
SgRSI3 = 0;
double SgRSI4dn = iCustom(Symbol(), tf, "RSI4Cmtf", g_tfRSI_minor, g_tfRSI_middle, g_tfRSI_major,
i_RSIperiodMinor, i_RSIperiodMiddle, i_RSIperiodMajor,
i_RSIoverB_Average_lvl, i_RSIoverS_Average_lvl, i_RSIMinor_lvl_On, i_RSIoverB_Minor_lvl, i_RSIoverS_Minor_lvl,
i_RSIMiddle_lvl_On, i_RSIoverB_Middle_lvl, i_RSIoverS_Middle_lvl, i_RSIMajor_lvl_On, i_RSIoverB_Major_lvl,
i_RSIoverS_Major_lvl, i_RSICCI_on, i_RSICCITimeFrame, i_RSICCIPeriods, i_RSICCItresh, i_RSICCI_PRICE, 4, 1);

double SgRSI4up = iCustom(Symbol(), tf, "RSI4Cmtf", g_tfRSI_minor, g_tfRSI_middle, g_tfRSI_major,
i_RSIperiodMinor, i_RSIperiodMiddle, i_RSIperiodMajor,
i_RSIoverB_Average_lvl, i_RSIoverS_Average_lvl, i_RSIMinor_lvl_On, i_RSIoverB_Minor_lvl, i_RSIoverS_Minor_lvl,
i_RSIMiddle_lvl_On, i_RSIoverB_Middle_lvl, i_RSIoverS_Middle_lvl, i_RSIMajor_lvl_On, i_RSIoverB_Major_lvl,
i_RSIoverS_Major_lvl, i_RSICCI_on, i_RSICCITimeFrame, i_RSICCIPeriods, i_RSICCItresh, i_RSICCI_PRICE, 5, 1);

if (SgRSI4up != EMPTY_VALUE) SgRSI3 = 1;
if (SgRSI4dn != EMPTY_VALUE) SgRSI3 =-1;
}


if (i_Pfe_On) {
double SgPfe1 = iCustom(Symbol(), 0, "Pfe", i_PfePeriod, i_PfeUseAvarage, i_PfeMaPeriod, i_PfeMODE_MA, 0, 1);
double SgPfe2 = iCustom(Symbol(), 0, "Pfe", i_PfePeriod, i_PfeUseAvarage, i_PfeMaPeriod, i_PfeMODE_MA, 0, 2);

if ((SgPfe1 >= i_PfeTresh) && (SgPfe2 if ((SgPfe == -1) && (SgPfe1 = i_PfeTresh)) SgPfe = 0; // отмена селл
//
if ((SgPfe1 -i_PfeTresh)) SgPfe = 1; // Pfe в перепроданности = бай
if ((SgPfe == 1) && (SgPfe1 > -i_PfeTresh) && (SgPfe2 }


3.Логика
   if ((SgRSI3 == 1) && (SgPfe == 1) && (SgQLT == 1)) { // покупка 

Signal = 1; // сигнал покупки
TrendDirection = 1; // запоминаем направление
TrendDirectionGV = TrendDirection; // присваиваем глобальной переменной значение бай
return;

} else if ((TrendDirection == 1) && (((SgPfe == -1) || (SgRSI3 == -1)) && ((SgQLT ==-1) || (SgQLT == 2)))) {
Signal = 2; // закроем покупку по любому встречному сигналу индикаторов
TrendDirection = 0; // направление торговли не определено
TrendDirectionGV = TrendDirection;
}

if ((SgRSI3 == -1) && (SgPfe == -1) && (SgQLT == -1)) { // ((SgQLT == -1) && (SgTDI == -1)) {

Signal = -1; // продажа
TrendDirection = -1;
TrendDirectionGV = TrendDirection;
return;

} else if ((TrendDirection ==-1) && (((SgPfe == 1)|| (SgRSI3 == 1)) && ((SgQLT == 1) || (SgQLT == -2)))) {

Signal =-2; // закроем продажи по встречному сигналу от любого индикатора
TrendDirection = 0;
TrendDirectionGV = TrendDirection;
}



Привет, Genry! Рад, что зашел :)
Выскажу свою точку зрения.
Очень редкие идеи развития торговой системы (и советника, в частности) тонут в "полировке" имеющихся возможностей. Всё развитие свелось к обсуждению - в чём (пунктах, АТР, $) лучше считать TP, SL, TS.
Поэтому "зависла" попытка вставить в советник индикатор флета/тренда "35_MA_Squize...", хотя (по результатам работы в своём советнике) он дает положительные результаты, как и использование PFE.
За вопросами типа "Почему я покрасил стены, а они зеленые" (естественно, без конкретики) или предложениями "Давайте добавим значок, может будет лучше работать" идеи развития и теряются. :(
На текущем этапе лично мне хотелось бы (для продолжения развития советника) увидеть предложения по индикаторам флета/тренда. Желательно с картинками сравнения.
Что касается "безиндикаторного" (без обид - не мог отказать в себе в удовольствии цитирования v:) - цитата не от Genry) индикатора Quantum - лично у меня он не входит даже во вторую очередь по ценности.

Да какие уж тут обиды то! От каждого по способностям - я своих не умаляю - но что касается трендовых индикаторов, то на это они не распространяются. Знаю Сов в данный момент вдоль и поперек - потому и приносил по возможности пользу как мог - в мелочах, извините))) Но зато куча из них к настоящему моменту подправлена. А относительно развития глобальных идей я свой голос высказывал, отдавая его не в пользу трендовых индикаторов, а за предложенную идею "Отложенный вход с накопленным объемом". Staxis, ты отреагировал, что принял ее к рассмотрению. ну что дальше то настаивать? Genry_05 также поддерживал ее.
#3874


... Знаю Сов в данный момент вдоль и поперек - потому и приносил по возможности пользу как мог - в мелочах, извините))) Но зато куча из них к настоящему моменту подправлена.



Да! Лично я эту работу видел - сделана на "отлично". По результатам Вашего тестирования Staxis
убрал разные бяки и это здорово!


...А относительно развития глобальных идей я свой голос высказывал, отдавая его не в пользу
трендовых индикаторов, а за предложенную идею "Отложенный вход с накопленным объемом".



Вот здесь ситуация такая: есть гвоздь в подошве и разные варианты решения
1. привыкнуть
2. сунуть стельку потолще
3. загнуть гвоздь
4. наклеить на ногу пластырь
5. выдернуть его

Гвоздь - это Квантум. Вход с отложенным объемом - это либо 2, либо 3. Несомненно, "отложенный
объем" - это решение, но при условии что мы оставляем гвоздь.

Лично я больше на Квантум время тратить не хочу и у Staxisa оптимизма в этом направлении
мало.



Staxis, ты отреагировал, что принял ее к рассмотрению. ну что дальше то настаивать?
Genry_05 также поддерживал ее.


Как уже говорил - для текущей ситуации это решение, главное потом не клеить пластырь >:d
#3875

Нi
На этот раз не все коту масленица - на моем сете не обошлось без усреднений.
Васин сет отключил перед ФОМС. Включу завтра...
п.с. Че то я вообще безнадежно отстал и потерялся что вы там новенького нагородили в последних версиях...
Торгую по-прежнему м13-6-60
Всем профитов \M/

2016-07-27_23-49-01.png
2016-07-27_22-20-09_2.png
2016-07-27_22-21-22.png
2016-07-27_23-54-10.png

Изменено 28 июля, 2016 пользователем slos

#3876

дОБРОЕ УТРО.
Выкладываю первую оптимизацию советника QLT_Stoch4Cmtf, предложенного Генри. Альпари. EURUSD_M5 Счет демо. Спред 20. Результаты теста и сет прилагаю. Жду замечаний и рекомендаций.

EURUSD_M5_QLT_sTOCH4C.set48 скач.
Тест_страт_2016-07-28_115051.png

#3877


дОБРОЕ УТРО.
Выкладываю первую оптимизацию советника QLT_Stoch4Cmtf, предложенного Генри. Альпари. EURUSD_M5 Счет демо. Спред 20. Результаты теста и сет прилагаю. Жду замечаний и рекомендаций.



Спасибо, nairi88!
Только необходимо сразу уточнить:
1. Советник по торговле Квантумом в этой ветке сейчас один
"Quantum London Trading EA v1.6.1 m13-7-32[staxis].mq4" - текущая версия.

2. Вариант ЕА который я закачал - это модель торговли с использованием мтф-индикаторов (Stoch и
RSI c фильтром CCI), которые используют три периода и среднюю к ним. Когда средняя линия трех
периодов оказывается в зоне перекупленности или перепроданности сигналы Квантума принимаются к исполнению, а иначе игнорируются.

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

Если Staxis решит что овчинка стоит выделки - он добавит эти индюки в основной сов.
-----------

Теперь о результатах:
До начала тестирования имеет смысл определиться с размером депозита. Лично я обычно тестирую
для долларовых счетов и депо выставляю: 300-500 иногда 1000$, для центовых как у Вас - 10 000.
Но Вы должны определиться с каким депо будете работать, так как просадка по счету 9678 почти
равна исходному депо. Такой результат на грани слива принять сложно, хотя прибыль в 17 000 греет душу. ;)

Изменено 28 июля, 2016 пользователем Genry_05

#3878

Я как раз работаю с центовиками 50-300К депо, так что такая просадка - ок. Но у сета хромает и прибыльность - не дотягивает и до 10%/мес. Тот же последний сет Василия показывал лучшие результаты. Также обращает на себя внимание скачкообразность зарабатывания, что не есть хорошо.

#3879


Я как раз работаю с центовиками 50-300К депо, так что такая просадка - ок. Но у сета хромает и прибыльность - не дотягивает и до 10%/мес. Тот же последний сет Василия показывал лучшие результаты. Также обращает на себя внимание скачкообразность зарабатывания, что не есть хорошо.



Спасибо, Urytomsk!
Реплика: мы не тестируем сет который я для примера приложил к модели :d
Мы тестируем комбинацию индикаторов Quantum-PFE-mtfRSI, поэтому гоняем их настройки чтобы
получить параметры доходности, плавности кривой Эквити и т.д.

Цель теста - определить, надо Стахису прибавлять этот индюк к уже используемым или ну
его - он не внесет кардинальных изменений в торговлю ЕА.
Поэтому разные ТФ, инструменты только приветствуются :-C

Скачки профита - это те даты, где обычный сов сливал. Просто модель пережила эти просадки
и была получена бОльшая прибыль от сетки.
-----------------------------------------------------

Коллеги! Неужели только 3 трейдера из 49 скачавших данную модель нашли время и желание
поделиться собственным мнением? :-s

mtfRSI.png

Изменено 28 июля, 2016 пользователем Genry_05

#3880


Реплика: мы не тестируем сет который я для примера приложил к модели :d

Спойлер

Мы тестируем комбинацию индикаторов Quantum-PFE-mtfRSI, поэтому гоняем их настройки чтобы
получить параметры доходности, плавности кривой Эквити и т.д.

Цель теста - определить, надо Стахису прибавлять этот индюк к уже используемым или ну
его - он не внесет кардинальных изменений в торговлю ЕА.
Поэтому разные ТФ, инструменты только приветствуются :-C




Предварительные прогоны, чуда не показали. Соотношение просадки к прибыли 1к5 пара EurUsd, фиксированный ТП и СЛ, а так же лот, ТФ M1. Результаты, в рамках, обычного советника, если взять фильтра: один на высоком таймфрейме, другой на текущем.
Поставил на глубокую (большое количество параметров) оптимизацию. Машина работает 24x7
Время окончания прогона 359 часов ).
С возвращением Genry_05 =d>




Изменено 28 июля, 2016 пользователем alexei635

#3881


... Но у сета хромает и прибыльность - не дотягивает и до 10%/мес. ...




...Предварительные прогоны, чуда не показали. Соотношение просадки к прибыли 1к5 пара EurUsd, фиксированный ТП и СЛ, а так же лот, ТФ M1. Результаты, в рамках, обычного советника, если взять фильтра: один на высоком таймфрейме, другой на текущем...



Доходность... Здесь дело такое, алгоритм фильтра достаточно сильно "прикручивает" входы.
Случаев когда сигналы Квантума на заданном ТФ совпадают со входом осциллятора в зону перепроданности\перекупленности на трех ТФ (например на М5-Н1-Н4) гораздо меньше чем
просто сигналов Квантума на заданном ТФ.
Плюс алгоритма в том, что подобная ситуация практически всегда - реальный разворот цены. Если
найдем в процессе оптимизации приемлемое соотношение параметров осцилляторов и Квантума, то
получим менее сливной торговый вариант который можно встроит в основной советник.
Ну, а на нет - и советника нет ;)
#3882




Спойлер

Привет, Коллеги! День добрый, Staxis :)

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

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

1. периодически мы приходим к простому выводу: для тренда и флета в советнике должны работать разные алгоритмы входа в рынок. Когда идет тренд и входить надо по тренду, беря во внимание
трендовые сигналы Квантума после коррекции. При наличии тренда осцилляторы залипают и врут,
поэтому полезны мало . В это время актуальны сигналы MACD, EMA и т.п. А для Квантума на м1м5
актуальна большая глубина поиска экстремумов, например 1500.

2. Когда на рынке флет - приходит время осцилляторов и рулят стохастики, ССI, RSI и иже с ними.
Меняется и стратегия торговли: Квантум короткий - глубину можно даже 15-20 ставить, в зависимости
от волатильности, и чем больше контртрендовых сигналов - тем выше доходность.

Так как доверенного механизма определения состояния рынка - флет или тренд в советнике нет, мы
в основном торгуем как на флете, а от разрушающих в таком режиме трендов защищаемся пропуском сигналов, каналами на фибках и атр и т.п. Они конечно выручают, но не всегда - тогда ЕА льет.

На форуме Сетки, кажется с подачи maxand, пробуют использовать ADX как селектор
трендафлета и с уважением относятся к нашим (и своим) каналам, но тоже находятся в поиске решения.

Почему я решил это написать? Занимаясь своими делами открыл тестер, а в нем остался мой тестовый
ЕА на котором я проверял разные индикаторы. Последними были PFE и мтфRSI и мтфCтох о которых я
писал и которые закачал сюда. Они конечно трендфлет не определяли, но давали сигнал когда
на 3-х ТФ стох или RSI находились в зонах перекупленностиперепроданности, что было отмашкой
для начала построения сетки.

Пробовал я все это, кажется, в апреле-мае и поэтому было интересно запустить сова со старыми
параметрами через летние скачки и английский брексит. :) По результатам прогона на Евро М5
сов не слил, а даже заработал. Так что идею эту можно достать из нафталина и попробовать обыграть.
Ну, если у Staxisa еще остался запал на модернизации совы. ;)

Сейчас выложу в ex4 тестовый сов, индикаторы и сет к ним - можете попробовать сами. А для Staxisa
исходники вызовов и логику - может захочет поэкспериментировать :d
По любому тестирующие получат в свое распоряжение сеты для собственной торговли :)
В модели нет никаких ограничений по времени работы или привязок к счетам, это просто
рабочая лошадка для тестирования разных идей.

Сов конечно совсем другой, но параметры думаю будут вам понятны. Из индикаторов используются
Квантум, PFE и RSI, а остальные должны быть OFF, т.к. их сигналы ЕА не обрабатывает.
Ceт для EurUSD, M5, у меня начальный депозит был 500$, спред 13.
Период проверки 5 Минут (M5) 2016.02.01 00:05 - 2016.07.25 23:55 (2016.02.01 - 2016.07.26)
QLT_Stoch4Cmtf.ex4 - закинуть в советники, остальные два - индикаторы, ну и сет.

Коллеги, если не лениво будет, то сообщите о результате или проблемах с запуском ЕА, если возникнут.
Думаю, Staxis будет ориентироваться на ваши сообщения.

Для Staxisa: >):)

Спойлер


1. oбъявления

input  string  A23="Параметры Stoch4";
extern ENUM_TIMEFRAMES g_TF_minor = 0;

input int i_kp1 = 8,
i_dp1 = 3,
i_slw1 = 3; // Stochastic
input int i_kp2 = 8,
i_dp2 = 3,
i_slw2 = 3; // Stochastic
input int i_kp3 = 8,
i_dp3 = 3,
i_slw3 = 3; // Stochastic

input ENUM_MA_METHOD i_Mode_MA = MODE_SMA;
input int i_overB_lvl = 80;
input int i_overS_lvl = 20;
input bool Stoch3_On = FALSE;

input bool CCI_on = true;
input ENUM_TIMEFRAMES CCITimeFrame = 15;
input int CCIPeriods = 12;
input int CCItresh = 160;

input string A24="Параметры Pfe";
extern int i_PfePeriod = 5;
extern bool i_PfeUseAvarage = true;
extern int i_PfeMaPeriod = 5;
input ENUM_MA_METHOD i_PfeMODE_MA = MODE_EMA;
extern double i_PfeTresh = 0.5;
input bool i_Pfe_On = true;

input string A25="Параметры RSI4";
input bool i_RSI3_On = true;
extern ENUM_TIMEFRAMES g_tfRSI_minor = 0;
extern ENUM_TIMEFRAMES g_tfRSI_middle = 0;
extern ENUM_TIMEFRAMES g_tfRSI_major = 0;

input int i_RSIperiodMinor = 8; // RSI
input int i_RSIperiodMiddle = 8; // RSI
input int i_RSIperiodMajor = 8; // RSI

input int i_RSIoverB_Average_lvl = 80;
input int i_RSIoverS_Average_lvl = 20;

input bool i_RSIMinor_lvl_On = false;
input int i_RSIoverB_Minor_lvl = 80;
input int i_RSIoverS_Minor_lvl = 20;

input bool i_RSIMiddle_lvl_On = false;
input int i_RSIoverB_Middle_lvl = 80;
input int i_RSIoverS_Middle_lvl = 20;

input bool i_RSIMajor_lvl_On = false;
input int i_RSIoverB_Major_lvl = 80;
input int i_RSIoverS_Major_lvl = 20;

input bool i_RSICCI_on = false;
input int i_RSICCITimeFrame = 240;
input int i_RSICCIPeriods = 18;
input int i_RSICCItresh = 220;
input ENUM_APPLIED_PRICE i_RSICCI_PRICE = PRICE_TYPICAL;


2.вызовы
   // закроем все, если сигнал Квантума возникает на экстремуме в том-же направлении бай - бай или селл-селл 
if (QLTcl_on) {
double SgQPclmin = iCustom(Symbol(), tf, "Quantum", Qnt_cl, 0, qSb); // minimum - close sell
double SgQPclmax = iCustom(Symbol(), tf, "Quantum", Qnt_cl, 1, qSb); // maximum - close buy
if (SgQPclmin > 0) SgQLT =-2; // close sell
if (SgQPclmax > 0) SgQLT = 2; // close buy
}

if (QLT_on) {
double SgQPmin = iCustom(Symbol(), tf, "Quantum", Qnt_op, 0, qSb); // buy minimum
double SgQPmax = iCustom(Symbol(), tf, "Quantum", Qnt_op, 1, qSb); // sell maximum
if (SgQPmin > 0) SgQLT = 1; // buy
if (SgQPmax > 0) SgQLT =-1; // sell
}

if (Stoch3_On) {
SgStoch3 = 0;
double SgStoch4dn = iCustom(Symbol(), tf, "Stoch4Cmtf", g_TF_minor, i_kp1, i_dp1, i_slw1, i_kp2, i_dp2, i_slw2,
i_kp3, i_dp3, i_slw3, i_Mode_MA, i_overB_lvl, i_overS_lvl,
CCI_on, CCITimeFrame, CCIPeriods, CCItresh, 4, 1);

double SgStoch4up = iCustom(Symbol(), tf, "Stoch4Cmtf", g_TF_minor, i_kp1, i_dp1, i_slw1, i_kp2, i_dp2, i_slw2,
i_kp3, i_dp3, i_slw3, i_Mode_MA, i_overB_lvl, i_overS_lvl,
CCI_on, CCITimeFrame, CCIPeriods, CCItresh, 5, 1);

if (SgStoch4up != EMPTY_VALUE) SgStoch3 = 1;
if (SgStoch4dn != EMPTY_VALUE) SgStoch3 =-1;
}

if (i_RSI3_On) {
SgRSI3 = 0;
double SgRSI4dn = iCustom(Symbol(), tf, "RSI4Cmtf", g_tfRSI_minor, g_tfRSI_middle, g_tfRSI_major,
i_RSIperiodMinor, i_RSIperiodMiddle, i_RSIperiodMajor,
i_RSIoverB_Average_lvl, i_RSIoverS_Average_lvl, i_RSIMinor_lvl_On, i_RSIoverB_Minor_lvl, i_RSIoverS_Minor_lvl,
i_RSIMiddle_lvl_On, i_RSIoverB_Middle_lvl, i_RSIoverS_Middle_lvl, i_RSIMajor_lvl_On, i_RSIoverB_Major_lvl,
i_RSIoverS_Major_lvl, i_RSICCI_on, i_RSICCITimeFrame, i_RSICCIPeriods, i_RSICCItresh, i_RSICCI_PRICE, 4, 1);

double SgRSI4up = iCustom(Symbol(), tf, "RSI4Cmtf", g_tfRSI_minor, g_tfRSI_middle, g_tfRSI_major,
i_RSIperiodMinor, i_RSIperiodMiddle, i_RSIperiodMajor,
i_RSIoverB_Average_lvl, i_RSIoverS_Average_lvl, i_RSIMinor_lvl_On, i_RSIoverB_Minor_lvl, i_RSIoverS_Minor_lvl,
i_RSIMiddle_lvl_On, i_RSIoverB_Middle_lvl, i_RSIoverS_Middle_lvl, i_RSIMajor_lvl_On, i_RSIoverB_Major_lvl,
i_RSIoverS_Major_lvl, i_RSICCI_on, i_RSICCITimeFrame, i_RSICCIPeriods, i_RSICCItresh, i_RSICCI_PRICE, 5, 1);

if (SgRSI4up != EMPTY_VALUE) SgRSI3 = 1;
if (SgRSI4dn != EMPTY_VALUE) SgRSI3 =-1;
}


if (i_Pfe_On) {
double SgPfe1 = iCustom(Symbol(), 0, "Pfe", i_PfePeriod, i_PfeUseAvarage, i_PfeMaPeriod, i_PfeMODE_MA, 0, 1);
double SgPfe2 = iCustom(Symbol(), 0, "Pfe", i_PfePeriod, i_PfeUseAvarage, i_PfeMaPeriod, i_PfeMODE_MA, 0, 2);

if ((SgPfe1 >= i_PfeTresh) && (SgPfe2 if ((SgPfe == -1) && (SgPfe1 = i_PfeTresh)) SgPfe = 0; // отмена селл
//
if ((SgPfe1 -i_PfeTresh)) SgPfe = 1; // Pfe в перепроданности = бай
if ((SgPfe == 1) && (SgPfe1 > -i_PfeTresh) && (SgPfe2 }


3.Логика
   if ((SgRSI3 == 1) && (SgPfe == 1) && (SgQLT == 1)) { // покупка 

Signal = 1; // сигнал покупки
TrendDirection = 1; // запоминаем направление
TrendDirectionGV = TrendDirection; // присваиваем глобальной переменной значение бай
return;

} else if ((TrendDirection == 1) && (((SgPfe == -1) || (SgRSI3 == -1)) && ((SgQLT ==-1) || (SgQLT == 2)))) {
Signal = 2; // закроем покупку по любому встречному сигналу индикаторов
TrendDirection = 0; // направление торговли не определено
TrendDirectionGV = TrendDirection;
}

if ((SgRSI3 == -1) && (SgPfe == -1) && (SgQLT == -1)) { // ((SgQLT == -1) && (SgTDI == -1)) {

Signal = -1; // продажа
TrendDirection = -1;
TrendDirectionGV = TrendDirection;
return;

} else if ((TrendDirection ==-1) && (((SgPfe == 1)|| (SgRSI3 == 1)) && ((SgQLT == 1) || (SgQLT == -2)))) {

Signal =-2; // закроем продажи по встречному сигналу от любого индикатора
TrendDirection = 0;
TrendDirectionGV = TrendDirection;
}



Привет, Genry! Рад, что зашел :)
Выскажу свою точку зрения.
Очень редкие идеи развития торговой системы (и советника, в частности) тонут в "полировке" имеющихся возможностей. Всё развитие свелось к обсуждению - в чём (пунктах, АТР, $) лучше считать TP, SL, TS.
Поэтому "зависла" попытка вставить в советник индикатор флета/тренда "35_MA_Squize...", хотя (по результатам работы в своём советнике) он дает положительные результаты, как и использование PFE.
За вопросами типа "Почему я покрасил стены, а они зеленые" (естественно, без конкретики) или предложениями "Давайте добавим значок, может будет лучше работать" идеи развития и теряются. :(
На текущем этапе лично мне хотелось бы (для продолжения развития советника) увидеть предложения по индикаторам флета/тренда. Желательно с картинками сравнения.
Что касается "безиндикаторного" (без обид - не мог отказать в себе в удовольствии цитирования v:) - цитата не от Genry) индикатора Quantum - лично у меня он не входит даже во вторую очередь по ценности.

Да какие уж тут обиды то! От каждого по способностям - я своих не умаляю - но что касается трендовых индикаторов, то на это они не распространяются. Знаю Сов в данный момент вдоль и поперек - потому и приносил по возможности пользу как мог - в мелочах, извините))) Но зато куча из них к настоящему моменту подправлена. А относительно развития глобальных идей я свой голос высказывал, отдавая его не в пользу трендовых индикаторов, а за предложенную идею "Отложенный вход с накопленным объемом". Staxis, ты отреагировал, что принял ее к рассмотрению. ну что дальше то настаивать? Genry_05 также поддерживал ее.


Не агрессируй так сильно. Я очень ценю твой вклад в развитие советника. Особенно мне понравилась твоя (ну и моя, конечно :) ) работа над связкой TS и Close only in profit. Просто у меня такой стиль общения (на подсознательном уровне) ... надо, кстати, Фрейда почитать - что это значит... :-/
Что касается идей развития.
1. Включение в советник "флетового/трендового" индикатора (не путать с индикатором тренда: трендовый показывает направление тренда, а флетовый - состояние рынка [флет или тренд]) я проанализировал на собственном советнике. Я знаю логику его действия и порядок внедрения в советник.
2. Отложенный ордер с накоплением лотности. Я начал его рассматривать и писать код... Ступор... А когда входить в рынок? В оригинале предлагалось наращивать лотность по Квантуму и входить по другому индикатору. А зачем нам наращивать по Квантуму (или другим индикаторам), если у нас есть "хороший" индикатор для входа? Можно просто войти повышенным лотом и не париться с расчетами наращивания... Если 3 человека (включая меня) считают идею интересной - это не значит, что она принесет положительный результат после внедрения (тем более нормального алгоритма работы данной идеи в советнике пока нет...)


Протестировав в тестере, использую TS на реале. Линия рисуется, трал работает.
Хотелось бы еще оценить эффективность. Относительно тестера пару раз успевал заметить что отрабатывает ожидаемо хуже, т.к. закрывает не моментально: цена может пробить стоп и пробежать еще немного прежде чем закроет, чего тестер не учитывает.
Черт с ним с тестером, хотелось бы иметь возможность оценить эффективность трала относительно закрытия без трала! А как? Линия трала после его отработки исчезает. В итоге в Истории счета видим только цены закрытия по тралу. Staxis, есть ли возможность на графике оставлять какой то нестираемый ценовой маркер в момент выставления TS? чтобы была возможность потом сравнить с ним цену закрытия по тралу.


КОРРЕКЦИЯ СОВЕТНИКА
Просто добавлен маркер (стрелка) на уровне выставления TS.

Quantum_London_Trading_EA_v1.6.1_m13-7-321staxis.mq459 скач.
MQL4.ZIP66 скач.

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

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