Проблема - невозможно отправить заявку с дробной ценой на 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

Вызывайте просто

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