Kombi-Impulsumkehr-Doppelschienen-Matchingstrategie

Schriftsteller:ChaoZhang, Datum: 2023-11-24 10:17:15
Tags:

img

Übersicht

Diese Strategie kombiniert mehrere technische Indikatoren zur Implementierung von Impulsumkehrung und Dual-Rail-Matching zur Erzeugung von Handelssignalen. Die Strategie verwendet 123 Muster, um Umkehrpunkte zu bestimmen, und passt Signale mit dem ergodischen CSI-Indikator zusammen, um Trends zu verfolgen. Es zielt darauf ab, mittelfristige Trends zu erfassen und hohe Gewinne zu erzielen.

Grundsätze

Die Strategie umfaßt zwei Teile:

  1. 123 Muster zur Bestimmung der Umkehrpunkte
  2. Ergodischer CSI-Indikator zur Erzeugung von Übereinstimmungssignalen

Das 123 Muster beurteilt die Preisumkehrung anhand der Schlusskurs der letzten 3 Balken. Wenn der Schlusskurs des 3. Balkens im Vergleich zu den vorherigen 2 Balken steigt und sowohl der schnelle als auch der langsame Aktie unter 50 liegen, ist dies ein Kaufsignal. Wenn der Schlusskurs des 3. Balkens im Vergleich zu den vorherigen 2 Balken fällt und sowohl der schnelle als auch der langsame Aktienwert über 50 liegt, ist dies ein Verkaufssignal.

Der ergodische CSI-Indikator berücksichtigt mehrere Faktoren wie Preis, tatsächliche Bandbreite, Trendindikatoren, um die Marktbedingungen umfassend zu bestimmen und Kauf-/Verkaufszonen zu erzeugen. Wenn der Indikator über die Kaufzone steigt, erzeugt er ein Kaufsignal. Wenn der Indikator unter die Verkaufszone fällt, erzeugt er ein Verkaufssignal.

Schließlich werden die Umkehrsignale von 123 Muster- und Zonensignalen des ergodischen CSI ANDed, um das endgültige Strategiesignal zu erzeugen.

Vorteile

  1. Erfasst mittelfristige und kurzfristige Trends, hohes Gewinnpotenzial
  2. Die Umkehrmusterbestimmung erfasst Wendepunkte effektiv
  3. Doppelschienenverknüpfung verringert Falschsignale

Risiken

  1. Einzelne Bestände können abweichen, was zu einem Stop-Loss führt
  2. Umkehrmuster, die von den marktbezogenen Märkten beeinflusst werden können
  3. Begrenzter Raum für die Optimierung von Parametern, hohe Leistungsschwankungen

Optimierungsrichtlinien

  1. Optimierung der Parameter zur Verbesserung der Strategieprofitabilität
  2. Hinzufügen von Stop-Loss-Logik zur Verringerung von Einzelhandelsverlusten
  3. Einbeziehung von Multifaktormodellen zur Verbesserung der Bestandswahl

Schlussfolgerung

Diese Strategie verfolgt mittelfristige Trends durch Kombination von Umkehrmustern und Dual-Rail-Matching. Im Vergleich zu einzelnen technischen Indikatoren hat sie eine höhere Stabilität und Gewinnniveaus.


/*backtest
start: 2023-10-24 00:00:00
end: 2023-11-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/07/2020
// 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
// This is one of the techniques described by William Blau in his book 
// "Momentum, Direction and Divergence" (1995). If you like to learn more, 
// we advise you to read this book. His book focuses on three key aspects 
// of trading: momentum, direction and divergence. Blau, who was an electrical 
// engineer before becoming a trader, thoroughly examines the relationship between 
// price and momentum in step-by-step examples. From this grounding, he then looks 
// at the deficiencies in other oscillators and introduces some innovative techniques, 
// including a fresh twist on Stochastics. On directional issues, he analyzes the 
// intricacies of ADX and offers a unique approach to help define trending and 
// non-trending periods.
// This indicator plots Ergotic CSI and smoothed Ergotic CSI to filter out noise. 
//
// 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

fADX(Len) =>
    up = change(high)
    down = -change(low)
    trur = rma(tr, Len)
    plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, Len) / trur)
    minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, Len) / trur)
    sum = plus + minus 
    100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), Len)

ECSI(r,Length,BigPointValue,SmthLen,SellZone,BuyZone) =>
    pos = 0
    source = close
    K = 100 * (BigPointValue / sqrt(r) / (150 + 5))
    xTrueRange = atr(1) 
    xADX = fADX(Length)
    xADXR = (xADX + xADX[1]) * 0.5
    nRes = iff(Length + xTrueRange > 0, K * xADXR * xTrueRange / Length,0)
    xCSI = iff(close > 0,  nRes / close, 0)
    xSMA_CSI = sma(xCSI, SmthLen)
    pos := iff(xSMA_CSI > BuyZone, 1,
             iff(xSMA_CSI <= SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Ergodic CSI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
r = input(32, minval=1)
LengthECSI = input(1, minval=1)
BigPointValue = input(1.0, minval=0.00001)
SmthLen = input(5, minval=1)
SellZone = input(0.06, minval=0.00001)
BuyZone = input(0.02, minval=0.001)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posECSI = ECSI(r,LengthECSI,BigPointValue,SmthLen,SellZone,BuyZone)
pos = iff(posReversal123 == 1 and posECSI == 1 , 1,
	   iff(posReversal123 == -1 and posECSI == -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 )

Mehr