Strategie zur Umkehrung des bewegten Durchschnitts mit doppeltem Kreuz

Schriftsteller:ChaoZhang, Datum: 2023-11-21 11:28:27
Tags:

imgHier ist ein Artikel, den ich versucht habe, zu Ihrer Bitte zu schreiben:

Übersicht

Diese Strategie kombiniert die 123 Umkehrmusterstrategie und die Bear Power Indikatorstrategie. Handelssignale werden erzeugt, wenn beide Kauf- oder Verkaufssignale in die gleiche Richtung geben.

Strategie Logik

Die Strategie besteht aus zwei Teilen:

  1. 123 Strategie zur Umkehrung des Musters

    Es erzeugt Kaufsignale, wenn der Schlusskurs nach zwei aufeinanderfolgenden Tagen des Rückgangs nach oben bricht und der niedrige Stoch-Indikator vom niedrigen Niveau zurückspringt; Es erzeugt Verkaufssignale, wenn der Schlusskurs nach zwei aufeinanderfolgenden Tagen des Anstiegs nach unten bricht und der hohe Stoch-Indikator vom hohen Niveau zurückzieht.

  2. Strategie für den Indikator der Bärenkraft

    Der Bear Power-Indikator spiegelt den Vergleich von bullischen und bärischen Kräften wider. Er erzeugt Verkaufssignale, wenn er über der festgelegten Verkaufslinie liegt, und erzeugt Kaufsignale, wenn er unter der festgelegten Kauflinie liegt.

Bei der Kombination der Signale werden tatsächliche Handelssignale erzeugt, wenn die beiden Signale in die gleiche Richtung geben.

Vorteile

  1. Die Kombination von Umkehrsignalen und Indikatorfiltern verhindert falsche Ausbrüche und verbessert die Signalqualität.

  2. Anwendbar auf mehrere Zeitrahmen, flexibel an unterschiedliche Marktumgebungen angepasst.

  3. Die Bestandteilstrategien können einzeln oder in Kombination mit modularem Design verwendet werden.

Risiken

  1. Umkehrsignale können große Rückzugsabdeckungen aufweisen.

  2. Die Bear Power-Indikatorparameter müssen wiederholt getestet und optimiert werden.

  3. Multi-Faktor-Integrationsstrategien haben eine komplexe Parameter-Ausrichtung und erfordern große Mengen an historischen Daten für die Prüfung.

Optimierungsrichtlinien

  1. Verbinden Sie mehr Datenquellen mit dem Join Quant-Modul, um einen längeren Zeitrahmen und einen reicheren Datensatz zu erhalten.

  2. Anwendung von Methoden des maschinellen Lernens zur automatischen Suche und Auswertung von Parameterkombinationen.

  3. Hinzufügen von Stop-Loss-Mechanismen zur Kontrolle von Einzelhandelsverlusten.

Schlussfolgerung

Diese Strategie kombiniert Umkehrtechnische Analyse und quantitative Indikatoren, um die Signalqualität durch Doppelbestätigung zu verbessern.


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

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 29/05/2019
// This is combo strategies for get 
// a cumulative signal. Result signal will return 1 if two strategies 
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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
//  Bear Power Indicator
//  To get more information please see "Bull And Bear Balance Indicator" 
//  by Vadim Gimelfarb. 
//
// 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

BearPower(SellLevel, BuyLevel) =>
    value =  iff (close < open ,  
              iff (close[1] > open ,  max(close - open, high - low), high - low), 
               iff (close > open, 
                 iff(close[1] > open, max(close[1] - low, high - close), max(open - low, high - close)), 
                  iff(high - close > close - low, 
                   iff (close[1] > open, max(close[1] - open, high - low), high - low), 
                     iff (high - close < close - low, 
                      iff(close > open, max(close - low, high - close),open - low), 
                       iff (close > open, max(close[1] - open, high - close),
                         iff(close[1] < open, max(open - low, high - close), high - low))))))
    pos = 0.0
    pos := iff(value > SellLevel, -1,
	   iff(value <= BuyLevel, 1, nz(pos[1], 0))) 

    pos

strategy(title="Combo Backtest 123 Reversal & Bear Power", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
SellLevel = input(30)
BuyLevel = input(3)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBearPower = BearPower(SellLevel, BuyLevel)
pos = iff(posReversal123 == 1 and posBearPower == 1 , 1,
	   iff(posReversal123 == -1 and posBearPower == -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 ? red: possig == 1 ? green : blue ) 

Mehr