
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Еще не пробовал.Но идея собрать в один файл понятна.Может разработчики укажут вариант-способ подключить неизменные данные из папки.
Добрый день!
Вот функцию написал. Она вычисляет отношение текущего курса к курсу на начало 2010 года.
double CalcKorr()
{
double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID);
double OtkrVal[1];
datetime time=D'2010.01.01 00:00:00';
if (CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal) != 1) return(0);
return(Bid / OtkrVal[0]);
}
Она корректно работает если запускать тестирование советника за 2011 год или ранние периоды, но возвращает 0 если тестировать 2012 год :(
Подскажите пожалуйста в чем может быть дело.
Советник работает на 10-минутках, использую для тестирования сервер и счет от чемпионата 2012.
Добрый день!
Вот функцию написал. Она вычисляет отношение текущего курса к курсу на начало 2010 года.
double CalcKorr()
{
double Bid = SymbolInfoDouble(_Symbol,SYMBOL_BID);
double OtkrVal[1];
datetime time=D'2010.01.01 00:00:00';
if (CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal) != 1) return(0);
return(Bid / OtkrVal[0]);
}
Она корректно работает если запускать тестирование советника за 2011 год или ранние периоды, но возвращает 0 если тестировать 2012 год :(
Подскажите пожалуйста в чем может быть дело.
Советник работает на 10-минутках, использую для тестирования сервер и счет от чемпионата 2012.
Да, не знаю, какова логика работы программы, но период в 10 мин. обозначается немного по-другому.
Все остальное работает на 10-минутках, например вот так:
CopyHigh(_Symbol, _Period, 0, 2, MaxVal )
Только эта функция данные пытается с месяца брать.
А как ошибку вывести? Я так понимаю CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal) возвращает -1 вместо 1. А вот почему это происходит, разве можно в ошибку вывести?
А как ошибку вывести? Я так понимаю CopyOpen(_Symbol,PERIOD_MN1,time,1,OtkrVal) возвращает -1 вместо 1. А вот почему это происходит, разве можно в ошибку вывести?
Поставьте распечатку ошибки - посмотрим.
error = 4401
Что-то не найду в метатрейдере где расшифровки кодов ошибок...
error = 4401
Что-то не найду в метатрейдере где расшифровки кодов ошибок...
Так-с, "запрашиваемая история не найдена". Т.е. в 2012 году не обнаруживается январь 2010 года, правильно?
А на демо-счёте (не в тестере) что показывает?
Так-с, "запрашиваемая история не найдена". Т.е. в 2012 году не обнаруживается январь 2010 года, правильно?
А на демо-счёте (не в тестере) что показывает?
Угу не обнаруживается.
Создал новый демо-счет (не чемпионатный). Лоты больше 5 теперь пропускаются, если тестировать за 2011 год, но за 2012 все та же ошибка.
Наверно где-то настраивать надо сколько истории доступно до тестового периода. А по умолчанию наверно 2 года... Только где это настраивается...
То есть на демо-счете (не в тестере) тоже возникает такая ошибка?
А про историю для тестирования лучше почитать в разделе "Тестирование торговых стратегий".