Советники: Secwenta

 

Secwenta:

Для создания советника взят пример из учебника Code Base на сайте, в советник встроен указатель тренда на основе TD Sequential.mq4 James OBrien.

Author: Вячеслав

 

55 сделок - не повод для оптимизма. Хотя бы в 10 аз больше - можно говорить и о стабильности

 
dimeon:

55 сделок - не повод для оптимизма. Хотя бы в 10 аз больше - можно говорить и о стабильности

Зато он практически не сливает. Указатель тренда очень точный, а если если к нему добавить МАСД для сглаживания и сортировки сигналов указателя тренда, это вообще будет грааль. Только надо отрегулировать движок так, что бы отбирались сигналы указателя только те, которые попадают на точки экстремумов МАСД +-10%, точность определения тренда будет 100%. В сети есть Илан 1.6 в который введён МАСД и Секвента, топорно введён конечно, не так как надо, попробуйте как он работает

http://www.onix-trade.net/forum/index.php?showtopic=86325&pid=416023&st=45&#entry416023 думаю после этого оптимизма у Вас прибавится.

 
что значит "не сливает" ? а просадка ?
 

Илан и в Африке Илан, конструктивно и по пунктам разложу недостатки этого советника:

1) Слишком плохое качество моделирования и 22 ошибки рассогласования графиков

2) Взят маленький участок времени, тесты надо делать хотя бы на 3-годичной истории с качеством моделирования как минимум 90% и на разных брокерах

3) Судя по показаниям отчета тестера, средняя убыточная, а также самая большая убыточная сделки примерно в 2 раза больше по размерам чем прибыльные

4) Просадка относительная 16.24%, что при таком матожидании довольно большой считается и это явно не в пользу советника

Вывод могу сделать что данный советник можно использовать для теста или просто отладки стратегий мартиновских на демо, но на реал такой пускать - слишком опасно для депозита и большая вероятность слива!

 
dominiano:

Илан и в Африке Илан, конструктивно и по пунктам разложу недостатки этого советника:

1) Слишком плохое качество моделирования и 22 ошибки рассогласования графиков

2) Взят маленький участок времени, тесты надо делать хотя бы на 3-годичной истории с качеством моделирования как минимум 90% и на разных брокерах

3) Судя по показаниям отчета тестера, средняя убыточная, а также самая большая убыточная сделки примерно в 2 раза больше по размерам чем прибыльные

4) Просадка относительная 16.24%, что при таком матожидании довольно большой считается и это явно не в пользу советника

Вывод могу сделать что данный советник можно использовать для теста или просто отладки стратегий мартиновских на демо, но на реал такой пускать - слишком опасно для депозита и большая вероятность слива!

Это не Илан. Это Secwenta очень простенький советник, можно его назвать и демонстрационным. На этом участке модифицированный Илан дал бы выручку 1800 при 22 сделках и 100% прибыльность. Что касается тестирования советника, то я руководствуюсь в этом указаниями Ганна, беру ближайшие два минимума и максимум, или наоборот. Потом беру наугад любой месяц года и прогоняю советник. Если выдерживает - хороший. Так вот даже этот простенький советник после тестирования, при нормальном депо, спокойно проработатает любые 12 месяцев любого года. Только следите за логами, он за год тестирования сделает лог 4гб.
 
Если преследовать цель слить как можно больше и быстрей, то это то, что надо!
 
Avelox:
Только следите за логами, он за год тестирования сделает лог 4гб.

думаете это нормально? у вас вероятно некорректно отрабатывается Alert/Print и грузит в журнал на каждом тике.
 
sergeev:
Avelox:
Только следите за логами, он за год тестирования сделает лог 4гб.

думаете это нормально? у вас вероятно некорректно отрабатывается Alert/Print и грузит в журнал на каждом тике.

Я догадываюсь, что некорректно внедрил указатель тренда в советник, поэтому он такие логи пишет. С другой стороны этому советнику тестирование практически не нужно, хватит ближайшей недели для установления уровня Т.Р. Его вообще можно переделать так, что он будет открывать и закрывать ордера только от указателя тренда и в этом случае тестирование отпадает, а показатели торговли возрастут.
 
Avelox:
Я догадываюсь, что некорректно внедрил указатель тренда в советник, поэтому он такие логи пишет. С другой стороны этому советнику тестирование практически не нужно, хватит ближайшей недели для установления уровня Т.Р. Его вообще можно переделать так, что он будет открывать и закрывать ордера только от указателя тренда и в этом случае тестирование отпадает, а показатели торговли возрастут.
Неплохо было бы сделать Ваш индикатор тренда в виде функции и опубликовать здесь. Пригодилось бы всем, наверняка попробовали бы делать свои советники на его основе.
 
granit77:
Avelox:
Я догадываюсь, что некорректно внедрил указатель тренда в советник, поэтому он такие логи пишет. С другой стороны этому советнику тестирование практически не нужно, хватит ближайшей недели для установления уровня Т.Р. Его вообще можно переделать так, что он будет открывать и закрывать ордера только от указателя тренда и в этом случае тестирование отпадает, а показатели торговли возрастут.
Неплохо было бы сделать Ваш индикатор тренда в виде функции и опубликовать здесь. Пригодилось бы всем, наверняка попробовали бы делать свои советники на его основе.

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


//---- ВХОДНЫЕ ПАРАМЕТРЫ ИНДИКАТОРА в эксперте.
int i1;
int num=0;
int num1=0;
string textVar;
//---- индикаторные буферы

double ExtMapBuffer1;

//---- ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ ДЛЯ ВЫБОРА ГРАФИКА
string symbol; int timeframe;
//+------------------------------------------------------------------+


int init()
{
//---- ВЫБОР ГРАФИКА ДЛЯ РАСЧЁТА ИНДИКАТОРА
symbol = Symbol();//ИНИЦИАЛИЗАЦИЯ ПЕРЕМЕННОЙ symbol;
timeframe =0;//ИНИЦИАЛИЗАЦИЯ ПЕРЕМЕННОЙ timeframe;
//---- завершение инициализации


return(0);
}

int start()
{

//---- ЭМУЛЯЦИЯ ИНДИКАТОРНЫХ БУФЕРОВ
int IBARS = iBars(symbol, timeframe);
//---- Проверка на смену нулевого бара
if(ArraySize(ExtMapBuffer1) < IBARS)
{
//---- Установить прямое направление индексирования в массиве
ArraySetAsSeries(ExtMapBuffer1, false);
//---- Изменить размер эмулируемых индикаторных буферов
ArrayResize(ExtMapBuffer1, IBARS);
//---- Установить обратное направление индексирования в массиве
ArraySetAsSeries(ExtMapBuffer1, true);
}
//----+ ВВЕДЕНИЕ СТАТИЧЕСКОЙ ЦЕЛОЙ ПЕРЕМЕННОЙ ПАМЯТИ
static int IndCounted;

//----+ Введение целых переменных и получение уже посчитанных баров
int limit;
int counted_bars = IndCounted;


//----+ ЗАПОМИНАНИЕ КОЛИЧЕСТВА ВСЕХ БАРОВ ГРАФИКА
IndCounted = IBARS - 1;

//---- определение номера самого старого бара,
// начиная с которого будет произедён пересчёт новых баров
limit = IBARS - counted_bars - 1;

for(int i1=limit; i1>=0; i1--)
{
if(Close[i1+1]<Close[i1+5])num = num + 1;
else num = 0;

if (num == 9) {textVar = num;
ObjectCreate(""+i1, OBJ_TEXT, 0, Time[i1+1],Low[i1+1]-5*Point );
ObjectSetText(""+i1, ""+DoubleToStr(num,0), 16, "Arial", Red);}


if (num1 == 9) {textVar = num1;
ObjectCreate(""+i1, OBJ_TEXT, 0, Time[i1+1],High[i1+1]+10*Point );
ObjectSetText(""+i1, ""+DoubleToStr(num1,0), 16, "Arial", RoyalBlue); }
}


//основной код эксперта

//----
return(0);
}
}


По ходу дела, может быть исправите замечание sergeeva.

Причина обращения: