指数平滑随机指标异动策略是在传统的随机指标基础上,增加了一个指数权重参数,可以调整随机指标的灵敏度,从而产生交易信号。当指标从超买区反转时做多,从超卖区反转时做空。该策略优化后,可以成为一个非常稳定的趋势跟踪策略。
指数平滑随机指标异动策略的核心在于指数权重参数ex。传统随机指标的计算公式是:
s=100 * (close - 最低价) / (最高价 - 最低价)
增加指数参数后,计算公式变为:
exp= ex<10? (ex)/(10-ex) : 99
s=100 * (close - 最低价) / (最高价 - 最低价)
ks=s>50? math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50
:-math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50
调整exp的值,可以改变s对ks的影响力度,增大exp值使指标变得更不敏感,减小exp值使指标变得更敏感。
当ks从超买区反转时产生买入信号;当ks从超卖区反转时产生卖出信号。
指数平滑随机指标异动策略相比传统随机策略,具有以下优势:
指数平滑随机指标异动策略也存在以下风险:
指数平滑随机指标异动策略可以从以下几个方面进行优化:
指数平滑随机指标异动策略通过调整随机指标的灵敏度,产生更可靠的交易信号。该策略可以有效跟踪中长线趋势,也可以优化为短线策略。通过复合化和参数优化,可望获得更好的稳定收益。
/*backtest
start: 2023-01-11 00:00:00
end: 2024-01-17 00:00:00
period: 1d
basePeriod: 1h
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/
// © faytterro
//@version=5
strategy("Exponential Stochastic Strategy", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
len=input.int(14, "length")
ex=input.int(2, title="exp", minval=1, maxval=10)
exp= ex<10? (ex)/(10-ex) : 99
s=100 * (close - ta.lowest(low, len)) / (ta.highest(high, len) - ta.lowest(low, len))
ks=s>50? math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50 :
-math.pow(math.abs(s-50),exp)/math.pow(50,exp-1)+50
plot(ks, color= color.white)
bot=input.int(20)
top=input.int(80)
longCondition = ta.crossover(ks, bot) and bar_index>0
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
shortCondition = ta.crossunder(ks, top) and bar_index>0
if (shortCondition)
strategy.entry("My Short Entry Id", strategy.short)
// strategy.close("My Long Entry Id")
alertcondition(longCondition, title = "buy")
alertcondition(shortCondition, title = "sell")
h1=hline(top)
h2=hline(bot)
h3=hline(100)
h4=hline(0)
fill(h1,h3, color= color.rgb(255,0,0,200-top*2))
fill(h2,h4, color= color.rgb(0,255,0,bot*2))