该策略是一个只做多、不做空的趋势跟踪策略。它利用唐奇安通道和StochRSI指标来识别牛市的强劲上涨趋势,实现LOW风险参与强劲趋势。
该策略使用以下两个指标进行趋势判断:
唐奇安通道:计算最近30根K线的最高价的6日EMA,作为通道上轨。如果收盘价大于上轨,则表示目前处于牛市趋势。
StochRSI指标:StochRSI指标包括%K线和%D线。该策略在%K线上添加一个下轨,默认为35。当%K线上穿下轨时,表示牛市趋势结束,应平仓。
具体来说,该策略的交易逻辑如下:
当收盘价大于唐奇安通道上轨时,表示处于牛市趋势,显示绿色背景。
当StochRSI的%K线大于默认下轨35时,做多入场。
当%K线下穿下轨时,平仓离场。
可以看出,该策略同时使用了趋势过滤和超买超卖指标,实现了低风险参与牛市趋势的效果。唐奇安通道过滤了非趋势市场的干扰,确保只在趋势牛市中打开多单。StochRSI指标及时反映超买超卖情况,可以比较及时地平仓。
该策略具有以下几点优势:
只做多,不做空,只参与牛市上涨趋势,避免熊市带来的损失。
使用唐奇安通道判断趋势,过滤非趋势市场,减少不必要交易。
StochRSI指标参数可调,可以根据自己的风险偏好来设置入场退出点位。
该策略适用于股价持续走强的场景,能够持续获利。
策略思路简单清晰,容易理解和实现。
该策略也存在一些风险:
错过了入场时点,无法充分捕捉趋势行情的利润。
牛市突然结束,指标未能及时发出退出信号,可能带来较大亏损。
参数设置不当,将增加交易频率和假信号。
该策略仅适合股价长期持续上涨的牛市,不适合震荡或下跌的市场环境。
需要密切关注股票基本面,避免选择基本面转弱的个股。
该策略可以从以下几个方面进行优化:
优化参数设置,适应不同波动率的市场环境。
添加止损策略,以控制单笔亏损。
结合股票的基本面与消息面,避免选择基本面转弱的股票。
优化入场时机,通过多次验证,确保及时进入趋势。
优化出场时机,防止处于牛市中过早离场。
测试不同股票样本,评估策略表现。寻找更适合该策略运作的股票类型。
该策略通过唐奇安通道判断趋势,结合StochRSI指标发出交易信号,实现低风险跟踪牛市趋势的效果。优点是简单易操作,能持续捕捉牛市上涨趋势。需要注意参数优化,结合基本面选择股票,进一步改进策略效果。如果方法得当,该策略可成为参与市场中长期牛市行情的有效工具。
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SnarkyPuppy
//@version=5
strategy("Filtered Stoch", overlay=false, default_qty_value = 100, default_qty_type=strategy.percent_of_equity)
/////high filter...upper donchian channel of ema... or highest ema for a given amount of candles
filter_ema_len= input(6)
ema_donchian_len = input(30)
ema=ta.highest(ta.ema(high,filter_ema_len),ema_donchian_len)
////////////////////////basic stoch rsi with max val 100 and min val 0.. entry above lowerband preset 35
smoothK = input.int(7, "K", minval=1)
smoothD = input.int(4, "D", minval=1)
lengthRSI = input.int(14, "RSI Length", minval=1)
lengthStoch = input.int(14, "Stochastic Length", minval=1)
src = input(close, title="RSI Source")
rsi1 = ta.rsi(src, lengthRSI)
k = math.min(100, math.max(0,ta.sma(ta.stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)))
d = math.max(math.min(ta.sma(k, smoothD),80),35)
plot(k, "K", color=#2962FF)
plot(d, "D", color=#FF6D00)
h0 = hline(80, "Upper Band", color=#787B86)
hline(50, "Middle Band", color=color.new(#787B86, 50))
lowerband=input(35)
h11 = hline(lowerband, "Lower Band", color=#787B86)
fill(h0, h11, color=color.rgb(33, 150, 243, 90), title="Background")
ematrend= close>ema ? 1 : 0
bgcolor(ematrend==1?color.rgb(76, 175, 79, 80):na)
longCondition = k>lowerband and ematrend==1
if (longCondition)
strategy.entry("Up", strategy.long)
shortCondition = ta.crossunder(k,lowerband)
if (shortCondition)
strategy.close("Up", shortCondition)