Проблема - невозможно отправить заявку с дробной ценой на FORTS

Проблема - невозможно отправить заявку с дробной ценой на FORTS
Atom
3/19/2012
vader


Если отправить заявку с ценой 18300.5, то эта заявка не пройдет.
Более того, даже если отправить заявку с целой ценой она тоже может не пройти -
Код ошибки WrongSyntax Сообщение ACCOUNT=SPBFUT00398; TRANS_ID=57349688; CLASSCODE=SPBFUT; SECCODE=LKM2; QUANTITY=5; CLIENT_CODE=s07; OPERATION=B; TYPE=L; ACTION=NEW_ORDER; PRICE=18200,0000000;

Tags:


Thanks:


vfreeman

Avatar
Date: 3/19/2012
Reply


vader
Если отправить заявку с ценой 18300.5, то эта заявка не пройдет.
Более того, даже если отправить заявку с целой ценой она тоже может не пройти -
Код ошибки WrongSyntax Сообщение ACCOUNT=SPBFUT00398; TRANS_ID=57349688; CLASSCODE=SPBFUT; SECCODE=LKM2; QUANTITY=5; CLIENT_CODE=s07; OPERATION=B; TYPE=L; ACTION=NEW_ORDER; PRICE=18200,0000000;


а в чем состоит вопрос?

на всякий случай, может следует воспользоваться ShrinkPrice?
Thanks:

Alexander

Avatar
Date: 3/19/2012
Reply


StackTrace
Thanks:

vader

Avatar
Date: 3/19/2012
Reply


vfreeman
Вопрос состоит в том, что если отправить заявку с допустимой ценой, такой как 18300, то эта заявка может быть отклонена из-за неправильного синтаксиса.

StackTrace
в #=qF6uhJ6Ve3rBqBsj30jYv24K9B$1do6mxEeZg62oXHdfERxVqkIZq3QM7Q8DedTEZ.#=qryE2QlcrbbrMXnM4ybpxHg==(Int32 #=q8JpkEgOPJ62SmKICPVDW4A==, StringBuilder #=quNHxNiQ7RXYqR6sY_8Cdgg==)
в #=q6_bJnTxTmM4Bv8VAkuzX16N9kITey0Q0shlRx5OmuCI=.#=qT29nW$7XhRVru2DGAJ35k6fNpjLmr9Ele_hXAFXFvjA=(String #=qRoY7Nt6B5m0Fj1yxkFndyw==, OrderStatus& #=q9pK9DoyRhEdcFn9FGDfzGA==, UInt32& #=qFdreHgayDLlhmHGk5_FQ2Q==, Int64& #=qtIj2YBLeyNdUkTYRHvNo0Q==, String& #=qwCtdc2MI5H3AI4eD_yxcag==)
в StockSharp.Quik.QuikTrader.#=qtheK_M6o_aHg$Ehrs6dHnAbhJHfInIWz1$HsNBUMTkc=(Order #=qjShvemxQZnL_0t4qJbxsUQ==, TransactionBuilder #=qoS97U74WoFWYvGl4_AC_vQ==)
в StockSharp.Quik.QuikTrader.OnRegisterOrder(Order order)
в StockSharp.Algo.BaseTrader.RegisterOrder(Order order)
в ConservativeRegimeByRules..ctor(Task task, InfoAboutBigVolume infoAboutBigVolume) в C:\vb\General\PartizanV2\source\v.2.0\ConservativeRegimeByRules.cs:строка 48
Thanks:

Alexander

Avatar
Date: 3/19/2012
Reply


воспоспользуйтесь Ecng.Common.StringHelper.RemoveTrailingZeros или ShrinkPrice
Thanks:

Mikhail Sukhov

Avatar
Date: 3/19/2012
Reply


Alexander Mukhanchikov
воспоспользуйтесь Ecng.Common.StringHelper.RemoveTrailingZeros или ShrinkPrice


В последнее версии второе включает первое.
Thanks:

vader

Avatar
Date: 3/20/2012
Reply


Спасибо.
Thanks:

vader

Avatar
Date: 3/23/2012
Reply


Неправильное окугление цены в ShrinkPrice

WriteDiagnostics("original pr " + price);
WriteDiagnostics("Shrink pr " + Security.ShrinkPrice(price, Direction == OrderDirections.Buy ? ShrinkRules.Less : ShrinkRules.More));

Результат

Sell
original pr 161500,0000000
Shrink pr 161505

Buy
original pr 161500,00
Shrink pr 161500

Sell
original pr 160500,00
Shrink pr 160505

Sell
original pr 160615,0000000
Shrink pr 160620

Thanks:

Alexander

Avatar
Date: 3/27/2012
Reply


vader
Неправильное окугление цены в ShrinkPrice

WriteDiagnostics("original pr " + price);
WriteDiagnostics("Shrink pr " + Security.ShrinkPrice(price, Direction == OrderDirections.Buy ? ShrinkRules.Less : ShrinkRules.More));

Результат

Sell
original pr 161500,0000000
Shrink pr 161505

Buy
original pr 161500,00
Shrink pr 161500

Sell
original pr 160500,00
Shrink pr 160505

Sell
original pr 160615,0000000
Shrink pr 160620



Вызывайте просто
Code
Security.ShrinkPrice(price)


Иначе он приводит к MidpointRounding.AwayFromZero если Less и к MidpointRounding.ToEven если More.
Thanks:

Alexander

Avatar
Date: 5/29/2012
Reply


Пофиксил на codeplex
Thanks:


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

loading
clippy