
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Столкнулся с очень загадочной проблемой… В принципе мог бы выложить код проблемного советника, но там на 10-ки кил сырцов, а сделать "вырезку" проблемного места не получается - не ясен источник проблемы, в этом, собстно, и вся проблема :) - найти место. Поэтому пробую описать словами.
Наверно все знают, что если мы 10 раз запустим тестер с одинаковыми входными условиями, то получим 10 эквивалентных результатов. Причем эквивалентны будут все выходные показатели: резалты торгов, число задействованных ордеров(и их типы) и прочее и прочее. В том числе будут совпадать и тикеты каждого ордера поучаствовавшего в тестировании. Мой "загадочный тикет" имеет вполне рядовой номер - 199. Вот что тестер говорит о его возникновении:
403 2006.01.03 18:04 buy stop 199 2.00 1.7491 1.7471 1.8091
Как видите - самый обычный стопарник по цене открытия 1.7491(в данный момент, т.е. в 2006.01.03 18:04 цена для тестера=1.7391). Тут пока все гуд - именно этого я жду от алгоритма. Дальше - проходит некоторое время, и - НАТЕ:
417 2006.01.04 00:37 delete 199 2.00 1.7491 1.7471 1.8091
Т.е. типа ордер был УДАЛЕН(иначе говоря цена не достигла точки открытия и эксперт/сервер, якобы, ордер отменил). Потенциально в моем алгоритме такое удаление могла еделать единственная строчка кода:
OrderDelete(OrderTicket(), cl);
Это во всем компилируемом проекте единственная строчка содержащая OrderDelete - больше нету(проверил поиском!). Так вот я прямо ПЕРЕД ней ставил вывод в коммент номер тикета с которым собирается работать эта команда. С номером 199 ОНА НЕ РАБОТАЕТ! И это вполне укладывается в алгоритм - на момент 2006.01.04 00:37 ничего делать с ордером и не нужно, он должен висеть дальше и, возможно, быть открытым по 1.7491.
Это уже странно, но глянем на график - что же такого особого случилось в 2006.01.04 00:37? А случилось вот что: ровно в этот момент High впервые с момента установки 199-го коснулся цены 1.7489(проверяю по минуткам). Но это БИД. АСК, соотв., 1.7489+3пункта=1.7492 > того самого 1.7491. Понимаете к чему веду? Вместо того, что бы забаить по указанной цене тестер УДАЛЯЕТ ордер!! Причем именно в "правильный" момент - как раз можно было баить! Не позже, не раньше - с точностью до минуты.
Какие будут идеи/мысли по поводу? Идея с истечением по времени, скажу сразу, отпадает. При установке ордера параметр expiration равен дефолтному 0-лю->бессрочный. Может это быть "жесткий" баг? Слишком уж маловероятно, ИМХО - очень грубая ошибка. Но а как иначе объяснить??