我正在创建如下交易策略:
if buy_condition1
strategy.entry('.', strategy.long)
if sell_condition1a
strategy.close('.')
if sell_condition1b
strategy.close('.')
我希望在以 sell_condition1b 条件卖出后,等待至少 10 个柱才能执行下一个买入订单。请指导我如何做,非常感谢。
我尝试了以下方法,但仍然不起作用。 sell_condition2 之后仍然有买入订单,而不必等待 10 个柱。
var bool inBuy1 = false
var bool inBuy1x = false
var bool can_buy = true
var int bars_since_sell = na
if not na(bars_since_sell)
bars_since_sell := bars_since_sell + 1
if bars_since_sell >= 10
can_buy := true
if buy_condition1 and can_buy
if buy_condition1a and not B
strategy.entry('.', strategy.long)
inBuy1 := true
can_buy := false
if buy_condition1b and conditionX and B
strategy.entry('.', strategy.long)
inBuy1 := true
can_buy := false
if sell_condition1a and not inBuy1x
strategy.close('.')
inBuy1 := false
can_buy := true
if buy_condition2 and can_buy
strategy.entry('.', strategy.long)
inBuy1x := true
can_buy := false
if sell_condition2 and inBuy1x
strategy.close('.')
inBuy1x := false
can_buy := false
bars_since_sell := 0
我找到了答案,做法如下:
var bool inBuy1 = false
var bool inBuy1x = false
var int bars_since_sell = na
if not na(bars_since_sell)
bars_since_sell := bars_since_sell + 1
if buy_condition1 and na(bars_since_sell) or bars_since_sell >= 10
if buy_condition1a and not B
strategy.entry('.', strategy.long)
inBuy1 := true
if buy_condition1b and conditionX and B
strategy.entry('.', strategy.long)
inBuy1 := true
if sell_condition1a and not inBuy1x
strategy.close('.')
inBuy1 := false
if buy_condition2
strategy.entry('.', strategy.long)
inBuy1x := true
if sell_condition2 and inBuy1x
strategy.close('.')
inBuy1x := false
bars_since_sell := 0