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

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


Теги:


Спасибо:


vfreeman

Фотография
Дата: 19.03.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;

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

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

Спасибо:

Alexander

Фотография
Дата: 19.03.2012
Ответить


StackTrace

Спасибо:

vader

Фотография
Дата: 19.03.2012
Ответить


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

Спасибо:

Alexander

Фотография
Дата: 19.03.2012
Ответить


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

Спасибо:

Mikhail Sukhov

Фотография
Дата: 19.03.2012
Ответить


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

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

Спасибо:

vader

Фотография
Дата: 20.03.2012
Ответить


Спасибо.

Спасибо:

vader

Фотография
Дата: 23.03.2012
Ответить


Неправильное окугление цены в 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

Спасибо:

Alexander

Фотография
Дата: 27.03.2012
Ответить


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.

Спасибо:

Alexander

Фотография
Дата: 29.05.2012
Ответить


Пофиксил на codeplex

Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy