Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Знаете ли вы, что MQL5 является объектно-ориентированным языком?
MetaQuotes Software Corp.
Модератор
178234
MetaQuotes Software Corp. 2009.02.28 06:54 

Лесенко:

Мультивалютный эксперт, основанный на стратегии "лестница"

Author: Андрей

Aleksandr Brown
763
Aleksandr Brown 2009.03.04 20:45  



Ещё есть над чем поработать. А в принципе очень хорошая стратегия. И в MQL4 реализованно не плохо!
EURUSD,H1 с 6 января 2009 до 5 марта 2009 > Channel - 100: Profit - 24: CommonProfit - 72: Остальные переменные по умолчанию.

Комбинатор
15664
Комбинатор 2009.03.06 11:38  
brown-aleks писал(а):

Ещё есть над чем поработать. А в принципе очень хорошая стратегия. И в MQL4 реализованно не плохо!

Спасибо.

Еще несколько слов.

1. Рекомендации.

- При прогоне в тестере CommonProfit должен быть больше Profit.

- Profit должен быть больше Channel, иначе стратегия смысла имеет мало, несмотря на положительную картинку ниже.

Тестером отношение легко находится -- Profit/Channel должно быть от 1.5 до 2 - 2.5


2. Проблемы.

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

Как победить пока не знаю, за этим надо следить. Такая же проблема может произойти если есть ограничение по количеству открытых ордеров.

-- Если поставить 5-6 советников на 1 терминал -- при теперешнем количестве тиков в единицу времени -- реально местами виснет. Ну правда эта проблема легко решаема.


3. TODO.

- Вобщем сразу понятно, что советник не будет зарабатывать ночью, поэтому если есть возможность, его на ночь надо обрубать.

- Кроме того -- довольно интересное наблюдение -- советник сливает в пятницу.

- Сделать ограничение по максимальному лоту.

- Уменьшить жор процессора.

- Добавить проверку стоп-уровней, если ордер не выставляется, входить по рынку или просто ругаться.


Предложения, замечания принимаются.


Думаю такая картинка получше будет:


Это евробакс с июня 2008 года по сей день

Канал -- 150 старых пунктов Профит 230 Общий Профит 230. Риск 0.5%.

Aleksandr Brown
763
Aleksandr Brown 2009.03.06 14:26  
TheXpert писал(а):
-- Если поставить 5-6 советников на 1 терминал -- при теперешнем количестве тиков в единицу времени -- реально местами виснет. Ну правда эта проблема легко решаема.

Конечно притормаживать будет. Проблема в не посредственно в програмном коде эксперта. Нужно максимально упростить использование функций и как можно меньше использовать циклические операторы. Уж очень много лишних действий в алгоритме.

Комбинатор
15664
Комбинатор 2009.03.06 14:36  
brown-aleks писал(а):

Конечно притормаживать будет. Проблема в не посредственно в програмном коде эксперта. Нужно максимально упростить использование функций и как можно меньше использовать циклические операторы. Уж очень много лишних действий в алгоритме.

Они не лишние -- все сделано для максимальной робастности стратегии.

Т.е. сейчас она сделана так, что при временном отсутствии управления у советника при появлении оного советник определяет текущее состояние и работает как и должен.

Для уменьшения нагрузки достаточно вставить блок контроля баров и поставить его на минутки или пятиминутки. -- Все сразу станет классно.

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

Кроме того, это имхо единственно нормальный вариант, т.к. хранения тикетов -- это ЗЛО

Maksim Zerkalov
182
Maksim Zerkalov 2009.03.09 06:37  
TheXpert:

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

Кроме того, это имхо единственно нормальный вариант, т.к. хранения тикетов -- это ЗЛО

в функции старт перед вызовом Check() вставь:

if(Time[0] == prevtime)
{
return(0);
}
prevtime = Time[0];
if(!IsTradeAllowed())
{
prevtime = Time[1];
return(0);
}
предворительно опиши переменную int prevtime;
Комбинатор
15664
Комбинатор 2009.03.09 11:07  

zerkmax писал(а):

в функции старт перед вызовом Check() вставь:

Вставлю, в следующей версии. Постараюсь исправить все замеченные недостатки. Так что если есть еще что предложить -- предлагай.

MQL4 Comments
16309
MQL4 Comments 2009.03.17 09:51  

а мне нравятся люди, которые прогоняют советников с июня 2008)) для чуть более полного понимания ситуации начните с ноября 2007)) уверен советник сольет все)) а июнь 2008)) эх было же время

Комбинатор
15664
Комбинатор 2009.03.17 11:19  
Bump:

а мне нравятся люди, которые прогоняют советников с июня 2008)) для чуть более полного понимания ситуации начните с ноября 2007)) уверен советник сольет все)) а июнь 2008)) эх было же время

А мне не нравятся люди, которые лезут в дискуссию, даже не попытавшись разобраться. Хоть бы запустил тестер и убедился в правоте.

Картинка с июня 2007 года с теми же параметрами. На тестере эксперт чувствителен к качеству котировок, поэтому советую тестить на м1 на самой точной модели.


/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий