pinescript策略问题:如何在下一次开盘时在一定的水平上发布限价单?

问题描述 投票:0回答:1

我曾编过一个指标,在蜡烛收盘后给我提供进场信号,但我想使用另一个指标(在蜡烛开盘时计算)作为限价单的水平,但该策略在前一个数值上设置限价单,而不是在实际数值上,我如何做才能在收盘后收到进场信号,并在下一个开盘时设置限价单进场?enter image description here

   //@version=4

strategy(title="On Balance Swings[AA]", overlay=false)

f_security(_symbol, _res, _src, _repaint) => 
   security(_symbol, _res, _src[_repaint ? 0 : barstate.isrealtime ? 1 : 0])[_repaint ? 0 : barstate.isrealtime ? 0 : 1]

res = input(title="Resolution", type=input.resolution, defval="")
rep = input(title="Allow Repainting?", type=input.bool, defval=false)
bar = input(title="Allow Bar Color Change?", type=input.bool, defval=true)
lbLength = input(title="LookBackLength", type=input.integer, defval=2, minval=1)
sigLength = input(title="SignalLength", type=input.integer, defval=30, minval=1)



hg= (high-open)
lg= (open-low)
mchange = change(close)
obs=0.0
if mchange>0
   obs:=nz(obs[1])+hg
else
   obs:=nz(obs[1])-lg
ovrSma = sma(obs, sigLength)

sig = obs > ovrSma ? 1 : obs < ovrSma ? -1 : 0
alertcondition(crossover(sig, 0), "Buy Signal", "Bullish Change Detected")
alertcondition(crossunder(sig, 0), "Sell Signal", "Bearish Change Detected")
ovrColor = sig > 0 ? color.green : sig < 0 ? color.red : color.black
barcolor(bar ? ovrColor : na)
plot(obs, title="OBS", linewidth=2, color=ovrColor)
plot(ovrSma, title="SIG", linewidth=1, color=color.orange)

//gsv

lenght = input(4, minval=1 ,title="lenght")
multi = input (1.8,minval=0.1,title="multiplier")
bg=sma(hg,lenght)
sg=sma(lg,lenght)
bgsv =((bg[1]*multi)+open),offset=1
sgsv=open-(sg[1]*multi)


LC=crossover(obs,ovrSma)
SC=crossunder(obs,ovrSma)

if (crossover(obs,ovrSma))
   strategy.exit("S")
   strategy.entry("L", strategy.long, stop=bgsv, oca_name="obs", oca_type=strategy.oca.cancel, comment="obsL")
else
   strategy.cancel(id="L")
if (crossunder(obs,ovrSma))
   strategy.exit("L")
   strategy.entry("S", strategy.short, stop=sgsv, oca_name="obs", oca_type=strategy.oca.cancel, comment="obsS")
else
   strategy.cancel(id="S")
pine-script trading
1个回答
0
投票

你希望下单时的水平是未知的,所以不能做。您需要等到您的脚本知道该水平,然后在收盘时下一个市价订单,或者下一个可能不会被执行的限价订单。

© www.soinside.com 2019 - 2024. All rights reserved.