首页 > 解决方案 > 交易查看警报中的 JSON 浮动

问题描述

我正在构建一个自动止损机制,将 pinescript JSON 警报发送到烧瓶,然后再发送到另一个应用程序。该机器人将设置止损水平,我可以获取完整的 JSON 消息,但我遇到了一些问题,我似乎无法将浮点变量中的变量插入 JSON 警报。pinescript 中的错误有点令人困惑,因为它说期望浮点数而不是字符串。但在 PS 脚本中,变量只是“永远”一个浮点数。“不能用'expr1'=string调用'operator +'。参数的类型应该是:series[float]” 接下来我尝试将float转换为字符串,然后将其插入JSON脚本。这似乎从变量中读取了正确的价格水平,但现在的问题是经纪人期望浮动而不是字符串并拒绝订单。所以它有点像石头和坚硬的地方。如果可能的话,我想避免将字符串转换回接收服务器上的浮点数。(float-->string-->float) 我怀疑我的语法错误或者我需要使用其他方法。任何人都可以帮忙吗?谢谢

var symbol = syminfo.tickerid
var trailPrice = 0.00
t_trailPrice = float(variation -spread)


var avPrefix = "e=alpacapaper  "  + " s=" + symbol 

//IBK Message
if (barstate.islast)
    if (t_trailPrice > trailPrice or trailPrice == 0.00) and barstate.isconfirmed 
        trailPrice := t_trailPrice
        alert('{"ticker": "' + syminfo.ticker + '", "strategy": {"order_action": "buy", "order_contracts": 144.66, "order_price": "' +  t_trailPrice + '"}}', freq=alert.freq_once_per_bar_close)

标签: jsonpine-script

解决方案


对于版本 5,tostring() 已更改为 str。命名空间。要将 float 或 int 更改为字符串,您现在可以使用 str.tostring() 函数。例如。

+ str.tostring(t_trailPrice) + etc. 

干杯我的朋友

编辑

我看到您有一组额外的引文可能会导致您的问题。注意你的字典的构造。并将警报发送到您的电子邮件以验证它们的呈现方式。此处的代码将 trailprice 呈现为浮点数。

//IBK Message
if (barstate.islast)
    if (t_trailPrice > trailPrice or trailPrice == 0.00) and barstate.isconfirmed 
        trailPrice := t_trailPrice
        alert('{"ticker": "' + syminfo.ticker + '", "strategy": {"order_action": "buy", "order_contracts": 144.66, "order_price": ' +  str.tostring(t_trailPrice) + '}}', freq=alert.freq_once_per_bar_close)
        

干杯和好运


推荐阅读