Получение ошибки «передано значение 0.000000» при пропуске числа меньше 1 на некоторых торговых парах - PullRequest
0 голосов
/ 28 марта 2020

У меня есть следующий код в Pine Script:

strategy.entry("REV", strategy.long, comment="REV", qty=0.9)

Запуск его с тикером SHITPERP на обмене FTX выдает ошибку:

« количество для входа или заказа должно быть положительным числом, меньшим или равным 1000000000.000000, переданное значение равно 0,000000 «

Значение qty, как представляется, округляется до нуля. Если я изменю его на 1.9, то он будет работать, но в результате размер позиции составит 1

. Эти ордера прекрасно работают в самой бирже и не округляются до ближайшего целого числа.

Есть ли какой-то предел минимального размера ордера при использовании Strategy.entry или Strategy.order? Есть ли переменная, которую я могу проверить или расчет, необходимый для того, чтобы такие заказы не вызывали ошибок? Я столкнулся с этой проблемой с различными скриптами на разных ресурсах

Я также проверил syminfo.mintick и syminfo.pointvalue, чтобы увидеть, есть ли какая-то подсказка, и они равны 0,1 и 1 соответственно

Единственное Я могу подумать, что, возможно, это какая-то конвертация валюты, но я не устанавливаю валюту в стратегии, а базовая пара для актива - стабильная монета в долларах. Даже если я установлю валюту в USD, возникнет та же проблема.

Любая помощь будет принята с благодарностью

Ответы [ 2 ]

0 голосов
/ 05 мая 2020

Спасибо за ваш ответ! Эта ошибка беспокоила меня, так как они обновляются до Pine 4.0 Теперь я знаю, где ее исправить:)

Простое решение; установите значение if, чтобы проверить, что переменная меньше 1, а затем присвойте ей значение 1.

unit_size = ( result of position size calculation )

if (unit_size < 1)
    unit_size := 1

strategy.entry("REV", strategy.long, comment="REV", qty=unit_size)

Или вы можете изменить значение unit_size на -1, чтобы использовать команду if для проверки перед командой стратегии.entry

if (unit_size < 1)
    unit_size := -1
if (unit_size > 0 )
    strategy.entry("REV", strategy.long, comment="REV", qty=unit_size)

Чтобы избежать размера позиции больше, чем ваш начальный капитал.

0 голосов
/ 01 апреля 2020

Получил ответ от @Pinecoders в чате просмотра торгов. Кажется, что для активов есть значение шага, а для некоторых, например SHITPERP, оно еще не определено. В этом случае значение по умолчанию равно 1, что означает, что частичные ордера будут округлены до ближайшего целого числа.

...