И к тому же тестер профит с лосем ставит иногда иначе...проверял на визуализации :(
Рискну предположить, почему так происходит.
Сейчас стоплевелы подняты в разы до 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 на любом промежутке времени :(
Кому интересно попробуйте просто поставить советника с одной функцией и посмотреть журнал тестирования...
Да даже не в стопах дело :(
Банальная функция
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.
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);
}
Вот так заработало...а там почему то в тестере не срабатывал сигнал...
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
...пырял я значит пырял...писал тут понимаешь, а начал на тестере прогонять, срабатывают банальные функции вроде Алерта там где они не должны сработать и что самое интересное там где открытие позиции должно происходить только в рамках определенного часа с использованием функции:
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"
Возможно кто то знает ответ на мой вопрос...уж подскажите, или кто сталкивался...
И к тому же тестер профит с лосем ставит иногда иначе...проверял на визуализации :(