Doppelte Inversion CMO Quantenstrategie


Erstellungsdatum: 2024-01-04 14:35:23 zuletzt geändert: 2024-01-04 14:35:23
Kopie: 0 Klicks: 557
1
konzentrieren Sie sich auf
1621
Anhänger

Doppelte Inversion CMO Quantenstrategie

Überblick

Die Strategie ist eine Doppel-Umkehr-Strategie, die 123 Umkehr-Indikatoren und CMOWMA-Quanten-Indikatoren kombiniert, um eine Doppel-Bestätigung von Preisumkehrsignalen zu ermöglichen, mit einer visuellen Wirkung von K-Linien in rot-grüner Farbe.

Strategieprinzip

Die Strategie besteht aus zwei Teilen:

  1. 123 Umkehrung der Indikatoren

    • Der Kurs steigt oder fällt anhand der Größe des Schlusskurses und des Schlusskurses von gestern
    • Die Überschneidung der schnellen und langsamen Linien des stochastischen Indikators zur Bestätigung des Umkehrsignals
    • Erzeugen Sie ein Über- oder Unterlaufsignal, wenn die Bedingungen erfüllt sind
  2. CMOWMA-Quantenindikatoren

    • Preisbewegungen mit CMO-Indikatoren
    • WMA-gewichtete Moving Averages für den CMO-Indikator
    • CMO-Indikator höher als (niedriger als) seine WMA bei mehr als (ohne)

Beide Teile des Signals sind gleichzeitig in Position.

Strategische Vorteile

  1. Doppelte Bestätigung, Filterung von Monopolen und Verringerung von Nullpositionen
  2. Rot-Grün-K-Linien, visuelle Effekte, leicht zu beurteilen, wie der Markt aussieht
  3. Mit einer Kombination aus Reversal- und Dynamometern ist die Stabilität insgesamt gut
  4. Einfache Parameter-Einstellungen für verschiedene Sorten und einfache Umsetzung

Strategisches Risiko

  1. Ein Rückschlag nach einem Rückschlag könnte ein Rückschlag nach dem anderen bedeuten
  2. Häufige Positionswechsel, die zu hohe Transaktionskosten verursachen
  3. Fehlende Parameter können zu viel oder zu wenig Signal erzeugen
  4. Die CMO-Parameter müssen an die Merkmale der Sorte angepasst werden

Das Risiko kann durch geeignete Lockerung der Umkehrbedingungen, Erhöhung der Haltedauer und Optimierung der Parameterkombinationen verringert werden.

Strategieoptimierung

  1. Die Auswirkungen verschiedener stochastischer Parameter auf die Wirkung können getestet werden
  2. Alternative oder zusätzliche Bestätigung in Kombination mit anderen Indikatoren wie MACD, KDJ
  3. Optimierungen für verschiedene CMO- und WMA-Längenparameter können getestet werden
  4. Sie können versuchen, einen Stop-Loss-Stop auf einer bestimmten Ebene hinzuzufügen
  5. Filterbedingungen können eingestellt werden, um die Häufigkeit der Lageröffnung zu steuern

Zusammenfassen

Die Strategie ist insgesamt robust, die Parameter sind einfach und leicht umzusetzen, und in Kombination mit Preisumkehr und Dynamikindikatoren bildet sie eine effektive Doppelsignalfiltermechanik, die falsche Signale filtert und die K-Linien-Färbung ist intuitiv. Durch die Optimierung der Parameter und die Risikokontrolle kann die Strategie weiter verbessert werden.

Strategiequellcode
/*backtest
start: 2023-12-04 00:00:00
end: 2024-01-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 19/08/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
//    This indicator plots Chandre Momentum Oscillator and its WMA on the 
//    same chart. This indicator plots the absolute value of CMO.
//    The CMO is closely related to, yet unique from, other momentum oriented 
//    indicators such as Relative Strength Index, Stochastic, Rate-of-Change, 
//    etc. It is most closely related to Welles Wilder?s RSI, yet it differs 
//    in several ways:
//    - It uses data for both up days and down days in the numerator, thereby 
//        directly measuring momentum;
//    - The calculations are applied on unsmoothed data. Therefore, short-term 
//        extreme movements in price are not hidden. Once calculated, smoothing 
//        can be applied to the CMO, if desired;
//    - The scale is bounded between +100 and -100, thereby allowing you to clearly 
//        see changes in net momentum using the 0 level. The bounded scale also allows 
//        you to conveniently compare values across different securities.
//
// 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

CMOWMA(Length, LengthWMA) =>
    pos = 0
    xMom = abs(close - close[1])
    xSMA_mom = sma(xMom, Length)
    xMomLength = close - close[Length]
    nRes = 100 * (xMomLength / (xSMA_mom * Length))
    xWMACMO = wma(nRes, LengthWMA)
    pos := iff(nRes > xWMACMO, 1,
    	   iff(nRes <= xWMACMO, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & CMO & WMA", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthCMO = input(14, minval=1)
LengthWMA = input(13, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCMOWMA = CMOWMA(LengthCMO, LengthWMA)
pos = iff(posReversal123 == 1 and posCMOWMA == 1 , 1,
	   iff(posReversal123 == -1 and posCMOWMA == -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 )