Страница 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
Вот и я говорю Ух ! :lol:

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

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

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

Добавлено: 24 сен 2016, 01:52
evge
Den писал(а):Вот и я говорю Ух ! :lol:

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


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

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

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]