[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 589
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Потому что это локальные переменные, которые уже на втором тике хранят мусор вместо ticket
Огромное спасибо! Честно все время думал об этом!
См. прицеп. Размещаете его содержимое в папку Experts терминала. Выбираете таймфрейм интересующего Вас торгуемого инструмента, бросаете на его график сОва,
при этом задаете параметры для открытия ордера во внешних переменных эксперта:
Далее ждете образование нового бара на выбранном Вами таймфрейме инструмента...
При открытии ордера с рынка экспертом сравниваете время его открытия и время открытия нового бара.
Роман, как обещал рассказываю, что получается в реальности при работе с советником "открытие на открытии". Во первых советник срабатывает сразу на следующем тике после размещения на 1-часовом графике, а на открытии следующей свечи он открывает уже вторую сделку. Почему, я пока понять не могу. Во вторых цена открытия сделки все-таки не совпадает с ценой открытия новой свечи:
2012.02.24,12:00,1.3392,1.3405,1.3383,1.3387,768 - свеча открывается по 1,3392, а ордер срабатывает по 1.3390. В настройках я указываю проскальзывание в 1 пункт. Если указать 0 пунктов, то советник вообще не сработает, правильно я понимаю?
Лог я приложил. Для меня все таки остается важным что ордер на открытие совпадал с ценой открытия свечи.
Здравствуйте, господа. Буду признателен за пояснение.
Верно ли я понимаю, что если в коде последовательно записаны команды OrderDelete и OrderSend и если советник получает сигнал на исполнение обеих команд (снятие + установка) на тике №1, то:
- эти две команды не могут быть исполнены на одном и том же тике №1, а их исполнение растягивается минимум на 3 тика, причем
- на тике №1 подается команда OrderDelete;
- после подачи OrderDelete только со следующим тиком №2 возвращается результат, и только теперь на этом же тике №2 может быть подана команда OrderSend;
- результат команды OrderSend будет известен только на тике №3.
Так ли это?
И верно ли утверждение, что возможности на одном и том же тике отсылать две команды в МТ нет?
Советник пишу на МТ4.
Благодарю.
Здравствуйте, господа. Буду признателен за пояснение.
Верно ли я понимаю, что если в коде последовательно записаны команды OrderDelete и OrderSend и если советник получает сигнал на исполнение обеих команд (снятие + установка) на тике №1, то:
- эти две команды не могут быть исполнены на одном и том же тике №1, а их исполнение растягивается минимум на 3 тика, причем
- на тике №1 подается команда OrderDelete;
- после подачи OrderDelete только со следующим тиком №2 возвращается результат, и только теперь на этом же тике №2 может быть подана команда OrderSend;
- результат команды OrderSend будет известен только на тике №3.
Так ли это?
И верно ли утверждение, что возможности на одном и том же тике отсылать две команды в МТ нет?
Советник пишу на МТ4.
Благодарю.
тик - это новая котировка. И связи со временем выполнения команд OrderDelete и OrderSend нету
если идут новости, да + проскальзывания, то пока у вас простой OrderSend выполняется пройдет с десяток тиков. А если на рынке ночной флет, то за один тик обе команды пройти могут успеть
Также возможна коллизия, когда, например, у одного ордера срабатывает стоплосс, а другой вы пытаетесь открыть/закрыть советником на том же тике. Тогда сервер может в ряде случаев не дать исполнить операцию.
Т.е. ответ на ваши вопросы - нет, это не так))
тик - это новая котировка. И связи со временем выполнения команд OrderDelete и OrderSend нету
если идут новости, да + проскальзывания, то пока у вас простой OrderSend выполняется пройдет с десяток тиков. А если на рынке ночной флет, то за один тик обе команды пройти могут успеть
МТ, насколько я понимаю, тянет информацию с сервера потиково (а сервер, в свою очередь, дает ответы по командам одновременно с отсылкой новых тиков, это оптимизирует расходы по времени). И раньше, чем придет новый тик, ничего не известно. Я это имел ввиду. Но, может, я ошибаюсь в этом предположении? Вопрос связан скорее не с десятком тиков, а со вторым указанным Вами вариантом, когда тик медленный.
Верно ли я Вас понял, таким образом, что получение отклика по команде №1 не является обязательным условием, чтобы перейти к команде №2 и полностью ее обработать?
Отклик по команде - это "несущественная" часть команды? Его наличие не критично, чтобы перейти к следующей команде?
Ниже мы вступили в дискуссию с alsu, и, как мне кажется, я предполагал то же, что он: что наличие отклика критически важно. Вы же пишите, что на одном тике могут быть отработаны две команды. Выходит, информация с сервера приходит вообще без связи с потоком котировок?
Спасибо.
Все зависит от того, насколько быстро идут тики. Вообще функции, которые возвращают значение, OrderDelete, OrderSend и т.п. исполняются не асинхронно, т.е. до тех пор, пока не пройдет целиком вся операция и не будет выдан код ошибки (или NO_ERROR в случае успеха), следующий оператор выполняться не будет. Другое дело, что за это время могут пробежать несколько тиков, но они функцией start() обработаны не будут.
Также возможна коллизия, когда, например, у одного ордера срабатывает стоплосс, а другой вы пытаетесь открыть/закрыть советником на том же тике. Тогда сервер может в ряде случаев не дать исполнить операцию.
Т.е. ответ на ваши вопросы - нет, это не так))
Как это не так, если получается, что как раз "так", по Вашим же словам? )) Или я чего-то опять не понял? Вы пишете мне в ответ, что функции исполняются так, что следующий оператор исполняется только после отработки кода ошибки предыдущего. Я, мне кажется, это и предполагал: что "две команды не могут быть исполнены на одном и том же тике №1", потому что отклик - тот самый ответ или код ошибки - появляется самое раннее с новым тиком. Или нет? Или отклики по командам идут отдельным по времени потоком, не связанным с потоком котировок? Возможно, моя ошибка в том, что я предположил, что результаты исполнения команд возвращаются с новой котировкой?
Конечно, я имел ввиду в первую очередь ситуацию, когда тики медленные.
МТ, насколько я понимаю, тянет информацию с сервера потиково (а сервер, в свою очередь, дает ответы по командам одновременно с отсылкой новых тиков, это оптимизирует расходы по времени). И раньше, чем придет новый тик, ничего не известно. Я это имел ввиду. Но, может, я ошибаюсь в этом предположении? Вопрос связан скорее не с десятком тиков, а со вторым указанным Вами вариантом, когда тик медленный.
Верно ли я Вас понял, таким образом, что получение отклика по команде №1 не является обязательным условием, чтобы перейти к команде №2 и полностью ее обработать?
Отклик по команде - это "несущественная" часть команды? Его наличие не критично, чтобы перейти к следующей команде?
Ниже мы вступили в дискуссию с alsu, и, как мне кажется, я предполагал то же, что он: что наличие отклика критически важно. Вы же пишите, что на одном тике могут быть отработаны две команды. Выходит, информация с сервера приходит вообще без связи с потоком котировок?
Спасибо.
Здравствуйте. Я абсолютно не силен в программировании. Поэтому прошу помощи - помогите добавить в код закрытие позиций поStopLoss-у и TrailingStop-у . Советник не мой, но стратегия не плохая, поэтому методом проб и ошибок переделываю советника под себя - и уже честно говоря башню сносит, да еще и времени мало - работа. Кому интересно выкладываю советника полностью так сказать в оригинальной упаковке. А вот то, что я с ним творю :