Доброго времени суток! Забыл предупредить, что в тестере от ДЦ 'Альпари' - как у меня явно необходимо приводить все Double к 5-знаку.
т.е. и встроенные функции тоже, а не только пользовательские. Например:
OrdProf=NormalizeDouble(OrderProfit(),Digits);
OrdSL=NormalizeDouble(OrderStopLoss(),Digits);
OrdTP=NormalizeDouble(OrderTakeProfit(),Digits);
и так далее со всеми функциями и переменными типа Double иначе начинается полная чертовщина. Не знаю почему, но похоже весь 'гемор' происходит от пятого знака в котировках. До его введения таких глюков не замечал. Я с Альпой уже года полтора из них на 4-знаке просидел половину времени и все было "ровно" - а пояявился 5-й и пошло-поехало все программы бересобибирать по новой. Да еще MarketInfo() у альпы иногда черте, что выдает.
P.S.Чтоб у вас все было и вам за это ничего не было.
С некоторого времени без нормализации даже в тестере. даже на четырех знаке ничего не работает потому пользую такую функцию :
double nd(double in,string sy=""){ if(sy==""){sy=Symbol();} return(NormalizeDouble(in,MarketInfo(sy,MODE_DIGITS)); }
Пардон, а если речь об онлайн-торговле, а не о тестере, то получаемые с сервера
после RefreshRetes() цены Bid/Ask тоже нормализовывать рекомендуете?
Пардон, а если речь об онлайн-торговле, а не о тестере, то получаемые с сервера
после RefreshRetes() цены Bid/Ask тоже нормализовывать рекомендуете?
Насколько я понимаю, Ask и Bid нормализовывать не надо.
Кроме того не надо нормализовывать значения полученные из OrderTakeProfit() и OrderStopLoss().
Я использую нормализацию только для значений, полученных расчетным путем.
Насколько я понимаю, Ask и Bid нормализовывать не надо.
Кроме того не надо нормализовывать значения полученные из OrderTakeProfit() и OrderStopLoss().
Я использую нормализацию только для значений, полученных расчетным путем.
Нифига - попробуйте на разных терминалах 25-30 % получите ошибки...
Хорошо если дождёмся этих комментариев. :(
Услышать бы хотя бы практические рекомендации от корифеев. Пытаюсь резюмировать:
Нужно нормализовать ЛЮБЫЕ цены, подаваемые в функции OrderSend(), OrderClose(), OrderCloseBy() и OrderModify()
Так?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Я недавно обнаружил немного неожиданное поведение тестера. Возьмем стандартный советник, например - Moving Average.mq4.
Выберем пару EURUSD, период 2009.01.01 – 2009.06.01, ТФ - 5М, Модель: все тики. Протестируем советник несколько раз нажав кнопку старт. Получаем следующие прибыли:
Чистая прибыль
-3417.01
-4342.85
-2751.73
-2751.73
-5489.72
Всего сделок
848
846
848
848
847
Вроде бы результат должен быть одним и тем же. Но нет! Прибыль и количество сделок отличаются. Прибыль может отличаться в 2 раза. Аналогичная ситуация и для моделирования по ценам открытия, и на других таймфреймах. При одиночном тестировании – это пол беды, но при оптимизации это может вызвать большие проблемы, т.к. прибыль оптимальных параметров может быть занижена, а плохих параметров – завышена. Следовательно, оптимизатор может оказаться неэффективным.
Почему это происходит? Такая проблема реально существует? Или я делал что-то не так? Как быть в этом случае?