在某些交易对上传递的浮点小于1时出现错误“传递的值为0.000000”

时间:2020-03-28 08:23:49

标签: pine-script

我在pine脚本中有以下代码:

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

在FTX交易所上对代码SHITPERP进行交易会产生错误:

“输入或订单的数量必须为小于或等于1000000000.000000的正数,传递的值为0.000000”

qty值似乎四舍五入。如果我将其更改为1.9,那么它可以工作,但结果仓位大小为1

这些订单在交易所本身也能正常工作,并且不会四舍五入到最接近的整数。

使用strategy.entry或strategy.order时是否存在某种最小订单大小限制?我是否可以检查或计算必要的变量以使这样的订单不会抛出错误?我在不同资产上使用各种脚本遇到了这个问题

我还检查了syminfo.minticksyminfo.pointvalue,看看那里是否有线索,它们分别是0.1和1。

我唯一想到的也许是某种货币转换,但是我没有在策略中设定货币,资产的基本货币对是美元稳定币。即使我将货币设置为USD,也会出现相同的问题。

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

在交易视图聊天中从@Pinecoders得到答案。资产似乎有一个步进值,而对于SHITPERP之类的资产,则尚未定义。在这种情况下,默认值为1,这意味着部分订单将四舍五入为最接近的整数。

答案 1 :(得分:0)

谢谢您的回答! 因为他们升级到Pine 4.0,这个错误困扰着我 现在我知道该在哪里修复了:)

简单的解决方案;放一些是否检查变量是否小于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”在strategy.entry命令之前进行检查

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

为避免头寸规模超过您的初始资本。