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

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
Doctor
Сообщения: 7
Зарегистрирован: 23 сен 2016, 10:59

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

Непрочитанное сообщение Doctor » 23 сен 2016, 12:48

Добрый День,
Запустил для наглядности в роботе и тестере Alfa_SS - пересечение двух средних. На закрытии бара А и В принимается решение. В роботе на следующем баре практически сразу виден сам приказ и исполнение. В свойствах приказов задержки 03.367сек, 00.886сек и 03.215сек. А тестер считает просто закрытие А и В.
Если речь не идет о смене дня или торговой сессии, то разница минимальна - на первые сделки в баре. В реале, закрытие позиции и открытие новой может произойти по разным ценам.
Так что если обсуждаются ответы ех которые чуть ниже, то вроде все честно, в пределах погрешности самого АД4 :)
ex:
Ответ
EnterShortLimit подается на закрытии бара. Единственное отличие от EnterShort, в котором в качестве цены идет всегда цена закрытия бара, то что можно указать произвольную цену.

ex:
Ответ
EnterShortLimit(GetBid()) исполняется моментально

Clipboard01.png
Clipboard01.png (22.24 КБ) 7140 просмотров
Clipboard02.png
Clipboard02.png (23.57 КБ) 7140 просмотров
Clipboard03.png
Clipboard03.png (1.4 КБ) 7140 просмотров

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

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

Непрочитанное сообщение Den » 23 сен 2016, 13:07

ЧТО МОЖЕТ БЫТЬ ПРОЩЕ АКТИВИРОВАТЬ УЖЕ ИМЕЮЩИЙСЯ ПУНКТ ОПТИМИЗАЦИИ ?
Вложения
ClosedBar 2.png
ClosedBar.png
ClosedBar.png (116.68 КБ) 7137 просмотров

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

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

Непрочитанное сообщение Den » 23 сен 2016, 13:23

сигнал ИНДИКАТОРА на ПРОДАЖУ появился 20.09.16 на уровне 66.158 , а поступит он на исполнение только 21.09.16 на закрытии текущего бара на уровне 65.158.

РАЗНИЦА 1.000 ПУНКТОВ !!!
Вложения
SIZ6 D.png

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

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

Непрочитанное сообщение Doctor » 23 сен 2016, 14:23

1. Специально взял простой и очевидный пример который вы сможете попробовать, посмотреть в работе и может быть понять. Во время формирования баров А и В (когда в течении минуты проходят сделки и close постоянно меняется) картина с пересечением средних тоже меняется. Пересечение средних то есть, то его нет. И собственно мы можем твердо сказать что пересечение состоялось только когда бар закрылся и перестал меняться. Сейчас тестер просто берет из истории цену закрытия (если нужно то и другие параметры свечи) и сразу считает окончательные результаты индикаторов. По результатам вычисления можно сразу принимать решение. Что и видно из снятого экрана.

2. Если внимательно почитать п1 то станет очевидно почему "Исполнить сигнал на закрытии" не работает. Дело не в меню. Чтобы тестировать на истории нужно будет знать не только бары, но и иметь тики сделок для каждого бара. (чтобы воспроизвести процесс формирования свечки).
И еще, обычно, когда де-активируешь "Исполнить сигнал на закрытии" стратегии тоже пишутся по другому. Например в Alfa_SS придется отслеживать чтобы не открыть позицию несколько раз за бар. Или позиция открылась, а цена ушла в другую сторону и после закрытия бара оказалось что пересечения средних не состоялось, а позиция есть :)

Надесь теперь очевидно что введение параметра в EnterShortLimit() никак не связано с этим меню. Это - решение другой проблемы и просто повышает шансы на исполнения заявок. Как видно из работы робота цена закрытия бара А (или В) может отличаться от открытия следующего бара.

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

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

Непрочитанное сообщение Den » 23 сен 2016, 23:19

1. Cигнал индикатора появляется исключительно на закрытии бара в АД. И потом он висит весь текущий бар. Я ж говорю , откройте D-фрейм и вы сразу все воочию увидите. Там проходит ровно день "висения" сигнала индикатора и только на следующий день робот его исполняет.

2. А уже говорили, что тестирование не будет доступно на исторических данных при UseClosedBar==False
Это тут не причем.
В АДу до сих пор запрещена подача заявок внутри бара. Потому что UseClosedBar==True

3. Для того, чтобы не было исполнения нескольких сигналов в баре д.б. установлен запрет на исполнение повторных сигналов в одном направлении на одном баре, поэтому, если вам пришло несколько таких сигналов на одном баре, исполнен будет только первый из них- все очень просто.

4. EnterShortLimit() действительно никак не влияет на исполнение внутри, потому что оно как было внутри так и осталось .
ЗАПРЕЩЕНА ПОДАЧА ЗАЯВОК ВНУТРИ БАРА ПОСЛЕ ЗАКРЫТИЯ ПРЕДЫДУЩЕГО И ФОРМИРОВАНИЯ СИГНАЛА ИНДИКАТОРА.
Последний раз редактировалось Den 23 сен 2016, 23:26, всего редактировалось 1 раз.

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

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

Непрочитанное сообщение evge » 23 сен 2016, 23:25

И главное не верить никому на слово, а читать инструкцию и проверять самостоятельно, а то такого наговорят и насоветуют! :lol:

У нас у всех свои тараканы в голове! :) и я и вы можем ошибаться и делать неправильные выводы. :roll:
никогда такого не было и вот опять

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

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

Непрочитанное сообщение Den » 23 сен 2016, 23:27

Мне вот интересно, почему в АД запрещена подача заявок внутри бара?

МОЕ МНЕНИЕ - ОНИ УДЕРЖИВАЮТ АЛГОРИТМИЧЕСКУЮ ТОРГОВЛЮ ТАКИМ ОБРАЗОМ .
Последний раз редактировалось Den 23 сен 2016, 23:37, всего редактировалось 1 раз.

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

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

Непрочитанное сообщение evge » 23 сен 2016, 23:37

Den писал(а):Мне вот интересно, почему в АД запрещена подача заявок внутри бара?


Ну у всех по разному :), у меня не запрещена. Работает, если речь о EnterLongLimit(), EnterShortLimit().

Если вы о UseCloseBar, то да это не работает в АД в стратегиях.

OnUpdate() в стратегиях исполняется 1 раз на закрытии (текущего или как вам удобнее предыдущего бара)
и внутри функции доступны параметры свечки Input1.Close[0] (и т.д.) именно этого СФОРМИРОВАННОГО окончательно бара.
На текущем баре, информации о котором ещё нет в OnUpdate, вы только выставляете заявку. Например EnterLongLimit(ЦЕНА) с нужной ценой. Заявка ждёт исполнения и может исполниться внутри этого нового НЕсформированного на момент выставления заявки бара!

Никакие промежуточные его состояния не доступны, в отличие от индикатора, который может реагировать на изменения в цене на [0] баре, для индикаторов он текущий бар.

В индикаторе в Evaluate() вы можете оперировать [0] баром и его текущими, в реальном времени, значениями OHLC, Volume, VolumeBid/Ask.

И это не тоже самое что OnUpdate() в скриптах стратегий, где [0] это последний, окончательно сформированный бар (предыдущий т.е.) текущий ещё даже не появился и его значения (будущие) ещё не известны.
никогда такого не было и вот опять

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

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

Непрочитанное сообщение Den » 23 сен 2016, 23:42

Ну так и у меня не запрещена. ЧЕРЕЗ БАР !

В индикаторе в Evaluate() вы можете оперировать [0] баром и его текущими, в реальном времени изменяемыми, значениями OHLC, Volume, VolumeBid/Ask.

И это не тоже самое что OnUpdate() в скриптах стратегий


Этого не знал . Спасибо evge :D

НО , операции с индикаторами и стратегиями не смогут заставить робота подать заявку на текущем баре. Он все равно дождется его закрытия.

Вот пример с D-фреймом . Там Бар тянется весь день и робот ждет весь день . Внутри дня ( бара ) он ничего делать не будет.

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

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

Непрочитанное сообщение evge » 23 сен 2016, 23:50

Den писал(а):Вот пример с D-фреймом . Там Бар тянется весь день и робот ждет весь день . Внутри дня ( бара ) он ничего делать не будет.


Если заявку НЕ выставили по данным предыдущих баров (уже сформированных баров) и ваших условий сигнала, то не будет.

Если же вы получили сигнал и выставили, например EnterLongLimit(), то заявка появится и исполнится в течение дня, если цена дойдёт до цены в заявке. Заявка будет реальной и будет видна в списке заявок и на графике.

Исполнение будет внутри бара этого дня.
никогда такого не было и вот опять


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

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

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