Ошибки при выставлении ордеров на Bitmex
День добрый!
1) Коннектор Bitmex.
2) Выставлял с терминала посредством Engine лимитные ордера, в вебинтерфейсе биржи ставил стоп-ордера.
3) Смоделировать ошибку несложно, нужно просто выставить лимитный ордер через терминал, либо выставить стоп-ордер через веб-интерфейс. Лимитный ордер отменяется через примерно 50 секунд. Причём, на бирже он выставляется.
4) Скрины прикрепил.
5) Логи.
При выставлении лимитки:
первая ошибка:
14.02.2019 1:38:37
Error
Newtonsoft.Json.JsonSerializationException: Error converting value {null} to type 'System.Double'. Path 'data[0].simpleLeavesQty', line 1, position 540. ---> System.InvalidCastException: Невозможно преобразовать тип данного объекта к типу значения.
в System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
--- Конец трассировки внутреннего стека исключений ---
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
в Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
в Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
в Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
в OsEngine.Market.Servers.BitMex.BitMexClient.Converter() в e:\OsEngine\project\OsEngine\Market\Servers\BitMex\BitMexClient.cs:строка 309
вторая и последующие ошибки:
14.02.2019 1:39:28
Error
Newtonsoft.Json.JsonSerializationException: Error converting value {null} to type 'System.Double'. Path '[0].simpleLeavesQty', line 1, position 497. ---> System.InvalidCastException: Невозможно преобразовать тип данного объекта к типу значения.
в System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
--- Конец трассировки внутреннего стека исключений ---
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
в Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
в Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
в Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
в OsEngine.Market.Servers.BitMex.BitMexServer.CheckOrders(String security) в e:\OsEngine\project\OsEngine\Market\Servers\BitMex\BitMexServer.cs:строка 2092
в OsEngine.Market.Servers.BitMex.BitMexServer.ExecutorOrdersThreadArea() в e:\OsEngine\project\OsEngine\Market\Servers\BitMex\BitMexServer.cs:строка 2056
При выставлении или передвижке стоп-ордера через веб-интерфейс:
14.02.2019 1:44:46
Error
Newtonsoft.Json.JsonSerializationException: Error converting value {null} to type 'System.Decimal'. Path 'data[0].price', line 1, position 362. ---> System.InvalidCastException: Невозможно преобразовать тип данного объекта к типу значения.
в System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
--- Конец трассировки внутреннего стека исключений ---
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
в Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
в Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
в Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
в OsEngine.Market.Servers.BitMex.BitMexClient.Converter() в e:\OsEngine\project\OsEngine\Market\Servers\BitMex\BitMexClient.cs:строка 298
Цитата: RobotsCreator
День добрый!
1) Коннектор Bitmex.
2) Выставлял с терминала посредством Engine лимитные ордера, в вебинтерфейсе биржи ставил стоп-ордера.
3) Смоделировать ошибку несложно, нужно просто выставить лимитный ордер через терминал, либо выставить стоп-ордер через веб-интерфейс. Лимитный ордер отменяется через примерно 50 секунд. Причём, на бирже он выставляется.
4) Скрины прикрепил.
5) Логи.
При выставлении лимитки:e:\OsEngine\project\OsEngine\Market\Servers\BitMex\BitMexClient.cs:строка 298
скачайте последнюю версию библиотеки с ГитХаба: https://github.com/AlexWan/OsEngine
Спасибо. С лимитками теперь всё хорошо. Со стоп-ордерами проблема сохраняется при любых манипуляциях с ними, лог:
14.02.2019 17:00:51
Error
Newtonsoft.Json.JsonSerializationException: Error converting value {null} to type 'System.Decimal'. Path 'data[0].price', line 1, position 362. ---> System.InvalidCastException: Невозможно преобразовать тип данного объекта к типу значения.
в System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
--- Конец трассировки внутреннего стека исключений ---
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
в Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
в Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
в Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
в OsEngine.Market.Servers.BitMex.BitMexClient.Converter()
Цитата: RobotsCreatorподолью завтра вечером фикс на гитХаб
Спасибо. С лимитками теперь всё хорошо. Со стоп-ордерами проблема сохраняется при любых манипуляциях с ними, лог:
в OsEngine.Market.Servers.BitMex.BitMexClient.Converter()
Цитата: Алексей Ван
подолью завтра вечером фикс на гитХаб
Спасибо, буду ждать!
Фикс не помог.
Теперь добавилось просто при прогрузке свечей и подключении к серверу битмекса. Лог:
17.02.2019 0:53:44 Error System.FormatException: Входная строка имела неверный формат.
в System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
в System.Number.ParseDecimal(String value, NumberStyles options, NumberFormatInfo numfmt)
в System.Convert.ToDecimal(String value)
в OsEngine.Market.Servers.BitMex.BitMexServerRealization._client_NewTrades(BitMexTrades trades) в D:\OsEngine-master\project\OsEngine\Market\Servers\BitMex\BitMexServer.cs:строка 1184
При манипуляции со стопами, лог:
17.02.2019 1:11:44 Error Newtonsoft.Json.JsonSerializationException: Error converting value {null} to type 'System.Decimal'. Path 'data[0].price', line 1, position 362. ---> System.InvalidCastException: Невозможно преобразовать тип данного объекта к типу значения.
в System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
--- Конец трассировки внутреннего стека исключений ---
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
в Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
в Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
в Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
в OsEngine.Market.Servers.BitMex.BitMexClient.Converter() в D:\OsEngine-master\project\OsEngine\Market\Servers\BitMex\BitMexClient.cs:строка 329
Цитата: RobotsCreator
Фикс не помог.
Теперь добавилось просто при прогрузке свечей и подключении к серверу битмекса. Лог:
в Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
в OsEngine.Market.Servers.BitMex.BitMexClient.Converter() в D:\OsEngine-master\project\OsEngine\Market\Servers\BitMex\BitMexClient.cs:строка 329
Внёс изменения. Попробуйте скачать заного
Продолжаем эпопею: последняя версия с гита. ОСА подключена к Битмекс. Если я на Битмексе через веб интреф. меняю например значение кредит плеча на парах,которые открыты у меня и в ОСЕ,то вот такая вот ошибочка.
15.03.2019 9:00:42_Error_Newtonsoft.Json.JsonSerializationException: Error converting value {null} to type 'System.Int32'. Path 'data[0].currentQty', line 1, position 764. ---> System.InvalidCastException: Невозможно преобразовать тип данного объекта к типу значения.
в System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
--- Конец трассировки внутреннего стека исключений ---
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
в Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
в Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
в Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
в OsEngine.Market.Servers.BitMex.BitMexClient.Converter() в d:\Osss\OsEngine-master_8\project\OsEngine\Market\Servers\BitMex\BitMexClient.cs:строка 377
Еще были и другие ошибочки, как воспроизведу - отпишусь!
Цитата: Lexuz77
Еще были и другие ошибочки, как воспроизведу - отпишусь!
пофиксил
Но я еще поймал. Последняя версия с фиксами: при выставлении / удалении ордера через вэбку битмекса в ОСА вылезают такие вот ошибочки
16.03.2019 2:34:24_Error_System.FormatException: Входная строка имела неверный формат.
в System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
в System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
в System.Convert.ToInt32(String value)
в OsEngine.Market.Servers.BitMex.BitMexServerRealization._client_MyOrderEvent(BitMexOrder myOrder) в d:\FORTS\OsEngine-master_test2\project\OsEngine\Market\Servers\BitMex\BitMexServer.cs:строка 1695
16.03.2019 2:34:25_Error_System.FormatException: Входная строка имела неверный формат.
в System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
в System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
в System.Convert.ToInt32(String value)
в OsEngine.Market.Servers.BitMex.BitMexServerRealization._client_MyOrderEvent(BitMexOrder myOrder) в d:\FORTS\OsEngine-master_test2\project\OsEngine\Market\Servers\BitMex\BitMexServer.cs:строка 1756
Цитата: Lexuz77
Но я еще поймал. Последняя версия с фиксами: при выставлении / удалении ордера через вэбку битмекса в ОСА вылезают такие вот ошибочки
Поставил обработчик
ООО «ВАН ТЕХНОЛОГИИ»т: +7 953 769 56 45
* Торговля на финансовых рынках связана с риском, который лежит на Вас.
* Ничто из написанного на сайте o-s-a.net не является рекомендацией.
* Если Вы этого не понимаете, не читайте этот сайт, ничего не покупайте.