Про тестирование стратегии

 

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

int WhatBar() // Функция проверяющая является ли текущий бар первым в дне.
// Возвращает: Да - 1, Нет - 0.
{int First=0;
datetime some_time=D'';
int i = iBarShift(NULL,PERIOD_H1,some_time);
if (Time[0] == Time[i])
First=1;

return(First);
}

и используемый для тестера в очень уж простом условии if (WhatBar()==1)

Alert (WhatBar());

А по журналу она выдалбливает когда влезет, например в 17:14 или в таком роде...и причем вышеуказанная функция возвращает значение "1"

Возможно кто то знает ответ на мой вопрос...уж подскажите, или кто сталкивался...

И к тому же тестер профит с лосем ставит иногда иначе...проверял на визуализации :(

 
AYuBelov писал(а) >>

И к тому же тестер профит с лосем ставит иногда иначе...проверял на визуализации :(

Рискну предположить, почему так происходит.

Сейчас стоплевелы подняты в разы до 2 янв.

Но если код корректный и там предусмотрено нечто вроде :

if  ((Bid+MODE_STOPLEVEL*Point )<(Bid+TP*Point)) TP=MODE_STOPLEVEL  ;
то при слишком малом ТР (или СЛ)

стоп конечно встанет на уровне MODE_STOPLEVEL

А этот уровень сейчас составляет зачастую до нескольких десятков пунктов !

 

Да даже не в стопах дело :(

Банальная функция

int WhatBar() // Функция проверяющая является ли текущий бар первым в дне.
// Возвращает: Да - 1, Нет - 0.
{int First=0;
datetime some_time=D'';
int i = iBarShift(NULL,PERIOD_H1,some_time);
if (Time[0] == Time[i])
First=1;

return(First);
}

которая в режиме реального времени Alert(WhatBar());

выдает 11 часов в сутки результат "0", а 1 час в сутки выдает "0" при визуальном тестрировании стратегии выдает значение 1 на любом промежутке времени :(

Кому интересно попробуйте просто поставить советника с одной функцией и посмотреть журнал тестирования...

 
AYuBelov писал(а) >>

Да даже не в стопах дело :(

Банальная функция

int WhatBar() // Функция проверяющая является ли текущий бар первым в дне.
// Возвращает: Да - 1, Нет - 0.
{int First=0;
datetime some_time=D'';
int i = iBarShift(NULL,PERIOD_H1,some_time);
if (Time[0] == Time[i])
First=1;

return(First);
}

которая в режиме реального времени Alert(WhatBar());

выдает 11 часов в сутки результат "0", а 1 час в сутки выдает "0" при визуальном тестрировании стратегии выдает значение 1 на любом промежутке времени :(

Кому интересно попробуйте просто поставить советника с одной функцией и посмотреть журнал тестирования...

Поставьте int i = iBarShift(NULL,PERIOD_H1,some_time,true);

По умолчанию стоит false.

 
kharko писал(а) >>

Поставьте int i = iBarShift(NULL,PERIOD_H1,some_time,true);

По умолчанию стоит false.

Теперь функция возвращает все время "0"

 

int WhatBar() // Функция проверяющая является ли текущий бар первым в дне.
// Возвращает: Да - 1, Нет - 0.
{int First=0;
int tDay=0;
int eHour=0;
int Days=iTime(NULL,PERIOD_D1,tDay);
int Hours=eHour*3600;
int time=Days+Hours;
if (Time[0] == time)
First=1;

return(First);
}

Вот так заработало...а там почему то в тестере не срабатывал сигнал...

 
Теперь у меня при тестировании стратегии тейк с лосем ставятся !_оба_! выше/ниже открытия позиции о_О...Глюк ли Помогите может кто в курсе как такое может быть
Причина обращения: