Вопрос про лимитные заявки

Вопрос про лимитные заявки
Atom
1/17/2012
fau


подскажите пожалуйста как создать лимитную заявку чтобы она работала пробовал так: 1) var order = this.BuyAtLimit(myPrice); order.ExpiryDate = candle.Time + _timeSpan; RegisterOrder(order); 2) var order = new Order { Portfolio = Portfolio, Price = myPrice, Security = Security, Volume = 1, Direction = OrderDirections.Buy, ExpiryDate = candle.Time + _timeSpan }; RegisterOrder(order); 3) var order = new Order { Portfolio = Portfolio, Price = myPrice, Security = Security, Volume = 1, Direction = OrderDirections.Buy, ExpiryDate = candle.Time + _timeSpan }; var strategy1 = new LimitQuotingStrategy(order); ChildStrategies.Add(strategy1);

в первых 2-х примерах пробовал и через котирование во всех 3-х случаях была покупка по цене открытия цена myPrice входит в Low/High диапазон свечи, т.е. заявка по идее должна исполниться ExpiryDate задаю верно




Thanks:


Alexander

Avatar
Date: 1/17/2012
Reply


ExpiryDate - в датах, а не времени Если цена открытия лучше myPrice - мы и покупаем по цене открытия.

Если надо по myPrice - надо покупать в точке когда цена равна myPrice. А не в начале свечки

P.S. Отвечаю, т.к. была помощь по проекту с переписыванием примеров. На подобные вопросы отвечаем в техподдержке.

Thanks: fau

fau

Avatar
Date: 1/17/2012
Reply


Alexander Mukhanchikov: Если надо по myPrice - надо покупать в точке когда цена равна myPrice. А не в начале свечки какая-то странная лимитная заявка выходит, исполняется по текущей рыночной цене [blink] надеюсь все-таки что у меня с ExpiryDate ошибка Alexander Mukhanchikov: P.S. Отвечаю, т.к. была помощь по проекту с переписыванием примеров. На подобные вопросы отвечаем в техподдержке. если робот что-то заработает, и останутся вопросы, плавно перемещусь в техподдержку :)

Thanks:

fau

Avatar
Date: 1/17/2012
Reply


Alexander Mukhanchikov: Если цена открытия лучше myPrice - мы и покупаем по цене открытия. в том-то и дело что хуже

Alexander Mukhanchikov: Если надо по myPrice - надо покупать в точке когда цена равна myPrice. А не в начале свечки ок, сделал чтобы не в начале примерно получилось так: this .When(base.Security.BestBidPriceMore(new Unit(myPrice, UnitTypes.Limit))) .Do(GoSell) .Periodical(GetState); получается я сначала жду цену, потом выставляю заявку, а мне всего-то надо как в терминале выставить заявку по конкретной цене

Alexander Mukhanchikov: P.S. Отвечаю, т.к. была помощь по проекту с переписыванием примеров. На подобные вопросы отвечаем в техподдержке. ну возможно кто-то еще ответит, лимитные заявки-то я думаю многие используют

Thanks:

Mikhail Sukhov

Avatar
Date: 1/17/2012
Reply


Чтобы примерно понять, что происходит. Есть ли какие то абсолютные значение? Цены, объемы, время... Или собрать минимальный код для воспроизведения ошибки.

Thanks: fau

fau

Avatar
Date: 1/17/2012
Reply


Mikhail Sukhov: Чтобы примерно понять, что происходит. Есть ли какие то абсолютные значение? Цены, объемы, время... Или собрать минимальный код для воспроизведения ошибки. http://rghost.ru/35959763 тут код с 4-мя вариантами сделано на основе Samples\Testing\SampleHistoryTesting, можно туда же закинуть и вопроизвести я тестил на сберофьюче за один день: var security = new Security { Id = "SPFB.SBRF@RTS", Code = "SPFB.SBRF", Name = "SBRF", MinStepSize = 1, MinStepPrice = 1, Exchange = Exchange.Test, }; заявка: Покупка 17.01.2011 10:05:01 10890,00000 10836,00000 Не активна Исполнена сделка: 17.01.2011 10:05:01 10836,00000 1 Покупка

Thanks:

Mikhail Sukhov

Avatar
Date: 1/18/2012
Reply


fau: заявка: Покупка 17.01.2011 10:05:01 10890,00000 10836,00000 Не активна Исполнена сделка: 17.01.2011 10:05:01 10836,00000 1 Покупка

А где ошибка? Выставили по 10890 покупку. Но купили по 10836. Нормально явление, если стакан в этот момент были с лучшим офером на 10836.

Thanks: fau

fau

Avatar
Date: 1/18/2012
Reply


Mikhail Sukhov: А где ошибка? Выставили по 10890 покупку. Но купили по 10836. Нормально явление, если стакан в этот момент были с лучшим офером на 10836. [blink] а смысл тогда вообще цену указывать, если покупка будет всегда по рыночной? и в чем разница между BuyAtLimit(myPrice) и BuyAtMarket() ?

ладно, пускай это будет нормально, есть ли какое-то стандартное решение для того чтобы купить по 10890 если позволяет цена? вариант 4 в файле подойдет?

Thanks:

Alexander

Avatar
Date: 1/18/2012
Reply


fau:

Mikhail Sukhov: А где ошибка? Выставили по 10890 покупку. Но купили по 10836. Нормально явление, если стакан в этот момент были с лучшим офером на 10836. [blink] а смысл тогда вообще цену указывать, если покупка будет всегда по рыночной? и в чем разница между BuyAtLimit(myPrice) и BuyAtMarket() ?

ладно, пускай это будет нормально, есть ли какое-то стандартное решение для того чтобы купить по 10890 если позволяет цена? вариант 4 в файле подойдет?

Смысл в следующем. Вы когда торгуете на рынке, пусть лучшая цена в стакане на продажу 105. Вы посылаете: купить по 110.

Вы купите именно по 105, т.к. это будет лучшая цена.

Если в стакане лучшая цена на продажу равна 115, то ваша заявка выставится лимиткой в стакан по цене 110.

Тестирование происходит ровно таким же образом, всё в точности как и на настоящем рынке.

Thanks: fau

fau

Avatar
Date: 1/18/2012
Reply


разобрался :) спасибо за ответы!

Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy