В качестве тестирующей последовательности что используете? Сторонний fxt-файл или то, что тестер нагенерировал?
В качестве тестирующей последовательности что используете? Сторонний fxt-файл или то, что тестер нагенерировал?
Скрипт: Period_ConverterALL.mq4. Original Copyright © 2005, MetaQuotes Software Corp. Add by DENISka: Only OffLine convert history from 1M Period to M5, M15, M30, 1H, 4H, 1D, 1W, MN in one time. "Copyright © 2007 Add changes by DENISka."
fxt сгенерированы тестером.
Понятно. Тестер при генерации нормализует только промежуточные значения. А значения ohlc баров - не нормализует. Вам попались ненормализованные данные.
Понятно. Тестер при генерации нормализует только промежуточные значения. А значения ohlc баров - не нормализует. Вам попались ненормализованные данные.
как с этим бороться? :)
Можно, конечно, NormalizeDouble использовать, но неудобно. У разных валют разное количество знаков после запятой.
Можно, конечно, NormalizeDouble использовать, но неудобно. У разных валют разное количество знаков после запятой.
double digits = MarketInfo(sValuta, MODE_DIGITS);
double dNormalPrice = NormalizeDouble(dValutaPrice, digits);
1. Найдите другой источник данных (например, большая кнопка "загрузить" в архиве котировок)
2. В противном случае для нормализации используйте переменную Digits
Речь идёт о тестировании (в реальной жизни Bid и Ask нормализовать не надо). Торговать можно только тестируемый инструмент, поэтому лучше Digits, чем вызов функции MarketInfo
В тестере иногда выскакивает ошибка 4107 (ERR_INVALID_PRICE_PARAM 4107 Неправильный параметр цены для торговой функции)
Команда абсолютно стандартная:
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TP*Point,"g8.3_SELL",MAGIC01,0,Red)В журнале видим соответствующую запись:
2007.06.28 17:17:51 2004.11.30 01:45 g8.3 EURAUD,M15: Err Ordersend(4107):
2007.06.28 17:17:51 2004.11.30 01:45 g8.3 EURAUD,M15: invalid price 1.70255005 for OrderSend function
Ради эксперимента, добавил NormalizeDouble(Bid,4), ошибка исчезла:
OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,4),3,0,Bid-TP*Point,"g8.3_SELL",MAGIC01,0,Red)Что это может быть и как с этим бороться?
с уважением-Сергей Сартаков
OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),3,0,Bid-TP*Point,"SELL",MAGIC01,0,Red)Кстати, почему тестер не "ругается" на значение Take Profit? Там, по идее, то же значение не нормализованное.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Команда абсолютно стандартная:
В журнале видим соответствующую запись:
2007.06.28 17:17:51 2004.11.30 01:45 g8.3 EURAUD,M15: Err Ordersend(4107):
2007.06.28 17:17:51 2004.11.30 01:45 g8.3 EURAUD,M15: invalid price 1.70255005 for OrderSend function
Ради эксперимента, добавил NormalizeDouble(Bid,4), ошибка исчезла:
Что это может быть и как с этим бороться?