首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >信号重复前反转信号

信号重复前反转信号
EN

Stack Overflow用户
提问于 2022-03-15 06:31:56
回答 1查看 267关注 0票数 0

我已经编写了逻辑代码,购买信号(UpTriangle)将产生-当价格(关闭)交叉13 for和下一个栏超过‘交叉栏’的高,反之亦然的销售信号。

问题是,一旦我得到购买信号,它是重复之前,相反的信号产生。见下面的图表。

守则如下..。

代码语言:javascript
复制
//@version=5
indicator('Alert on MA Cross 1.0', overlay=true)

// MA Crossover condition
ma = ta.ema(close, 13)
xUp = ta.crossover(close, ma)
xDn = ta.crossunder(close, ma)

// Fixing High or Low of Crossover or Crossunder Bar
xUpHigh = xUp ? high : na
xDnLow = xDn ? low : na

//Signal after crossing High/Low of Crossover or Crossunder Bar
signalUp = high > xUpHigh[1] ? high : na
signalDn = low < xDnLow[1] ? low : na

// Alert Condition creation 
if signalUp
    alert('Price(' + str.tostring(close) + ') crossed over MA (' + str.tostring(ma) + ').', alert.freq_once_per_bar)
if signalDn
    alert('Price(' + str.tostring(close) + ') crossed under MA (' + str.tostring(ma) + ').', alert.freq_once_per_bar)

// Plotting MA and Signal
plot(ma)
plotshape(signalUp, style=shape.triangleup, location=location.absolute, color=color.new(color.green, 0), size=size.tiny, title='signalUp')
plotshape(signalDn, style=shape.triangledown, location=location.absolute, color=color.new(color.red, 0), size=size.tiny, title='signalDn')

// Trigger Alert Condition
alertcondition(signalUp or signalDn, title='MA Alert', message='Price x EMA Detected')
EN

回答 1

Stack Overflow用户

发布于 2022-03-15 07:55:55

有一个var来指示你是否已经很长了。那么,只有在你不长的时候才允许有买入信号,只有在你已经做多的时候才允许有卖出信号。

代码语言:javascript
复制
//@version=5
indicator('Alert on MA Cross 1.0', overlay=true)

var isLong = false

// MA Crossover condition
ma = ta.ema(close, 13)
xUp = ta.crossover(close, ma)
xDn = ta.crossunder(close, ma)

// Fixing High or Low of Crossover or Crossunder Bar
xUpHigh = xUp ? high : na
xDnLow = xDn ? low : na

//Signal after crossing High/Low of Crossover or Crossunder Bar
signalUp = high > xUpHigh[1] ? high : na
signalDn = low < xDnLow[1] ? low : na

isBuy = not isLong and signalUp
isSell = isLong and signalDn

isLong := isBuy ? true : isSell ? false : isLong

// Alert Condition creation 
if isBuy
    alert('Price(' + str.tostring(close) + ') crossed over MA (' + str.tostring(ma) + ').', alert.freq_once_per_bar)
if isSell
    alert('Price(' + str.tostring(close) + ') crossed under MA (' + str.tostring(ma) + ').', alert.freq_once_per_bar)

// Plotting MA and Signal
plot(ma)
plotshape(isBuy, style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), size=size.tiny, title='signalUp')
plotshape(isSell, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.tiny, title='signalDn')

// Trigger Alert Condition
alertcondition(isBuy or isSell, title='MA Alert', message='Price x EMA Detected')

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71477878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档