Страница 6 из 7
Re: Анонсированное исполнение внутри бара не состоялось
Добавлено: 24 сен 2016, 01:33
Den
ну да это условие на открытие позиции.
Я просто не пойму никак что вы имеете ввиду под условиями для индикатора внутри [0]
И кстати, получается что через новые команды EnterLongLimit(); EnterShortLimit(); он может ЯКОБЫ подать заявку внутри бара на индикаторе
Input.Close[1] < Input.???[0] для EnterShortLimit() Что под знаками вопроса?
Re: Анонсированное исполнение внутри бара не состоялось
Добавлено: 24 сен 2016, 01:35
Doctor
evge писал(а):Это как пример!
Может быть, но он оказался вполне рабочим. Правда не стал пока писать-читать содержимое по причине возможных локов.
Re: Анонсированное исполнение внутри бара не состоялось
Добавлено: 24 сен 2016, 01:43
evge
Den писал(а):Input.Close[1] < Input.???[0] для EnterShortLimit() Что под знаками вопроса?
Ух. Ещё раз, это условие на вход в позицию. В нашем случае, условие на отправку заявки лимитированной по нужной нам цене.
Оно (условие) может быть каким угодно. Это и есть часть алгоритма, сигнал на вход по заданным условиям.
[0] входного ряда Input1 - это завершенный последний бар, т.е. на его Close формируется вызов OnUpdate(), в котором на основании ваших условий на вход в позицию, в том числе и ориентируясь на этот отрисованный бар и его OHLC, Volume принимаем решение на вход в позицию. Никакого текущего бара ещё нет, мы просто выставляет заявку в надежде на исполнение. Заявка эта уходит перед началом отрисовки нового бара (если успеет)
и после этого начинает рисоваться новый бар, дойдя до нашей цены он исполняет нашу заявку и идёт дальше!
Бинго, заявка исполнена внутри бара!
Re: Анонсированное исполнение внутри бара не состоялось
Добавлено: 24 сен 2016, 01:48
Den
Вот и я говорю
Ух ! Вы бы привели элементарный пример условия, при котором робот подаст заявку на текущем баре,
ПРИ УСЛОВИИ, ЧТО ЕМУ ЗАПРЕЩЕНО ПОСЫЛАТЬ ЗАЯВКИ НЕ ТЕКУЩЕМ БАРЕ.. Так бы я понял о чем вы ведете речь, я видимо стою на асфальте в лыжи обутый.
Re: Анонсированное исполнение внутри бара не состоялось
Добавлено: 24 сен 2016, 01:52
evge
Den писал(а):Вот и я говорю
Ух ! Вы бы привели элементарный пример условия, при котором робот подаст заявку на текущем баре.
Ну ладно ещё разок! Условие ЛЮБОЕ!
Не условие определяет исполнение внутри бара, а команда которой вы отошлёте ордер.
EnterLong() - отправит заявку по цене Close отрисованного бара +/- проскальзывание, она либо исполнится сразу если ликвидный инструмент и\или задано нормальное проскальзывание, либо выставится ордер LMT и будет ждать исполнения.
EnterLongLimit(ЦЕНА) - отправится заявка по нужной нам цене, исполнится она ВНУТРИ БАРА
т.к. она лимитная с конкретной ценой!
Re: Анонсированное исполнение внутри бара не состоялось
Добавлено: 24 сен 2016, 01:54
Den
для Input.Close[1]<Input.Close[0] понятно не он не подаст заявку , потому что еще нет Input.Close[0]
А что есть для сравнения с закрытым баром Input.Close[1] для команды EnterLongLimit(GetBid()) ?
ДЛЯ EnterLongLimit(GetBid()), которая исполняется прямо в бид, ЯКОБЫ МГНОВЕННО НЕ ТЕКУЩЕМ БАРЕ.
Re: Анонсированное исполнение внутри бара не состоялось
Добавлено: 24 сен 2016, 01:58
evge
Den писал(а):ДЛЯ EnterLongLimit(GetBid())
GetBid() - получить цену лучшего покупателя из стакана
смысл того, что вы написали такой
Выставить LMT заявку на покупку по такой же цене как у лучшего покупателя в стакане! Т.е. присоединится к покупателю, не исполнять сразу
Могут и не купить
почему она должна обязательно исполнится сразу? Ну на тестировании GetBid возвращает просто Close, т.к. там нет никаких стаканов.
В роботе она (GetBid()) будет возвращать лучшего покупателя. Это ненамного будет отличатся от вызова обычного EnterLong(), который покупает LMT ордером по цене Close отрисованного бара (+/- проскальзывание)
Re: Анонсированное исполнение внутри бара не состоялось
Добавлено: 24 сен 2016, 02:00
Den
EnterLongLimit(GetBid()- 5* GetPriceStep()); ???
это 5 пунктов от бида вглубь стакана.
Но что будет у текущего бара для сравнения с закрытым баром Input.Close[1] , для того, чтобы он подал заявку на текущем баре???
Re: Анонсированное исполнение внутри бара не состоялось
Добавлено: 24 сен 2016, 02:03
evge
Den писал(а):EnterLongLimit(GetBid()- 5* GetPriceStep()); ???
Это переводится так:
Выставить LMT ордер на покупку по цене ниже чем лучший покупатель на 5 шагов цены
т.е. стать в стакан на 5 шагов цены ниже.
И будем ждать пока цена дойдёт до нас в новом баре или через 5-10-15 баров - неизвестно.
Re: Анонсированное исполнение внутри бара не состоялось
Добавлено: 24 сен 2016, 02:05
Den
да , верно ! перепутал тогда EnterLongLimit(GeAsk()+ 5* GetPriceStep())
это как-бы мини-маркет заявка вглубь стакана на 5 пунктов вверх от первого продавца.
Но что будет у текущего бара для сравнения с закрытым баром Input.Close[1] , для того, чтобы он подал заявку на текущем баре???
робот не подаст эту заявку при условии Input.Close[1] < Input.Close[0]