Скрипт перерисовки даже после использования barstate.isconfirmed

Сценарий ниже запускает несколько предупреждений, и я пытался использовать barstate.isconfirmed, но иногда все еще запускал до 6 предупреждений вместе. Я новичок в этом.

      //@version=5
strategy('STG1', overlay=true, calc_on_order_fills = true)
start = timestamp(2022, 12,01,0, 0)
end = timestamp(2022, 12,30,0, 0)
length = input(title='Length', defval=1)
phase = input(title='Phase', defval=50)
power = input(title='Power', defval=2)
src = input(title='Source', defval=close)
highlightMovements = input.bool(title='Highlight Movements ?', defval=true) 
phaseRatio = phase < -100 ? 0.45 : phase > 100 ? 2.5 : phase / 100 + 1.5
beta = 0.45 * (length - 1) / (0.5 * (length - 1) + 2)
alpha = math.pow(beta, power)
jma = 0.0
e0 = 0.0
e0 := (1 - alpha) * src + alpha * nz(e0[1])
e1 = 0.0
e1 := (src - e0) * (1 - beta) + beta * nz(e1[1])
e2 = 0.0
e2 := (e0 + phaseRatio * e1 - nz(jma[1])) * math.pow(1 - alpha, 2) + math.pow(alpha, 2) * nz(e2[1]) 
jma := e2 + nz(jma[1]) 

jmaColor = highlightMovements ? (jma > jma[1] ? color.green : color.red) : #e615e6

EnterLong = jma > jma[1]  and strategy.opentrades == 0 
ExitLong = jma < jma[1]  and strategy.opentrades > 0 
EnterShort = jma < jma[1] and strategy.opentrades == 0 
ExitShort = jma > jma[1] and strategy.opentrades > 0 

if time >= start and time < end
    strategy.entry('Long', strategy.long, 1, when=EnterLong and barstate.isconfirmed, comment= 'LE') 
    strategy.close('Long', when=ExitLong and barstate.isconfirmed, comment= 'LX')
    strategy.entry('short', strategy.short, 1, when=EnterShort and barstate.isconfirmed, comment= 'SE' ) 
    strategy.close('short', when=ExitShort and barstate.isconfirmed, comment='SX')

Я пробовал barstate.isconfirmed в объявлении, а также длинную и короткую позицию входа, но он по-прежнему выдает несколько предупреждений на мою торговую платформу в течение доли секунд.

0 ответов

Другие вопросы по тегам