Общие вопросы по разработке > Анонсированное исполнение внутри бара не состоялось
Re: Анонсированное исполнение внутри бара не состоялось
Добрый День,
Запустил для наглядности в роботе и тестере Alfa_SS - пересечение двух средних. На закрытии бара А и В принимается решение. В роботе на следующем баре практически сразу виден сам приказ и исполнение. В свойствах приказов задержки 03.367сек, 00.886сек и 03.215сек. А тестер считает просто закрытие А и В.
Если речь не идет о смене дня или торговой сессии, то разница минимальна - на первые сделки в баре. В реале, закрытие позиции и открытие новой может произойти по разным ценам.
Так что если обсуждаются ответы ех которые чуть ниже, то вроде все честно, в пределах погрешности самого АД4
ex:
Ответ
EnterShortLimit подается на закрытии бара. Единственное отличие от EnterShort, в котором в качестве цены идет всегда цена закрытия бара, то что можно указать произвольную цену.
ex:
Ответ
EnterShortLimit(GetBid()) исполняется моментально
Запустил для наглядности в роботе и тестере Alfa_SS - пересечение двух средних. На закрытии бара А и В принимается решение. В роботе на следующем баре практически сразу виден сам приказ и исполнение. В свойствах приказов задержки 03.367сек, 00.886сек и 03.215сек. А тестер считает просто закрытие А и В.
Если речь не идет о смене дня или торговой сессии, то разница минимальна - на первые сделки в баре. В реале, закрытие позиции и открытие новой может произойти по разным ценам.
Так что если обсуждаются ответы ех которые чуть ниже, то вроде все честно, в пределах погрешности самого АД4
ex:
Ответ
EnterShortLimit подается на закрытии бара. Единственное отличие от EnterShort, в котором в качестве цены идет всегда цена закрытия бара, то что можно указать произвольную цену.
ex:
Ответ
EnterShortLimit(GetBid()) исполняется моментально
Re: Анонсированное исполнение внутри бара не состоялось
ЧТО МОЖЕТ БЫТЬ ПРОЩЕ АКТИВИРОВАТЬ УЖЕ ИМЕЮЩИЙСЯ ПУНКТ ОПТИМИЗАЦИИ ?
Re: Анонсированное исполнение внутри бара не состоялось
сигнал ИНДИКАТОРА на ПРОДАЖУ появился 20.09.16 на уровне 66.158 , а поступит он на исполнение только 21.09.16 на закрытии текущего бара на уровне 65.158.
РАЗНИЦА 1.000 ПУНКТОВ !!!
РАЗНИЦА 1.000 ПУНКТОВ !!!
Re: Анонсированное исполнение внутри бара не состоялось
1. Специально взял простой и очевидный пример который вы сможете попробовать, посмотреть в работе и может быть понять. Во время формирования баров А и В (когда в течении минуты проходят сделки и close постоянно меняется) картина с пересечением средних тоже меняется. Пересечение средних то есть, то его нет. И собственно мы можем твердо сказать что пересечение состоялось только когда бар закрылся и перестал меняться. Сейчас тестер просто берет из истории цену закрытия (если нужно то и другие параметры свечи) и сразу считает окончательные результаты индикаторов. По результатам вычисления можно сразу принимать решение. Что и видно из снятого экрана.
2. Если внимательно почитать п1 то станет очевидно почему "Исполнить сигнал на закрытии" не работает. Дело не в меню. Чтобы тестировать на истории нужно будет знать не только бары, но и иметь тики сделок для каждого бара. (чтобы воспроизвести процесс формирования свечки).
И еще, обычно, когда де-активируешь "Исполнить сигнал на закрытии" стратегии тоже пишутся по другому. Например в Alfa_SS придется отслеживать чтобы не открыть позицию несколько раз за бар. Или позиция открылась, а цена ушла в другую сторону и после закрытия бара оказалось что пересечения средних не состоялось, а позиция есть
Надесь теперь очевидно что введение параметра в EnterShortLimit() никак не связано с этим меню. Это - решение другой проблемы и просто повышает шансы на исполнения заявок. Как видно из работы робота цена закрытия бара А (или В) может отличаться от открытия следующего бара.
2. Если внимательно почитать п1 то станет очевидно почему "Исполнить сигнал на закрытии" не работает. Дело не в меню. Чтобы тестировать на истории нужно будет знать не только бары, но и иметь тики сделок для каждого бара. (чтобы воспроизвести процесс формирования свечки).
И еще, обычно, когда де-активируешь "Исполнить сигнал на закрытии" стратегии тоже пишутся по другому. Например в Alfa_SS придется отслеживать чтобы не открыть позицию несколько раз за бар. Или позиция открылась, а цена ушла в другую сторону и после закрытия бара оказалось что пересечения средних не состоялось, а позиция есть
Надесь теперь очевидно что введение параметра в EnterShortLimit() никак не связано с этим меню. Это - решение другой проблемы и просто повышает шансы на исполнения заявок. Как видно из работы робота цена закрытия бара А (или В) может отличаться от открытия следующего бара.
Re: Анонсированное исполнение внутри бара не состоялось
1. Cигнал индикатора появляется исключительно на закрытии бара в АД. И потом он висит весь текущий бар. Я ж говорю , откройте D-фрейм и вы сразу все воочию увидите. Там проходит ровно день "висения" сигнала индикатора и только на следующий день робот его исполняет.
2. А уже говорили, что тестирование не будет доступно на исторических данных при UseClosedBar==False
Это тут не причем.
В АДу до сих пор запрещена подача заявок внутри бара. Потому что UseClosedBar==True
3. Для того, чтобы не было исполнения нескольких сигналов в баре д.б. установлен запрет на исполнение повторных сигналов в одном направлении на одном баре, поэтому, если вам пришло несколько таких сигналов на одном баре, исполнен будет только первый из них- все очень просто.
4. EnterShortLimit() действительно никак не влияет на исполнение внутри, потому что оно как было внутри так и осталось .
ЗАПРЕЩЕНА ПОДАЧА ЗАЯВОК ВНУТРИ БАРА ПОСЛЕ ЗАКРЫТИЯ ПРЕДЫДУЩЕГО И ФОРМИРОВАНИЯ СИГНАЛА ИНДИКАТОРА.
2. А уже говорили, что тестирование не будет доступно на исторических данных при UseClosedBar==False
Это тут не причем.
В АДу до сих пор запрещена подача заявок внутри бара. Потому что UseClosedBar==True
3. Для того, чтобы не было исполнения нескольких сигналов в баре д.б. установлен запрет на исполнение повторных сигналов в одном направлении на одном баре, поэтому, если вам пришло несколько таких сигналов на одном баре, исполнен будет только первый из них- все очень просто.
4. EnterShortLimit() действительно никак не влияет на исполнение внутри, потому что оно как было внутри так и осталось .
ЗАПРЕЩЕНА ПОДАЧА ЗАЯВОК ВНУТРИ БАРА ПОСЛЕ ЗАКРЫТИЯ ПРЕДЫДУЩЕГО И ФОРМИРОВАНИЯ СИГНАЛА ИНДИКАТОРА.
Последний раз редактировалось Den 23 сен 2016, 23:26, всего редактировалось 1 раз.
- evge
- Администратор
- Сообщения: 1812
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Анонсированное исполнение внутри бара не состоялось
И главное не верить никому на слово, а читать инструкцию и проверять самостоятельно, а то такого наговорят и насоветуют!
У нас у всех свои тараканы в голове! и я и вы можем ошибаться и делать неправильные выводы.
У нас у всех свои тараканы в голове! и я и вы можем ошибаться и делать неправильные выводы.
никогда такого не было и вот опять
Re: Анонсированное исполнение внутри бара не состоялось
Мне вот интересно, почему в АД запрещена подача заявок внутри бара?
МОЕ МНЕНИЕ - ОНИ УДЕРЖИВАЮТ АЛГОРИТМИЧЕСКУЮ ТОРГОВЛЮ ТАКИМ ОБРАЗОМ .
МОЕ МНЕНИЕ - ОНИ УДЕРЖИВАЮТ АЛГОРИТМИЧЕСКУЮ ТОРГОВЛЮ ТАКИМ ОБРАЗОМ .
Последний раз редактировалось Den 23 сен 2016, 23:37, всего редактировалось 1 раз.
- evge
- Администратор
- Сообщения: 1812
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Анонсированное исполнение внутри бара не состоялось
Den писал(а):Мне вот интересно, почему в АД запрещена подача заявок внутри бара?
Ну у всех по разному , у меня не запрещена. Работает, если речь о EnterLongLimit(), EnterShortLimit().
Если вы о UseCloseBar, то да это не работает в АД в стратегиях.
OnUpdate() в стратегиях исполняется 1 раз на закрытии (текущего или как вам удобнее предыдущего бара)
и внутри функции доступны параметры свечки Input1.Close[0] (и т.д.) именно этого СФОРМИРОВАННОГО окончательно бара.
На текущем баре, информации о котором ещё нет в OnUpdate, вы только выставляете заявку. Например EnterLongLimit(ЦЕНА) с нужной ценой. Заявка ждёт исполнения и может исполниться внутри этого нового НЕсформированного на момент выставления заявки бара!
Никакие промежуточные его состояния не доступны, в отличие от индикатора, который может реагировать на изменения в цене на [0] баре, для индикаторов он текущий бар.
В индикаторе в Evaluate() вы можете оперировать [0] баром и его текущими, в реальном времени, значениями OHLC, Volume, VolumeBid/Ask.
И это не тоже самое что OnUpdate() в скриптах стратегий, где [0] это последний, окончательно сформированный бар (предыдущий т.е.) текущий ещё даже не появился и его значения (будущие) ещё не известны.
никогда такого не было и вот опять
Re: Анонсированное исполнение внутри бара не состоялось
Ну так и у меня не запрещена. ЧЕРЕЗ БАР !
В индикаторе в Evaluate() вы можете оперировать [0] баром и его текущими, в реальном времени изменяемыми, значениями OHLC, Volume, VolumeBid/Ask.
И это не тоже самое что OnUpdate() в скриптах стратегий
Этого не знал . Спасибо evge
НО , операции с индикаторами и стратегиями не смогут заставить робота подать заявку на текущем баре. Он все равно дождется его закрытия.
Вот пример с D-фреймом . Там Бар тянется весь день и робот ждет весь день . Внутри дня ( бара ) он ничего делать не будет.
В индикаторе в Evaluate() вы можете оперировать [0] баром и его текущими, в реальном времени изменяемыми, значениями OHLC, Volume, VolumeBid/Ask.
И это не тоже самое что OnUpdate() в скриптах стратегий
Этого не знал . Спасибо evge
НО , операции с индикаторами и стратегиями не смогут заставить робота подать заявку на текущем баре. Он все равно дождется его закрытия.
Вот пример с D-фреймом . Там Бар тянется весь день и робот ждет весь день . Внутри дня ( бара ) он ничего делать не будет.
- evge
- Администратор
- Сообщения: 1812
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 367 раз
- Контактная информация:
Re: Анонсированное исполнение внутри бара не состоялось
Den писал(а):Вот пример с D-фреймом . Там Бар тянется весь день и робот ждет весь день . Внутри дня ( бара ) он ничего делать не будет.
Если заявку НЕ выставили по данным предыдущих баров (уже сформированных баров) и ваших условий сигнала, то не будет.
Если же вы получили сигнал и выставили, например EnterLongLimit(), то заявка появится и исполнится в течение дня, если цена дойдёт до цены в заявке. Заявка будет реальной и будет видна в списке заявок и на графике.
Исполнение будет внутри бара этого дня.
никогда такого не было и вот опять
Вернуться в «Общие вопросы по разработке»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя