Quantitative Handelsstrategie zur Integration von Umkehr- und zukünftigen Abgrenzungslinien

Schriftsteller:ChaoZhang, Datum: 2023-12-08 12:00:35
Tags:

img

Übersicht

Diese Strategie integriert die 123 Umkehrstrategie und die Future Lines of Demarcation (FLD) Strategie, um eine quantitative Handelsstrategie umzusetzen, die Positionen ein- oder ausführt, wenn beide Strategien gleichzeitig Signale generieren.

Grundsätze

123 Umkehrstrategie

Die 123 Umkehrstrategie stammt aus dem Buch How I Tripped My Money in the Futures Market. Sie geht lang, wenn der Schlusskurs zwei aufeinanderfolgende Tage Umkehrmuster zeigt und der 9-Tage-Slow-Stochastik unter 50 liegt; sie geht kurz, wenn der Schlusskurs zwei aufeinanderfolgende Tage Umkehrmuster zeigt und der 9-Tage-Fast-Stochastik über 50 liegt.

Zukunftslinien der Abgrenzungsstrategie

Die Futures Lines of Demarcation (FLD) Strategie ist eine Trendfolgestrategie, die auf der Periodizität von Kursschwankungen basiert.

Analyse der Vorteile

Diese Strategie kombiniert Umkehr- und Trendfolgestrategien, die sowohl kurzfristige Umkehrchancen als auch mittelfristige Trendrichtungen auf mehreren Zeitrahmen für den quantitativen Handel erfassen. Das Umkehrelement bietet kurzfristige Gewinnchancen, während der Trendfolgeteil sicherstellt, dass der gesamte Handel mit dem Trend übereinstimmt und die Handelsrisiken effektiv kontrolliert werden. Darüber hinaus verbessert der anpassungsfähige Charakter von FLD auch die Stabilität der Strategie.

Risikoanalyse

Die Hauptrisiken dieser Strategie stammen aus falschen Ausbrüchen von Umkehrsignalen und Fehlern in FLD-Linienurteilen. Bei den ersteren können Parameter angepasst werden, um Umkehrsignale zu bestätigen oder andere Hilfsindikatoren hinzuzufügen, um die Genauigkeit zu verbessern. Bei den letzteren müssen Parameter optimiert werden, um sicherzustellen, dass FLD die Marktzyklen genauer beschreibt. Zusätzlich sollten Fehler bei FLD bei großen Trendumkehrungen auch beachtet werden.

Optimierungsrichtlinien

  1. Verbesserung der Umkehrstrategie durch Hinzufügen anderer Indikatoren zu Filtersignalen und Verringerung der Wahrscheinlichkeit eines falschen Ausbruchs
  2. Vergleich verschiedener FLD-Parameter zur besseren Beschreibung von Zyklusmustern
  3. Hinzufügen einer Stop-Loss-Logik zur Kontrolle einzelner Verlustrisiken
  4. Wirksamkeit der Prüfparameter für verschiedene Produkte

Schlussfolgerung

Diese Strategie kombiniert Konzepte der Umkehrung und der Trendverfolgung für stabile Gewinne über mittelfristige und kurzfristige Zeitrahmen.


/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 28/08/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
//  An FLD is a line that is plotted on the same scale as the price and is in fact the 
//  price itself displaced to the right (into the future) by (approximately) half the 
//  wavelength of the cycle for which the FLD is plotted. There are three FLD's that can be 
//  plotted for each cycle:
//    An FLD based on the median price.
//    An FLD based on the high price.
//    An FLD based on the low price.
//
// 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


FLD(Period,src) =>
    pos = 0
    pos := iff(src[Period] < close , 1,
             iff(src[Period] > close, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & FLD's - Future Lines of Demarcation", shorttitle="Combo", overlay = true)
Length = input(15, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Period = input(title="Period", defval=40)
src = input(title="Source", type=input.source, defval=close)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFLD = FLD(Period,src)
pos = iff(posReversal123 == 1 and posFLD == 1 , 1,
	   iff(posReversal123 == -1 and posFLD == -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