Общие вопросы по разработке > Анонсированное исполнение внутри бара не состоялось

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
Аватара пользователя
Den
Сообщения: 363
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 16 раз
Поблагодарили: 4 раза

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение Den » 24 сен 2016, 01:33

ну да это условие на открытие позиции.

Я просто не пойму никак что вы имеете ввиду под условиями для индикатора внутри [0]

И кстати, получается что через новые команды EnterLongLimit(); EnterShortLimit(); он может ЯКОБЫ подать заявку внутри бара на индикаторе

Input.Close[1] < Input.???[0] для EnterShortLimit() Что под знаками вопроса?
Последний раз редактировалось Den 24 сен 2016, 01:37, всего редактировалось 1 раз.

Doctor
Сообщения: 7
Зарегистрирован: 23 сен 2016, 10:59

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение Doctor » 24 сен 2016, 01:35

evge писал(а):Это как пример!

Может быть, но он оказался вполне рабочим. Правда не стал пока писать-читать содержимое по причине возможных локов.

Аватара пользователя
evge
Администратор
Сообщения: 1811
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 367 раз
Контактная информация:

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение evge » 24 сен 2016, 01:43

Den писал(а):Input.Close[1] < Input.???[0] для EnterShortLimit() Что под знаками вопроса?


Ух. Ещё раз, это условие на вход в позицию. В нашем случае, условие на отправку заявки лимитированной по нужной нам цене.
Оно (условие) может быть каким угодно. Это и есть часть алгоритма, сигнал на вход по заданным условиям.

[0] входного ряда Input1 - это завершенный последний бар, т.е. на его Close формируется вызов OnUpdate(), в котором на основании ваших условий на вход в позицию, в том числе и ориентируясь на этот отрисованный бар и его OHLC, Volume принимаем решение на вход в позицию. Никакого текущего бара ещё нет, мы просто выставляет заявку в надежде на исполнение. Заявка эта уходит перед началом отрисовки нового бара (если успеет) :)

и после этого начинает рисоваться новый бар, дойдя до нашей цены он исполняет нашу заявку и идёт дальше!

Бинго, заявка исполнена внутри бара!
никогда такого не было и вот опять

Аватара пользователя
Den
Сообщения: 363
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 16 раз
Поблагодарили: 4 раза

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение Den » 24 сен 2016, 01:48

Вот и я говорю Ух ! :lol:

Вы бы привели элементарный пример условия, при котором робот подаст заявку на текущем баре, ПРИ УСЛОВИИ, ЧТО ЕМУ ЗАПРЕЩЕНО ПОСЫЛАТЬ ЗАЯВКИ НЕ ТЕКУЩЕМ БАРЕ..

Так бы я понял о чем вы ведете речь, я видимо стою на асфальте в лыжи обутый.

Аватара пользователя
evge
Администратор
Сообщения: 1811
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 367 раз
Контактная информация:

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение evge » 24 сен 2016, 01:52

Den писал(а):Вот и я говорю Ух ! :lol:

Вы бы привели элементарный пример условия, при котором робот подаст заявку на текущем баре.


Ну ладно ещё разок! Условие ЛЮБОЕ!

Не условие определяет исполнение внутри бара, а команда которой вы отошлёте ордер.

EnterLong() - отправит заявку по цене Close отрисованного бара +/- проскальзывание, она либо исполнится сразу если ликвидный инструмент и\или задано нормальное проскальзывание, либо выставится ордер LMT и будет ждать исполнения.

EnterLongLimit(ЦЕНА) - отправится заявка по нужной нам цене, исполнится она ВНУТРИ БАРА :) т.к. она лимитная с конкретной ценой!
никогда такого не было и вот опять

Аватара пользователя
Den
Сообщения: 363
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 16 раз
Поблагодарили: 4 раза

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение Den » 24 сен 2016, 01:54

для Input.Close[1]<Input.Close[0] понятно не он не подаст заявку , потому что еще нет Input.Close[0]

А что есть для сравнения с закрытым баром Input.Close[1] для команды EnterLongLimit(GetBid()) ?

ДЛЯ EnterLongLimit(GetBid()), которая исполняется прямо в бид, ЯКОБЫ МГНОВЕННО НЕ ТЕКУЩЕМ БАРЕ.
Последний раз редактировалось Den 24 сен 2016, 01:58, всего редактировалось 1 раз.

Аватара пользователя
evge
Администратор
Сообщения: 1811
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 367 раз
Контактная информация:

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение evge » 24 сен 2016, 01:58

Den писал(а):ДЛЯ EnterLongLimit(GetBid())


GetBid() - получить цену лучшего покупателя из стакана

смысл того, что вы написали такой

Выставить LMT заявку на покупку по такой же цене как у лучшего покупателя в стакане! Т.е. присоединится к покупателю, не исполнять сразу :) Могут и не купить :)

почему она должна обязательно исполнится сразу? Ну на тестировании GetBid возвращает просто Close, т.к. там нет никаких стаканов.

В роботе она (GetBid()) будет возвращать лучшего покупателя. Это ненамного будет отличатся от вызова обычного EnterLong(), который покупает LMT ордером по цене Close отрисованного бара (+/- проскальзывание)
никогда такого не было и вот опять

Аватара пользователя
Den
Сообщения: 363
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 16 раз
Поблагодарили: 4 раза

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение Den » 24 сен 2016, 02:00

EnterLongLimit(GetBid()- 5* GetPriceStep()); ???

это 5 пунктов от бида вглубь стакана.

Но что будет у текущего бара для сравнения с закрытым баром Input.Close[1] , для того, чтобы он подал заявку на текущем баре???
Последний раз редактировалось Den 24 сен 2016, 02:03, всего редактировалось 1 раз.

Аватара пользователя
evge
Администратор
Сообщения: 1811
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 83 раза
Поблагодарили: 367 раз
Контактная информация:

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение evge » 24 сен 2016, 02:03

Den писал(а):EnterLongLimit(GetBid()- 5* GetPriceStep()); ???


Это переводится так:

Выставить LMT ордер на покупку по цене ниже чем лучший покупатель на 5 шагов цены :) т.е. стать в стакан на 5 шагов цены ниже.

И будем ждать пока цена дойдёт до нас в новом баре или через 5-10-15 баров - неизвестно.
никогда такого не было и вот опять

Аватара пользователя
Den
Сообщения: 363
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 16 раз
Поблагодарили: 4 раза

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение Den » 24 сен 2016, 02:05

да , верно ! перепутал тогда EnterLongLimit(GeAsk()+ 5* GetPriceStep())

это как-бы мини-маркет заявка вглубь стакана на 5 пунктов вверх от первого продавца.

Но что будет у текущего бара для сравнения с закрытым баром Input.Close[1] , для того, чтобы он подал заявку на текущем баре???

робот не подаст эту заявку при условии Input.Close[1] < Input.Close[0]
Последний раз редактировалось Den 24 сен 2016, 02:10, всего редактировалось 1 раз.


Вернуться в «Общие вопросы по разработке»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 25 гостей