Diese Strategie ist eine doppelt optimierte Kombination umgekehrter EMA-gewichteter Handelsstrategie. Sie kombiniert umgekehrte Strategie und EMA-gewichtete Strategie, zwei verschiedene Arten von Strategien, und erzeugt zuverlässigere Handelssignale, indem beurteilt wird, ob die Signale der beiden Strategien konsistent sind.
Der Umkehrteil verwendet die 123 Umkehrstrategie. Diese Strategie kombiniert die Beziehung zwischen den Schlusskurs der vorangegangenen zwei Tage und dem stochastischen Oszillator, um Signale zu erzeugen.
Der gewichtete Teil der EMA verwendet die Berechnung des exponentiellen gleitenden Durchschnitts und der volumengewichteten Berechnung.
xMAVolPrice = ema(volume * close, Length)
xMAVol = ema(volume, Length)
nRes = xMAVolPrice / xMAVol
Die spezifischen Handelsregeln sind: Wenn der nRes-Indikator niedriger/höher ist als der Schlusskurs von gestern, geht man Long/Short.
Schließlich beurteilt die Strategie, ob die Signale der beiden Teile konsistent sind, bevor das tatsächliche Handelssignal generiert wird.
Die Strategie kombiniert zwei verschiedene Arten von Strategien, um sich gegenseitig zu überprüfen und die Zuverlässigkeit von Signalen zu verbessern und falsche Signale zu reduzieren.
Die Strategie hat eine gewisse Zeitverzögerung und ist anfällig, kurzfristige Handelsmöglichkeiten zu verpassen. Außerdem ist die EMA-gewichtet für oszillierende Märkte nicht wirksam. Darüber hinaus muss auch die Zuverlässigkeit der Umkehrsignale überprüft werden.
Verkürzen Sie die Parameter angemessen, um die Reaktion zu beschleunigen. Fügen Sie Stop-Loss hinzu, um Risiken zu kontrollieren. Fügen Sie mehr Faktoren ein, um Umkehrsignale zu überprüfen.
Die Strategie integriert die Vorteile zweier verschiedener Arten von Strategien, die die Signalqualität verbessern und die Nachteile einer einzelnen Strategie bis zu einem gewissen Grad überwinden können.
/*backtest start: 2023-11-06 00:00:00 end: 2023-12-06 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 18/10/2019 // This is combo strategies for get a cumulative signal. // // First strategy // This System was created from the Book "How I Tripled My Money In The // Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies. // The strategy buys at market, if close price is higher than the previous close // during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. // The strategy sells at market, if close price is lower than the previous close price // during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50. // // Second strategy // The related article is copyrighted material from Stocks & Commodities 2009 Oct // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// Reversal123(Length, KSmoothing, DLength, Level) => vFast = sma(stoch(close, high, low, Length), KSmoothing) vSlow = sma(vFast, DLength) pos = 0.0 pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1, iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) pos fFilter(xSeriesSum, xSeriesV, Filter) => iff(xSeriesV > Filter, xSeriesSum, 0) EMA_VW(Length) => pos = 0.0 xMAVolPrice = ema(volume * close, Length) xMAVol = ema(volume, Length) nRes = xMAVolPrice / xMAVol pos := iff(nRes < close[1], 1, iff(nRes > close[1], -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & EMA & Volume Weighting", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- LengthEMA_VM = input(22, minval=1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posEMA_VW = EMA_VW(LengthEMA_VM) pos = iff(posReversal123 == 1 and posEMA_VW == 1 , 1, iff(posReversal123 == -1 and posEMA_VW == -1, -1, 0)) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )