ExchangeInfo format:
The PERCENT_PRICE filter defines valid range for a price based on the average of the previous trades. avgPriceMins is the number of minutes the average price is calculated over. 0 means the last price is used.
In order to pass the percent price, the following must be true for price:
Пример, в логе TSLab
06:45:02.80[13]DEBUG:[Crypto] API: 2020/02/23 06:45:02:808 | Warning | Server returned an error: {"code":-1013,"msg":"Filter failure: PERCENT_PRICE"}
Причина: Слишком маленькая цена, при выставлении заявки или слишком высокая. 06:45:01.78[45]DEBUG:Crypto:Crypto:BTCUSDT:Binance:New order starting for id=123456789 buy=True price=1 quantity=0.048084 cnt=6 sp=
06:45:02.83[46]DEBUG:Агент 'XX':383295470:[Crypto:Crypto]:-1013: Filter failure: PERCENT_PRICE
06:45:02.84[46]INFO :206:Error:TradeScript:(Script:XX)(DSName:Crypto):Агент 'XX'123456789:[Crypto:Crypto]:-1013: Filter failure: PERCENT_PRICE
Агент выставляет заявку по цене price=1 , при текущей порядка 6600.
Убедитесь, что в торговых настройках агента не установлено огромное проскальзывание для условных заявок.
Убедитесь, что цена в лимитной заявке выставляется верной.
Исправьте скрипт, при необходимости.
Когда не понятно, откуда такая цена расчитывается, поиск проблемы может быть следующим: Выведите все зависимые величины на график, от которых зависит расчет цены для заявки.
Если в скрипте лаборатории всё рассчитывается верно, то сравните скрипт лаборатории и агент в момент выставления заявки.