微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将策略条目Consequence entry的数量限制为特定条件?

如何解决如何将策略条目Consequence entry的数量限制为特定条件?

我试图在初始输入后限制额外的条目,直到满足关闭条件(所以在初始订单填充和 TP/SL 达到后,在关闭条件发生之前不允许其他条目,只有这样才能再次允许新条目) Pyramidingstrategy.risk.max_inTraday_filled_orders() 没有解决我的问题, 下面是我的代码

strategy(title='EMA Cross',overlay=true)


tp_inp          = input(defval = 2.0,title='Take Profit %',type=input.float)/100
sl_inp          = input(defval = 2.0,title='Stop Loss %',type=input.float)/100
tp_inp_val = (1 + tp_inp)
sl_inp_val = (1 - sl_inp)
price = na(strategy.position_avg_price) ? close : strategy.position_avg_price
take_level = price * tp_inp_val
stop_level = price * sl_inp_val
useTake_level   = tp_inp         <= 1 and tp_inp != 0 ? take_level : na
useStop_level   = sl_inp         <= 1 and sl_inp != 0 ? stop_level : na
plot(strategy.position_size > 0 ? useTake_level : na,color=color.green,style=plot.style_linebr,linewidth=2) // plot TP
plot(strategy.position_size > 0 ? useStop_level : na,color=color.red,linewidth=2) // plot SL

ema20  = ema(close,20)
ema100 = ema(close,100)

plot(ema20,color = color.orange)
plot(ema100,color = color.blue  )

entry_allowed = true
if ema100 > ema20
    entry_allowed := true

if ema20>ema100
    strategy.entry("Buy",strategy.long,when = ema20>ema100)
    entry_allowed := false
strategy.close("Buy",when = ema100 > ema20 )
strategy.exit("Exit Buy",limit = useTake_level,stop=useStop_level) ```

解决方法

试试这个:

var entry_allowed = true

if (ema20>ema100) and entry_allowed
    strategy.entry("Buy",strategy.long)
    entry_allowed := false
    
if (ema100 > ema20) 
    strategy.close("Buy")
    entry_allowed := true

strategy.exit("Exit Buy",limit = useTake_level,stop=useStop_level)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。