Скачать MetaTrader 5

Советники: Стратегия форекс Session Breakout

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Где найти программиста? В сервисе Фриланс!
MetaQuotes Software Corp.
Модератор
181169
MetaQuotes Software Corp. 2010.02.01 15:38 

Стратегия форекс Session Breakout:

Основан на пробое сессионных максимумов и минимумов на рынке форекс

Author: Uri

Victor Nikolaev
Модератор
14503
Victor Nikolaev 2010.02.02 05:48  

Достаточно добавить контроль на стоплевел при установке позиций для самой цены от текущей, и уровней стопов и тейков и советник начинает работать в тестере. Основная проблема - ошибка 130

Uri
207
Uri 2010.02.02 08:21  

Честно говоря, не понял про стоплевел... На практике практически всегда довольно приличный запас расстояния от цены до выставляемых ордеров.

Кстати только что пробовал прогнать советника в тестере - ОШИБКА 130, оказывается

"Уважаемые клиенты!

В связи с профилактикой торгового сервера, с 01.02.2010 минимальный лот для новых ордеров будет равен 0.1 лота, шаг останется прежним. Целью профилактики является стабилизация работы сервера при исключении большинства торговых ордеров, размером до 0.1 лота. Также, мы увеличиваем верхнюю границу размера ордера до 1000 лотов (10 стандартных лота).


Администрация
ДЦ "

Увеличил объем лота - ошибок НЕТ, но у меня проблема в том, что в тестере советник ИНОГДА открывает сразу "пачку" ордеров.

Вот пример....

476 2010.01.13 13:07 t/p 129 0.10 1.4560 1.4345 1.4560 14.50 4700.14
477 2010.01.13 13:07 t/p 151 0.10 1.4560 1.4345 1.4560 15.00 4715.14
478 2010.01.13 14:29 buy stop 182 0.10 1.4579 1.4379 1.4594 0.00 4715.14
479 2010.01.13 14:29 sell stop 183 0.10 1.4489 1.4689 1.4474 0.00 4715.14
480 2010.01.13 16:29 buy stop 184 0.10 1.4576 1.4376 1.4591 0.00 4715.14
481 2010.01.13 16:29 sell stop 185 0.10 1.4497 1.4697 1.4482 0.00 4715.14
482 2010.01.13 16:29 buy stop 186 0.10 1.4576 1.4376 1.4591 0.00 4715.14
483 2010.01.13 16:29 sell stop 187 0.10 1.4497 1.4697 1.4482 0.00 4715.14
484 2010.01.13 16:29 buy stop 188 0.10 1.4576 1.4376 1.4591 0.00 4715.14
485 2010.01.13 16:29 sell stop 189 0.10 1.4497 1.4697 1.4482 0.00 4715.14
486 2010.01.13 16:29 buy stop 190 0.10 1.4576 1.4376 1.4591 0.00 4715.14
487 2010.01.13 16:29 sell stop 191 0.10 1.4497 1.4697 1.4482 0.00 4715.14
488 2010.01.13 16:29 buy stop 192 0.10 1.4576 1.4376 1.4591 0.00 4715.14
489 2010.01.13 16:29 sell stop 193 0.10 1.4497 1.4697 1.4482 0.00 4715.14
490 2010.01.13 16:29 buy stop 194 0.10 1.4576 1.4376 1.4591 0.00 4715.14
491 2010.01.13 16:29 sell stop 195 0.10 1.4497 1.4697 1.4482 0.00 4715.14
492 2010.01.13 16:31 sell 185 0.10 1.4497 1.4697 1.4482 0.00 4715.14
493 2010.01.13 16:31 sell 187 0.10 1.4497 1.4697 1.4482 0.00 4715.14

В 14.29 открылся нормально, а в 16.29 "пачка" !?!?!?! (для теста я немного переделывал советника).

Victor Nikolaev
Модератор
14503
Victor Nikolaev 2010.02.02 08:33  
renoshnik:

Честно говоря, не понял про стоплевел... На практике практически всегда довольно приличный запас расстояния от цены до выставляемых ордеров.

Кстати только что пробовал прогнать советника в тестере - ОШИБКА 130, оказывается

"Уважаемые клиенты!

В связи с профилактикой торгового сервера, с 01.02.2010 минимальный лот для новых ордеров будет равен 0.1 лота, шаг останется прежним. Целью профилактики является стабилизация работы сервера при исключении большинства торговых ордеров, размером до 0.1 лота. Также, мы увеличиваем верхнюю границу размера ордера до 1000 лотов (10 стандартных лота).


Администрация
ДЦ "

Увеличил объем лота - ошибок НЕТ, но у меня проблема в том, что в тестере советник ИНОГДА открывает сразу "пачку" ордеров.

Вот пример....

476 2010.01.13 13:07 t/p 129 0.10 1.4560 1.4345 1.4560 14.50 4700.14
477 2010.01.13 13:07 t/p 151 0.10 1.4560 1.4345 1.4560 15.00 4715.14
478 2010.01.13 14:29 buy stop 182 0.10 1.4579 1.4379 1.4594 0.00 4715.14
479 2010.01.13 14:29 sell stop 183 0.10 1.4489 1.4689 1.4474 0.00 4715.14
480 2010.01.13 16:29 buy stop 184 0.10 1.4576 1.4376 1.4591 0.00 4715.14
481 2010.01.13 16:29 sell stop 185 0.10 1.4497 1.4697 1.4482 0.00 4715.14
482 2010.01.13 16:29 buy stop 186 0.10 1.4576 1.4376 1.4591 0.00 4715.14
483 2010.01.13 16:29 sell stop 187 0.10 1.4497 1.4697 1.4482 0.00 4715.14
484 2010.01.13 16:29 buy stop 188 0.10 1.4576 1.4376 1.4591 0.00 4715.14
485 2010.01.13 16:29 sell stop 189 0.10 1.4497 1.4697 1.4482 0.00 4715.14
486 2010.01.13 16:29 buy stop 190 0.10 1.4576 1.4376 1.4591 0.00 4715.14
487 2010.01.13 16:29 sell stop 191 0.10 1.4497 1.4697 1.4482 0.00 4715.14
488 2010.01.13 16:29 buy stop 192 0.10 1.4576 1.4376 1.4591 0.00 4715.14
489 2010.01.13 16:29 sell stop 193 0.10 1.4497 1.4697 1.4482 0.00 4715.14
490 2010.01.13 16:29 buy stop 194 0.10 1.4576 1.4376 1.4591 0.00 4715.14
491 2010.01.13 16:29 sell stop 195 0.10 1.4497 1.4697 1.4482 0.00 4715.14
492 2010.01.13 16:31 sell 185 0.10 1.4497 1.4697 1.4482 0.00 4715.14
493 2010.01.13 16:31 sell 187 0.10 1.4497 1.4697 1.4482 0.00 4715.14

В 14.29 открылся нормально, а в 16.29 "пачка" !?!?!?! (для теста я немного переделывал советника).

Отправил советника в личку

Виталий
113
Виталий 2010.02.02 17:25  

для расчета баров напиши: int XX_zone = 1440/Period();

1440 - количество минут в сутках.

К.О.

Uri
207
Uri 2010.02.02 19:34  
Vitalya_1983:

для расчета баров напиши: int XX_zone = 1440/Period();

1440 - количество минут в сутках.

К.О.


А что это даст ??? Ну получим количество баров в сутках для данного таймфрейма, а что дальше ???

int ХХ_zone = ХХ здесь задается "глубина" участка на котором определяем макс/мин для выставления стопордеров

Вот пример:

extern string block_01 = " АЗИАТСКАЯ сессия ";
extern int J_time = 729; // Время для анализа сессии часов и минут
extern int J_zone = 12; // Количество баров для расчета границ

J_time = 729 == когда серверное время покажет 07 часов 29 минут сработает этот блок и передаст управление дальше для определения параметров стопордеров.

программа начнет расчет от текущего момента возьмет двенадцать баров истории с учетом нулевого бара (J_zone = 12) это как раз участок до начала "азиатской"

сессии. И на этих 12 барах (для М30, если советник на М15 нужно ставить J_zone = 24, а время оставить тоже самое) найдет "хай" / "лоу"  и на этих значениях

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

Наглядно все будет видно если на график установить индикатор i-Sessions (на работу советника он не влияет)...

Uri
207
Uri 2010.02.02 22:56  

С 01.02.2010 года выключил советника т.к. ДЦ увеличил на ПОРЯДОК объем минимального ордера, сейчас жду как закроются ранее открытые позиции --- 

(Результат по балансу +595,40 и в работе еще четыре (открытых) ордера по ним на сегодня -229,80. (на сегодня 01.02.2010 в 15:12 просадка по открытым ордерам составляет -147.23))

по состоянию на сегодня 02.02.2010, 22:48 уже закрылось три позиции - сработал один стоповый ордер (+4.50) и пара ордеров это "локирование" (+20.40 и -19.80) = итого +4.65

в рынке остается еще три ордера = итог -53.86 один из этих ордеров уже должен быть локирован но в связи с изменениями в ДЦ просто дает просадку....

В результате пока имеем за месяц +600.05 и по открытым позициям -53.86

PapaYozh
3768
PapaYozh 2010.04.23 15:45  
renoshnik:

Увеличил объем лота - ошибок НЕТ, но у меня проблема в том, что в тестере советник ИНОГДА открывает сразу "пачку" ордеров.

Вот пример....

476 2010.01.13 13:07 t/p 129 0.10 1.4560 1.4345 1.4560 14.50 4700.14
477 2010.01.13 13:07 t/p 151 0.10 1.4560 1.4345 1.4560 15.00 4715.14
478 2010.01.13 14:29 buy stop 182 0.10 1.4579 1.4379 1.4594 0.00 4715.14
479 2010.01.13 14:29 sell stop 183 0.10 1.4489 1.4689 1.4474 0.00 4715.14
480 2010.01.13 16:29 buy stop 184 0.10 1.4576 1.4376 1.4591 0.00 4715.14
481 2010.01.13 16:29 sell stop 185 0.10 1.4497 1.4697 1.4482 0.00 4715.14
482 2010.01.13 16:29 buy stop 186 0.10 1.4576 1.4376 1.4591 0.00 4715.14
483 2010.01.13 16:29 sell stop 187 0.10 1.4497 1.4697 1.4482 0.00 4715.14
484 2010.01.13 16:29 buy stop 188 0.10 1.4576 1.4376 1.4591 0.00 4715.14
485 2010.01.13 16:29 sell stop 189 0.10 1.4497 1.4697 1.4482 0.00 4715.14
486 2010.01.13 16:29 buy stop 190 0.10 1.4576 1.4376 1.4591 0.00 4715.14
487 2010.01.13 16:29 sell stop 191 0.10 1.4497 1.4697 1.4482 0.00 4715.14
488 2010.01.13 16:29 buy stop 192 0.10 1.4576 1.4376 1.4591 0.00 4715.14
489 2010.01.13 16:29 sell stop 193 0.10 1.4497 1.4697 1.4482 0.00 4715.14
490 2010.01.13 16:29 buy stop 194 0.10 1.4576 1.4376 1.4591 0.00 4715.14
491 2010.01.13 16:29 sell stop 195 0.10 1.4497 1.4697 1.4482 0.00 4715.14
492 2010.01.13 16:31 sell 185 0.10 1.4497 1.4697 1.4482 0.00 4715.14
493 2010.01.13 16:31 sell 187 0.10 1.4497 1.4697 1.4482 0.00 4715.14

В 14.29 открылся нормально, а в 16.29 "пачка" !?!?!?! (для теста я немного переделывал советника).



Пачка ордеров из-за того, что при тестировании не работают функции Sleep() и PlaySound(), из-за чего функция start() в течении 1 минуты успевает выполниться несколько раз. Вам надо поправить функцию start():
int start() { 
static int prvtime=0;
RefreshRates();
int Cur_time = (Hour()*100) + Minute();                         // Текущее время часы потом мнуты без разделителя
        
        if ( prvtime == Cur_time )
          return(0);
        
        prvtime = Cur_time;
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий