SMK ULTRA TREND 双均线交叉策略是一种基于5日指数移动平均线(EMA5)和20日指数移动平均线(EMA20)的交叉信号产生交易信号的量化交易策略。该策略的核心思想是利用短期均线和中期均线的交叉来捕捉市场趋势的变化,当EMA5上穿EMA20时产生买入信号,当EMA5下穿EMA20时产生卖出信号。同时,该策略还结合了支撑位和阻力位的概念,通过在图表上绘制支撑线和阻力线来辅助判断趋势的走向和强度。
SMK ULTRA TREND 双均线交叉策略的原理可以概括为以下几个步骤: 1. 计算5日EMA和20日EMA。EMA相比于简单移动平均线(SMA)能够更快地对价格变化做出反应,更适合用于捕捉短期趋势。 2. 判断EMA5和EMA20的交叉情况。当EMA5上穿EMA20时,产生买入信号;当EMA5下穿EMA20时,产生卖出信号。 3. 计算支撑位和阻力位。通过识别过去5个交易日的最低价和最高价来确定支撑位和阻力位。 4. 在图表上绘制EMA5、EMA20、支撑线和阻力线,直观地展示策略信号和关键价位。 5. 根据交叉信号执行交易。买入信号出现时开多仓,卖出信号出现时平仓。
SMK ULTRA TREND 双均线交叉策略是一个简单实用的量化交易策略,通过EMA5和EMA20的交叉信号来捕捉市场趋势,同时结合支撑线和阻力线等辅助工具,为交易决策提供参考。该策略优点是逻辑清晰,适应性强,易于实现和优化;缺点是在震荡市场中可能出现频繁交易和假信号,需要通过信号过滤、参数优化、仓位管理、止损止盈等方式来改进策略表现,提高策略的稳健性和盈利能力。
/*backtest start: 2023-05-17 00:00:00 end: 2024-05-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("SMK ULTRA TREND STRATEGY", overlay=true) // Define the length for EMAs ema5_length = 5 ema20_length = 20 // Calculate EMAs ema5 = ta.ema(close, ema5_length) ema20 = ta.ema(close, ema20_length) // Plot EMAs plot(ema5, title="EMA 5", color=color.red ) plot(ema20, title="EMA 20", color=color.blue) // Generate buy and sell signals buySignal = ta.crossover(ema5, ema20) sellSignal = ta.crossunder(ema5, ema20) // Plot buy and sell signals plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Execute buy and sell orders if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.close("sell") // Define support and resistance lengths pivotLen = 5 // Calculate support and resistance levels var float supportLevel = na var float resistanceLevel = na if (ta.pivotlow(low, pivotLen, pivotLen)) supportLevel := low[pivotLen] if (ta.pivothigh(high, pivotLen, pivotLen)) resistanceLevel := high[pivotLen] // Plot support and resistance levels plot(supportLevel, title="Support Level", color=color.green, linewidth=2, style=plot.style_linebr) plot(resistanceLevel, title="Resistance Level", color=color.red, linewidth=2, style=plot.style_linebr)