Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
попали в цикл тикет получили естественно sleepА не было..... и опять п оновой на след тике.....
Проверил файл тиков. Действительно, в эту минуту было два тика с одинаковым бидом.
Но.
Во-первых, эксперт может иметь строго одну открытую позицию
Во-вторых, старт работает только на первом тике бара, по крайней мере, если OrderSend возвращает валидный тикет.
при бек-тестинге Sleep() игнорируется. Только благодаря, этому советник прогоняемый в тестере в режиме ОпенПрайс (я другие не использую) ведет себя практически также и в он-лайне. Поэтому, я могу в советнике закладывать любые циклы торговых операций со Слипом.
Возможно, собака здесь порылась.
при бек-тестинге Sleep() игнорируется. Только благодаря, этому советник прогоняемый в тестере в режиме ОпенПрайс (я другие не использую) ведет себя практически также и в он-лайне. Поэтому, я могу в советнике закладывать любые циклы торговых операций со Слипом.
Возможно, собака здесь порылась.
Это реальная торговая ситуация, произошедшая этим утром на реальном счету. Две идентичные позиции до сих пор открыты. Хорошо, хоть, не убыточны :))
в начале старта. Всю торговую логику я, естественно, убрал. Инициализация попала под метлу случайно.
Добавил инициализацию в пример
------------------------
if (!OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES))
{
PrintError("OrderSelect", GetLastError());<---------
continue;
}
-------------------------
если ПринтЕррор промолчал значить ОрдерсТотал не успел закаунтится на рядом стоящих тиках....
думаю так.....
Подобные вещи, очевидно, должны быть синхронизированы на уровне торгового движка терминала.
Воркараунд с таймаутом может, конечно, помочь. Не может дать гарантии.
У меня в экспертах уже 5 или 6 воркараундов для разных ловушек. Выяснение причин и их обход занимает непозволительно много времени.
Хоть бы разработчики подсказывали, что ли.
За минуту, во время которой были открыты две идентичные позиции, было три тика (экперт работает на минутке):
2005/09/29 10:35:09, 87.26
2005/09/29 10:35:37, 87.25
2005/09/29 10:35:54, 87.26
Как могли сработать первый и третий, и быть проигнорированным второй?
Опять же, старт вываливается на всех тиках, кроме первого. OrdersTotal здесь ни причем
в начале старта. Всю торговую логику я, естественно, убрал. Инициализация попала под метлу случайно.
Добавил инициализацию в пример
Убери инициализацию в начало программы. Эта переменная из цикла выходит с нулем.