P.S. Как бы очевидно, но всё же добавлю, для полноты, первоначальный OrderSend
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+dStopLoss,Bid-dTakeProfit,"",MAGICMA,0,Red);
И ещё деталь: тестирование проводилось по ценам открытия.
Вы не могли бы прислать на stringo at metaquotes dot ru полученный таким образом файл? Хотелось бы его поанализировать.
Вы не могли бы прислать на stringo at metaquotes dot ru полученный таким образом файл? Хотелось бы его поанализировать.
Имеется в виду файл истории? Смогу только вечером выслать.
Проверил ещё раз. Всё таки нормализация истории помогает. Прошу прощения за ложную тревогу. Видимо вчера я преждевремнно снял галочку "пересчитать". Вероятно, дефективный файл истории интереса не представляет, но выслать всё равно могу :) (архив - 194 Кб).
Пожалуй добавлю ещё полный код скрипта, нормализующего историю
Пожалуй добавлю ещё полный код скрипта, нормализующего историю
//+------------------------------------------------------------------+ //| NormalizeHistory.mq4 | //| Copyright © 2006, Candid | //| likh@yandex.ru | //+------------------------------------------------------------------+ // Копирует файл истории, нормализуя данные (на всякий случай) #property copyright "Copyright © 2006, Candid" #property link "likh@yandex.ru" #property show_inputs #include <stdlib.mqh> datetime HstCurr; int HstHandle=-1; //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { int version=400; string c_copyright; string c_symbol=Symbol(); int i_period=Period(); int i_digits=Digits; int i_unused[13]; int i; //---- HstHandle=FileOpenHistory(c_symbol+i_period+"_Normalized"+".hst", FILE_BIN|FILE_WRITE); if(HstHandle < 0) { Print(" .hst файл открыть не удалось, последняя ошибка ", GetLastError()); return(-1); } // Пишем заголовок hst файла c_copyright="(C)opyright 2003, MetaQuotes Software Corp."; FileWriteInteger(HstHandle, version, LONG_VALUE); FileWriteString(HstHandle, c_copyright, 64); FileWriteString(HstHandle, c_symbol, 12); FileWriteInteger(HstHandle, i_period, LONG_VALUE); FileWriteInteger(HstHandle, i_digits, LONG_VALUE); FileWriteInteger(HstHandle, 0, LONG_VALUE); //timesign FileWriteInteger(HstHandle, 0, LONG_VALUE); //last_sync FileWriteArray(HstHandle, i_unused, 0, 13); // Начинаем заполнять i = Bars; while (i > 0) { i--; HstCurr = Time[i]; FileWriteInteger(HstHandle, HstCurr, LONG_VALUE); FileWriteDouble(HstHandle, NormalizeDouble(Open[i],Digits), DOUBLE_VALUE); FileWriteDouble(HstHandle, NormalizeDouble(Low[i],Digits), DOUBLE_VALUE); FileWriteDouble(HstHandle, NormalizeDouble(High[i],Digits), DOUBLE_VALUE); FileWriteDouble(HstHandle, NormalizeDouble(Close[i],Digits), DOUBLE_VALUE); FileWriteDouble(HstHandle, Volume[i], DOUBLE_VALUE); } //---- FileClose(HstHandle); return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
После модификации OrderSend введением NormalizeDouble(Bid,Digits)
эффект исчезает. Чтобы исключить дефект истории, переписал её с использованием такого блока
Не помогло. Версия МТ - от 23 января 2006.