分别管理金字塔订单的止损

时间:2020-01-06 03:55:04

标签: pine-script

我正在寻找一种直接直接管理金字塔订单的方法。我尝试使用strategy.position_entry_name函数,但显然它仅引用最早的开放交易。

例如,在下面的脚本中,我想做我从LONG 1到LONG 2和3的停止操作。从理论上讲,我可以使用strategy.opentrades来引用它们,但这在某些情况下是不可靠的LONG 1停止并且LONG 2和3仍然打开,LONG 3将再次打开,因为未平仓交易从3减少到2。理想情况下,我希望代码直接识别出它仍持有LONG 3,因此不应将其打开再次。

我们将不胜感激,谢谢!

//@version=4
strategy("Manage Pyramid Stop Orders Individually", shorttitle='MPSOI' , overlay=true, pyramiding=3)

MA = sma(close, 50)

Buy = MA > MA[1]
Sell = MA < MA[1]

PositionSize = strategy.initial_capital/close
Stops = low

//LONG STOPS
Long1InPosition = strategy.position_entry_name == 'LONG 1'
Long1_Stops = Stops
Long1_Stops := Long1InPosition ? Long1_Stops[1] : low

Long2InPosition = strategy.position_entry_name == 'LONG 2'
Long2_Stops = Stops
Long2_Stops := Long2InPosition ? Long2_Stops[1] : low

Long3InPosition = strategy.position_entry_name == 'LONG 3'
Long3_Stops = Stops
Long3_Stops := Long3InPosition ? Long3_Stops[1] : low


if strategy.opentrades == 0
    strategy.entry("LONG 1", strategy.long, qty=PositionSize, when=Buy)

if strategy.opentrades == 1
    strategy.entry("LONG 2", strategy.long, qty=PositionSize, when=Buy)

if strategy.opentrades == 2
    strategy.entry("LONG 3", strategy.long, qty=PositionSize, when=Buy)


strategy.exit("LONG 1 Exit", 'LONG 1', stop=Long1_Stops)
strategy.exit("LONG 2 Exit", 'LONG 2', stop=Long2_Stops)
strategy.exit("LONG 3 Exit", 'LONG 3', stop=Long3_Stops)

strategy.close_all(when=Sell)
strategy.cancel_all(when=Sell)


//PLOTS
MAcolor = Buy ? color.lime : Sell ? color.red : color.gray
plot(MA, color=MAcolor, title='MA', linewidth=3)
plot(Long1_Stops, color=color.red, title='Long1_Stop', style=plot.style_linebr)
plot(Long2_Stops, color=color.maroon, title='Long2_Stop', style=plot.style_linebr)
plot(Long3_Stops, color=color.purple, title='Long3_Stop', style=plot.style_linebr)

bgcolor(Long1InPosition ? color.lime : na)
bgcolor(Long2InPosition ? color.olive : na)
bgcolor(Long3InPosition ? color.teal : na)

1 个答案:

答案 0 :(得分:0)

我会尝试使用strategy.order而不是strategy.entrystrategy.exit

请注意,使用strategy.order意味着金字塔设置无效,您必须自己管理金字塔效果。