Понимание данных в реальном времени с помощью стратегии построения графиков Pine - PullRequest
0 голосов
/ 15 апреля 2020

Я изучаю сценарий Pine. Теперь я хотел построить график или Strategy.Entry на живом баре.

  • Поэтому я попытался использовать barmerge.lookahead_on, который также будет учитывать текущую летучую мышь для расчетов.
  • Я также поставил calc_on_every_tick = true, так как моя стратегия зависит только от открытия бара и не беспокоится об изменении данных текущего бара.
//@version=4
strategy("RayTrader03 Startegy",overlay=true, calc_on_every_tick=true)

// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2019, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

// === INPUT SHOW PLOT ===
showDate  = input(defval = true, title = "Show Date Range", type = input.bool)
// === FUNCTION EXAMPLE ===
start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"


//----
ses = change(time("D")) 
o = open,c = close
var symbol = "CCL"
var percentFill = 50
currentOpen = security(symbol, 'D', open, lookahead=barmerge.lookahead_on)
currentClose = security(symbol, 'D', close,lookahead=barmerge.lookahead_on)
prevClose = security(symbol, 'D', close[1], lookahead=barmerge.lookahead_on)
prevOpen = security(symbol, 'D', open[1], lookahead=barmerge.lookahead_on)
prevHigh = security(symbol, 'D', high[1], lookahead=barmerge.lookahead_on)

plot(currentOpen, linewidth=3, style=plot.style_line, color=color.red)
//----
//myIdealGap = (prevClose < prevOpen) and (currentOpen > (prevClose + ((prevOpen - prevClose)*(percentFill/100))))
myIdealGap = (prevClose < prevOpen) and (currentOpen > (prevOpen + prevClose)/2)
//----
val = myIdealGap ? max(c[1],o[1]) : min(c[1],o[1])
lim = valuewhen(ses and myIdealGap,val,0)  
//----
//strategy.close_all(ses)

strategy.entry("Buy", strategy.long, when=myIdealGap and window())

strategy.exit("Buy", limit=prevHigh)

//----
//plot(lim,"Limit/Stop",#ff1100,2)

ok, поэтому запись будет вызываться только после закрытия текущего бара, s это будет go к следующему бару.

Есть ли способ, которым я могу построить график на живом баре, как только у меня есть открытые данные для текущего бара?

Любая помощь действительно ценится . Спасибо.

...