检查是否在特定位置

时间:2018-12-29 01:52:07

标签: tradingview-api pine-script

这将解决我遇到的一个更复杂的问题。

我的代码中有两行:

strategy.entry(id = "Long", long = true, when = upAllConditions, stop = upStopLoss)
strategy.entry(id = "Short", long = true, when = upAllConditions, stop = upStopLoss)

我似乎无法弄清楚如何检查自己是否处于这些职位之一。

如果我处于“多头”位置,我不想做空;如果我处于“空头”位置,我不想做多。

(更复杂的问题是,我实际上想根据我所处的位置使用不同的止损值,因此需要进行检查。这似乎是一种更容易提出的方法)

2 个答案:

答案 0 :(得分:0)

使用内置变量strategy.position_size

  

当前市场位置的方向和大小。如果该值> 0,则市场头寸很长。如果该值<0,则市场空头。绝对值是交易中合约/股份/手/单位的数量(头寸大小)。

答案 1 :(得分:0)

我认为,您应该通过以下方式通过历史记录该职位的状态:

IN_SHORT = 1
IN_LONG = 2
NONE = 3

status = NONE
status := nz(status[1], NONE)

if status != IN_SHORT and upAllConditions
    strategy.entry(id = "Long", long = true, when = upAllConditions, stop = upStopLoss)
    status = IN_LONG