我在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.mintick
和syminfo.pointvalue
,看看那里是否有线索,它们分别是0.1和1。
我唯一想到的也许是某种货币转换,但是我没有在策略中设定货币,资产的基本货币对是美元稳定币。即使我将货币设置为USD,也会出现相同的问题。
任何帮助将不胜感激
答案 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)
为避免头寸规模超过您的初始资本。