К разработчикам OrderModify (error 1) - Глюки в истории или перегрев Процессора? . . .
Это просто кривые ручки. При тралении необходимо проводить нормализацию значений цены.
Это просто кривые ручки. При тралении необходимо проводить нормализацию значений цены.
Вот не зная автора не надо про "кривые ручки" и т.д. Если это и болезнь - то не моя точно. Нормализация цен и результатов выражений проводится в каждом блоке кода. Результат обращения к функциям проверяется на ошибку или нулевое значение, там где не должно быть нулей. Если вы не вникли в суть вопроса - я бы порекомендовал не оставлять своих комментариев в данной теме. Я описал ситуацию достаточно подробно, чтобы было понятно: там что-то не так. Склоняюсь к мысли, что данные ошибки все же есть результат глюков удаленного сервера данных. Хотя не исключен и аппаратный фактор ошибок на локальной машине.
P.S. Чтоб у вас все было и вам за это ничего не было.
P.P.S. Если хотите написать еще раз, но посуществу - пожалуста потрудитесь хотя бы вникнуть в суть описанной ситуации.
Ошибки в истории, разрывы в котировках. Нормализация нормализацией - но при плохой истории такие ошибки будут возникать.
Доброго времени суток! Спасибо за участие - после нескольких часов экспериментов - я также полагаю, что дело именно в плохом качестве истории. Или накройняк в плохой связи с сервером данных (данные могли исказиться подороге от ичточника через несколько прокси серверов).
P.S.Чтоб у вас все было и свам за это ничего не было.
Приветствую всех интересующихся!
Если нет глюков в истории - то может есть в тестере стратегий. Как объяснить такое поведение?
Или такое. . . Открытие происходит по несуществующей цене? И закрытие - по той цене. которой не было. . .
Остается еще много вопросов . . . Когда известно, что Slippage=0.0. (Цена только по заявке - никаких отклонений).
Также известно, что проверка (строго больше '0' - ошибка в неправильной или пустой цене исключена) и нориализация цен (по переменной 'Digits' для каждого инструмента) проводится как надо. Каким образом ведет себя тестер - неясно . . . Жду мнений. Заранее Спасибо!
P.S. Чтоб у вас все было и вам за это ничего не было.
Приветствую всех интересующихся!
Если нет глюков в истории - то может есть в тестере стратегий. Как объяснить такое поведение?
Или такое. . . Открытие происходит по несуществующей цене? И закрытие - по той цене. которой не было. . .
Остается еще много вопросов . . . Когда известно, что Slippage=0.0. (Цена только по заявке - никаких отклонений).
Также известно, что проверка (строго больше '0' - ошибка в неправильной или пустой цене исключена) и нориализация цен (по переменной 'Digits' для каждого инструмента) проводится как надо. Каким образом ведет себя тестер - неясно . . . Жду мнений. Заранее Спасибо!
P.S. Чтоб у вас все было и вам за это ничего не было.
Картинки на гэпах в тестере, подобные Вашей, наблюдал неоднократно, думаю, это действительно специфика работы тестера. Слипаж в тестере вообще не обрабатывается и не учитывается, т. е. всегда равен 0. Что касается ошибки 1, попробуйте цену модификации брать с запасом на 1 пипс, должно помочь, особенно на пятизнаке: специфика сравнения double в терминале.
Во время обработки одного тика рыночное окружение в тестере не меняется, так что плохая история не может быть причиной возникновения подобных ошибок, а влияет только на качество тестирования. Кстати, какое оно у Вас в отчётах ?
Картинки на гэпах в тестере, подобные Вашей, наблюдал неоднократно, думаю, это действительно специфика работы тестера. Слипаж в тестере вообще не обрабатывается и не учитывается, т. е. всегда равен 0. Что касается ошибки 1, попробуйте цену модификации брать с запасом на 1 пипс, должно помочь, особенно на пятизнаке: специфика сравнения double в терминале.
Во время обработки одного тика рыночное окружение в тестере не меняется, так что плохая история не может быть причиной возникновения подобных ошибок, а влияет только на качество тестирования. Кстати, какое оно у Вас в отчётах ?
Доброго времени суток!
С удовольствием отвечаю: Качество моделирования 90.00 процентов. Спасибо за совет - с запасом в 1 пипс попробую обязательно. Кстати это как выглядит правильно: +\- PIPS примерно вот так, что ли:
ModifyAnswer=OrderModify(OrderTicket(),OrderOpenPrice(),BuyStopLoss+Point,BuyTakeProfit-Point,0,Red);
ModifyAnswer=OrderModify(OrderTicket(),OrderOpenPrice(),SellStopLoss-Point,SellTakeProfit+Point,0,Blue);
Отдаленно преследовала мысь сделать что-то похожее уже давно. Но как-то глупо казалось идти на такое ухищрение.
Не все ошибки появляются на разрывах. Главный признак появления ошибок - начало и конец истории (кстати в самом начале (5-6 лет назад) она (история) еще 4-х знаковая) Есть например такой кусок истории - на нем выловили 30 ошибок modifyerror 1. При этом там вообще нет разыва. А вот сама история вовсе не старая, а наоборот новейшая - за июнь 2009г.
Странно еще и то, что в Советнике (до вызова команды OrderModify()) на каждый случай (BUY или SELL) есть такое условие:
if ((OrderStopLoss()<BuyStopLoss) && (OrderTakeProfit()<BuyTakeProfit)) //для Подъема TP\SL по длинной
if ((OrderStopLoss()>SellStopLoss) && (OrderTakeProfit()>SellTakeProfit)) //для Спуска TP\LS по короткой
которое должно игнорировать уровни TP\SL, которые совпадают с уже установленными значениями. Т.Е. строго больше для Длинной позиции и строго меньше для Короткой позиции, однако это условие похоже просто игнорируется или где-то искажаются данные. Вот такая канитель - странная . . .
Спасибо за проявленное участие :)
P.S. Чтоб у вас все было и вам за это ничего не было.
Мне непонятно, зачем Вы двигаете одновременно стоплосс и тэйкпрофит. Обычно при трейлинге по любому алгоритму я использую такую конструкцию:
if (NormalizeDouble(NewStopLossLevel-OrderStopLoss()-Delta*Point,Digits)>0) // Уровень стопа выше прежнего на Delta if (NormalizeDouble(Bid-NewStopLossLevel-(MarketInfo(symbol,MODE_STOPLEVEL)+1)*Point,Digits)>0) // Уровень стопа ниже Bid на StopLevel if (!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(NewStopLossLevel,Digits),OrderTakeProfit(),0,Yellow)) ErrorModifyOrder();
для длинной позиции. Ошибок 1 в тестере не замечал. Если убрать +1, они появляются. Хотя, пожалуй, это касается 130 . А вот Delta >=1, убирает 1.
В дополнение: +1 во второй строке, пожалуй, лишняя. Просто, при переходе на 5 знак некоторое время назад, я обнаружил, что корректно работающий ранее код, стал выдавать ошибки ( в тестере №: 1, 130) и решил заложиться на все возможные причины. Сейчас, прогнав на истории, убедился, что достаточно условие:
if (NormalizeDouble(Bid-NewStopLossLevel-MarketInfo(symbol,MODE_STOPLEVEL)*Point,Digits)>0) // Уровень стопа ниже Bid на StopLevel
А вот замечание относительно первой строки остаётся в силе, вот пример из тестера: при Delta=1:
2009.07.05 23:37:53 2009.07.03 22:59 Price Channel GBPUSD,H1: removed 2009.07.05 23:37:53 2009.07.03 22:59 PriceChannelsav1 GBPUSD,H1: Ошибок открытия: 0 Ошибок закрытия: 0 Ошибок модификации: 0 Ошибок выбора: 0 2009.07.05 23:37:53 2009.07.03 22:59 PriceChannelsav1 GBPUSD,H1: Эксперт PriceChannelsav1 закончил работу в 2009.07.03 22:59 на графике GBPUSD период 60 мин. 2009.07.05 23:37:53 2009.07.03 22:59 Tester: order #6 is closed 2009.07.05 23:37:53 2009.07.03 22:00 PriceChannelsav1 GBPUSD,H1: modify #6 sell 0.10 GBPUSD at 1.63090 sl: 1.63896 tp: 0.00000 ok 2009.07.05 23:37:53 2009.07.03 20:00 PriceChannelsav1 GBPUSD,H1: modify #6 sell 0.10 GBPUSD at 1.63090 sl: 1.64017 tp: 0.00000 ok
А вот тот же эксперт при Delta=0:
2009.07.05 23:54:43 2009.07.03 22:59 Price Channel GBPUSD,H1: removed 2009.07.05 23:54:43 2009.07.03 22:59 PriceChannelsav1 GBPUSD,H1: Ошибок открытия: 0 Ошибок закрытия: 0 Ошибок модификации: 986 Ошибок выбора: 0 2009.07.05 23:54:43 2009.07.03 22:59 PriceChannelsav1 GBPUSD,H1: Эксперт PriceChannelsav1 закончил работу в 2009.07.03 22:59 на графике GBPUSD период 60 мин. 2009.07.05 23:54:43 2009.07.03 22:59 Tester: order #6 is closed 2009.07.05 23:54:43 2009.07.03 22:59 PriceChannelsav1 GBPUSD,H1: Error modify order function: no error (1) 2009.07.05 23:54:43 2009.07.03 22:59 PriceChannelsav1 GBPUSD,H1: OrderModify error 1 2009.07.05 23:54:43 2009.07.03 22:59 PriceChannelsav1 GBPUSD,H1: Error modify order function: no error (1)
Ошибка 1 чаще всего возникает при попытке изменения стопа на такую же величину. Чтобы этого не случалось добавляйте условие:
if (NormalizeDouble(NewSL - OldSL) != 0) { // модификация }
где NewSL - новое значение стопа
OldSL - OrderStopLoss()
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Доброго времени суток, Господа!
Возникла очень странная ситуация. Я тестировал Советника на промежутке истории с 01.01.2004г до 01.04.2009г на тестере стратегий на M15. И в промежутке с середины февраля 2009г по середину марта 2009г получал странный результат. OrderModify() выдавал ошибку 1 (error no result) то 3, то 5, то 7 раз (на каждом проходе поразному) при этом за 5 лет тестов до 15 марта 2009г ни разу такой ошибки не было. Да она и должна была откорректироваться советником автоматичеки. При тестировании с 01.01.2003г до 01.04.2009г т.е. начало еще на год раньше - ошибка error no result появлялась около 20 раз - против 4-5-7 раз на промежутке 2004-2009. При изменении торгового инструмента (валютной пары) - ошибка проявляется от 3 до 30 раз (на разных участках истории - не только на отрезке февраль-март 2009). Как объяснить такое поведение Советника - если использовался один и тот же кусок истории. Но результаты на каждом проходе разные. Я подозреваю, что могут быть ошибки в истории последних и самых старых месяцев т.к. она (история) относительно новая (всего 3 месячной давности) или очень старая (более 5 лет) и Второе - при тестировании проц. на машине разогревался до 65-67 градусов (вроде бы немного), а тактовый генератор до 82 при номинальной температуре 79-80 градусов. Возможно глюканул генератор. Для справки: Проц. AMD K10 (3*2100MHz) \ RAM (3GB*800MHz) \ Мать Gigabyte \ Windows XP SP3 (Black Edition). Да и еще одна непонятка - временами вознивает ошибка тестера "TestGenerator: unmatched data error" - что она означает и как с ней бороться. Жду ваших комментариев Господа профи. Заранее Спасибо!
P.S.Чтоб у вас все было и вам за это ничего не было.