本策略基于Stochastic Index(SMI)指标设计了一个短线交易策略,主要用于股票和数字货币的短线交易。该策略融合了Stochastic Index指标的超买超卖信号和移动平均线的确认,可以在趋势市场中捕捉中间回调提供较好的入场点位。
该策略主要利用Stochastic Index指标来判断市场的超买超卖区域。Stochastic Index指标的计算公式是:
SMI = (MA(Close - LL)/(HH - LL)) * 100
其中,LL是N日内的最低价,HH是N日内的最高价。该指标的设计理念是,当收盘价接近N日内的最高价时,市场处于超买状态;当收盘价接近N日内的最低价时,市场处于超卖状态。
本策略中,SMA指标参数N取5和3,表示采用5日和3日的Stochastic Index。通常如果只用一个参数,容易产生错误信号,所以本策略采用双SMA双重确认,可以过滤掉一些噪音。
另外,策略中叠加了移动平均线EMA指标,参数设置为与SMI指标一致,以进一步确认SMI指标的信号,避免出现误判的情况。
风险规避:
本策略总体来说是一个适合短线交易的策略。它结合Stochastic Index指标的超买超卖特性,配合移动平均线进行信号过滤和确认,可以识别出一些短线交易机会。但该策略容易在趋势行情中产生错误信号,所以使用时需要特别注意,最好配合趋势判断指标来避免此类情况。总的来说,在盘整行情中,该策略可以捕捉一些短线交易机会,但在使用过程中,要注意风险控制,止损退出很重要。
/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title="SMIndex Strategy", shorttitle="SMIndex Strategy", overlay=false, pyramiding=0, initial_capital=1000, currency=currency.USD)
//
sm1 = input(5, 'sm1')
sm2 = input(3, 'sm2')
//
Lower = lowest (low, sm1)
Hight = highest (high, sm1)
Downsideup = Hight - Lower
Upsidedown = close - (Hight+Lower)/2
//
ema1 = ema(ema(Upsidedown,sm2),sm2)
ema2 = ema(ema(Downsideup,sm2),sm2)
smi = ema2 != 0 ? (ema1/(ema2/2)*100) : 0
//
obLevel1 = input(55, "Over Bought Level 1")
obLevel2 = input(35, "Over Bought Level 2")
osLevel1 = input(-55, "Over Sold Level 1")
osLevel2 = input(-35, "Over Sold Level 2")
//
// h1=plot(obLevel1, color=red, title='Sell 1s 55 do', style=dashed, linewidth=2)
// h2=plot(obLevel2, color=maroon, title='Sell 2s 35 do', style=circles, linewidth=2)
// h3=plot(osLevel1, color=red, title='Buy 1s -55 up', style=dashed, linewidth=2)
// h4=plot(osLevel2, color=maroon, title='Buy 2s -35 up', style=circles, linewidth=2)
plot(smi, color=gray, style=line, linewidth=0, transp=5)
plot(ema1, color=orange, style=line, linewidth=0, transp=5)
plot(0, color=gray, style=circles, linewidth=1, title='Base Line')
//
// fill(h1, h2, color=red, transp=55)
// fill(h3, h4, color=green, transp=55)
//Strategy Long Short Entry
longEntry = (smi) < -75 or (smi) < -65 or (smi) < -55 or (smi) < -45
shortEntry = (smi) > 75 or (smi) > 65 or (smi) > 55 or (smi) > 45
longCondition = longEntry
if(longCondition)
strategy.entry("long", strategy.long)
shortCondition = shortEntry
if(shortCondition)
strategy.entry("short", strategy.short)