Strategies KB.ZH
Strategies

多时间框架随机指数均线策略Multi-Timeframe-Stochastic-Strategy

ChaoZhang · PineScript · Multi-Timeframe · 2024-02-29 12:11:23

All strategies →
Sizing
—
Risk control
Exit
—

Overview

The Multi-Timeframe Stochastic Strategy is a quantitative trading strategy based on the Stochastic oscillator indicator. It utilizes stochastic moving averages across both the current and higher timeframes to combine trend following and mean reversion trading.

Principle

Expand full text (1048 chars)

The core indicators of this strategy are the Stochastic K and D lines. The K line reflects recent price momentum while the D line is a moving average of the K line. Their relative position and direction can determine price trends and potential reversals. Specifically, when the short-term K line crosses above the mid-term D line from below, it signals upward momentum in prices short-term. And when the K line crosses below the D line from above, it signals downside breakdown pressure short-term. This strategy employs stochastic indicators across two timeframes to confirm signals and filter noise. The higher timeframe stochastic defines the overall trend while the current timeframe stochastic identifies short-term inflection points to time entries. When the higher timeframe stochastic confirms an uptrend and the current timeframe stochastic shows an upside breakout, a long position is taken. When the higher timeframe stochastic indicates a downtrend and the current stochastic signals a downside breakdown, a short position is initiated.

Advantages

By combining multi-timeframe indicators and current momentum, this strategy can effectively filter out market noise and capture high-probability profitable trades. The main advantages are:

  1. Higher timeframe ensures trading with the trend to minimize unnecessary whipaws and losing trades.
  2. Current timeframe allows low-risk entries to capture short-term reversals within the trend.
  3. Dual stochastic indicators improve signal accuracy and reduce false signals.

Risks

There are some risks to consider with this strategy:

  1. Sudden trend reversals may not be captured early by the higher timeframe indicator, increasing losses from late directional switches. Timeframe parameters need to be optimized to get sufficiently timely market data.
  2. The current timeframe indicator can be too sensitive, increasing trade frequency and costs. Parameters need calibration to filter insignificant noise.
  3. Although the dual stochastic enhances accuracy, it also slows down reaction time. Fast market moves could lead to missing optimal entry points.

Optimization

The main optimization directions include:

  1. Optimizing the higher timeframe stochastic smoothers to adapt faster to new trends.
  2. Adjusting the current timeframe parameters and breakout thresholds to reduce false signals.
  3. Testing timeframe combinations to find the optimal balance.
  4. Incorporating stop-loss strategies to control downside risk per trade.

Summary

The Multi-Timeframe Stochastic Strategy is a typical trend following system. By utilizing stochastic indicators across two timescales, it aims to precisely capture market movements. Further optimizations can enhance stability and profitability. [/trans]

Parameters

ParametersDefaultDescription
v_input_111Length for Main Stochastic
v_input_23SmoothK for Main Stochastic
v_input_33SmoothD for Main Stochastic
v_input_480Upper Line Value?
v_input_520Lower Line Value?
v_input_650Trialing step value
Source code (53 lines)
/*backtest
start: 2023-02-22 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("MTF stochastic strategy", overlay=false,pyramiding=3,default_qty_type=strategy.percent_of_equity,default_qty_value=100,currency=currency.USD)
//
//this strategy is inspired to bobby thread in forexfactory forum
//
len = input(11, minval=1, title="Length for Main Stochastic") 
smoothK = input(3, minval=1, title="SmoothK for Main Stochastic")
smoothD = input(3, minval=1, title="SmoothD for Main Stochastic")
upLine = input(80, minval=50, maxval=90, title="Upper Line Value?")
lowLine = input(20, minval=10, maxval=50, title="Lower Line Value?")
trailStep=input(50,minval=10,title="Trialing step value")

// current stochastic calculation
k = sma(stoch(close, high, low, len), smoothK)
d = sma(k, smoothD)

//mtf stochastic calculation smoothed with period

mtfK= sma(stoch(close, high, low, len), smoothK*3)
mtfD= sma(k, smoothD*3)

plot(k,"current TF k",black,style=linebr)
plot(d,"current TF d",gray,style=linebr)
plot(mtfK,"MTF TF k",red,style=line)
plot(mtfD,"Multi TF d",green,style=line)
hline(upLine)
hline(50)
hline(lowLine)

longCondition = crossover(mtfK, 50) and k>50 and change(k,1)>0 and k>d and mtfK>mtfD
if (longCondition)
    strategy.entry("Lungo", strategy.long)

shortCondition = crossunder(mtfD, 50) and k<50 and change(k,1)<0 and k<d and mtfK<mtfD
if (shortCondition)
    strategy.entry("Corto", strategy.short)
    
exitlong=crossunder(mtfD, upLine)
exitshort=crossover(mtfK, lowLine)

if (exitlong)
    strategy.exit("Esci lungo","Lungo",trail_points=trailStep)
if (exitshort)
    strategy.exit("Esci corto","Corto",trail_points=trailStep)