Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Interesting
Спасибо за информацию. В своем советнике уже предусмотрел обработчик торговых ошибок.
Есть еще вопрос. Помогите, пожалуйста.
На стадии инициализации пытаюсь выбрать рабочие инструменты:
Вот ломаю голову как параноик: насколько вероятен случай ошибки функции ArrayResize?
Закливать ли инициализацию в попытках изменить размер массива?
Иначе, читая требования организаторов конкурса, можно сделать вывод, что нет уважительной причины деинициализации советника....
voix_kas:
Наверное, меня сейчас закидают тухлыми помидорами... а ошибка реквота в тестере в принципе быть не может?
Попробуйте инициализацию проводить явным образом. Например так:
Теперь работайте с sy[number] - где number - порядковый номер инструмента.
Как я понял в том примере целью было создать параметр, в котором указывать необходимые символы.
Идея может и правильная, а вот реализация не очень на мой взгляд (паранойя вещица опасная и обычно до добра не доводит).
Interesting
Вот ломаю голову как параноик: насколько вероятен случай ошибки функции ArrayResize?Закливать ли инициализацию в попытках изменить размер массива?
Иначе, читая требования организаторов конкурса, можно сделать вывод, что нет уважительной причины деинициализации советника....
Отпишите в личку, а то тут не очень целесообразно обсуждать частные вопросы.
Кто-нить подскажите как правильно написать код посылки трёх ордеров по 5 лотов каждый. Я в прошлом чемпионате использовал так
for(int i=0;i<3;i++)
{
Trade.PositionOpen(symbol,OrderType,5,price,SL,TP);
}
Но иногда срабатывал только первый ордер, а последующие игнорировались. Я все статьи посвящённые чемпионату перечитал и нигде не нашёл примера правильного создания совокупного ордера состоящего и нескольких более мелких ордеров. Может есть пример?
Кто-нить подскажите как правильно написать код посылки трёх ордеров по 5 лотов каждый. Я в прошлом чемпионате использовал так
for(int i=0;i<3;i++)
{
Trade.PositionOpen(symbol,OrderType,5,price,SL,TP);
}
Но иногда срабатывал только первый ордер, а последующие игнорировались. Я все статьи посвящённые чемпионату перечитал и нигде не нашёл примера правильного создания совокупного ордера состоящего и нескольких более мелких ордеров. Может есть пример?
А каковы были причины игнорорирования?
Причины не знаю так как мой советник не проверял ошибок исполнения ордеров. Я тот же советник параллельно гнал на другом счету. Оба советника должны быть открыть позицию в 5 лотов двумя ордерами по 2.5 лота каждый. Мой параллельный советник так и сделал, а чемпинатовский открыл позицию в 2.5 лота, т.е. сработал только один из ордеров. Единственное что я вижу в журнале так это сообщение о Requote, которое пришло 2 часа после посылки этих двух ордеров. Может нужно было обновить price перед посылкой каждого ордера? Может по каким-то причинам нельзя посылать один ордер сразу за другим? Неплохо бы елси разработчики обьяснили как избежать подобных ситуаций.
Все очень просто - нужно проверять код и обрабатывать реквоту.
Не будет корректной обработки будут проблемы (возможно и дисквалификация).
Все очень просто - нужно проверять код и обрабатывать реквоту.
Не будет корректной обработки будут проблемы (возможно и дисквалификация).
Что-такое "обрабатывать реквоты"? Как это делать или где про это можно почитать? Кто-нить может показать на примере?
Кстати, реквота не была причиной почему из двух ордеров только первый прошёл так как режвота пришла два часа после посылки этих двух ордеров. Я предполагаю что мой советник пытался открыть ещё одну позицию два часа позже и получил реквоту. Так что мой вопрос почему из двух ордеров только первый выполнился остаётся открытым.
Что-такое "обрабатывать реквоты"? Как это делать или где про это можно почитать? Кто-нить может показать на примере?
Кстати, реквота не была причиной почему из двух ордеров только первый прошёл так как режвота пришла два часа после посылки этих двух ордеров. Я предполагаю что мой советник пытался открыть ещё одну позицию два часа позже и получил реквоту. Так что мой вопрос почему из двух ордеров только первый выполнился остаётся открытым.
Не знаю насколько это корректный пример, но в нем нет проверки на корректность до отправки торгового запроса, а тем более нет проверки ответа от сервера.
Если даже предположить что внутри PositionOpen есть проверка осуществляемая перед отправкой запроса, то как минимум следует поинтересоваться а чем все дело кончилось.
PS
Думаю не лишним будет ознакомиться вот с этой статьей - Класс торговых операций для ATC 2011
Вопрос такого плана
Как я понял разница между временем сервера и временем по GMT равна +1 и существует переход лето/зима. По какому типу осуществятся переход (Европа-Россия / США-Канада / Другие варианты)?
Заодно хочется узнать как это дело будет обстоять на том железе где будут расположены эксперты.