KDJ Golden Cross Langzeitstrategie

Schriftsteller:ChaoZhang, Datum: 2024-02-01 10:28:12
Tags:

img

Übersicht

Die KDJ Golden Cross Long Entry Strategie ist eine quantitative Handelsstrategie, die auf dem KDJ-Indikator basiert. Diese Strategie verwendet hauptsächlich das goldene Kreuz der J-Linie und der D-Linie des KDJ-Indikators, um Kaufsignale zu generieren, und geht lang, wenn die J-Linie über die D-Linie geht. Die Strategie ist relativ einfach und einfach zu implementieren, geeignet für Anfänger des quantitativen Handels.

Strategie Logik

Der wichtigste technische Indikator, der in dieser Strategie verwendet wird, ist der KDJ-Indikator, der aus der K-Linie, der D-Linie und der J-Linie besteht.

K = (Aktueller Abschluss - Tiefste Tiefstand in den letzten N Tagen) ÷ (Hochster Höchststand in den letzten N Tagen - Tiefster Tiefstand in den letzten N Tagen) x 100;

D = gleitender Durchschnitt von K für M-Tage;

J = 3K - 2D.

Nach den Regeln des KDJ-Indikators zeigt die Überschreitung der J-Linie über die D-Linie an, dass sich die Preise aufwärts umkehren und Long-Positionen aufgenommen werden können; wenn die J-Linie unter die D-Linie fällt, zeigt sie an, dass sich die Preise nach unten umkehren und Short-Positionen aufgenommen werden können.

Diese Strategie nutzt die oben genannten Regeln und erzeugt Kaufsignale, wenn die J-Linie über die D-Linie kreuzt, d.h. ein goldenes Kreuz bildet sich, um lang zu gehen.

Vorteile

  1. Die Verwendung des KDJ-Indikators zur Bestimmung des Eintrittszeitraums, der Preisbewegungen nach oben und unten beinhaltet, ist somit zuverlässiger.

  2. Die Strategie enthält klare und einfache Signalregeln, die für Anfänger leicht verständlich und umsetzbar sind.

  3. Einhaltverhaltens- und Verhaltensverhaltensregeln für die wirksame Risikokontrolle.

  4. Großer Raum für Parameteroptimierung und flexible Umsetzung.

Risiken

  1. Der KDJ-Indikator neigt dazu, falsche Signale zu erzeugen, die zu Verlusten führen.

  2. Kurzfristige Marktanpassungen nach dem Kauf können zum Stop-Loss-Exit führen und wichtige Trends verpassen.

  3. Eine unsachgemäße Einstellung der Parameter kann zu Überschreitungen oder unklare Signale führen.

  4. Die Auswirkungen der Transaktionskosten auf die Gesamtrentabilität müssen berücksichtigt werden.

Hauptmethoden des Risikomanagements: Richtige Optimierung der Parameter, Verfolgung von Indizes zur Verbesserung, angemessene Erweiterung des Stop-Loss-Bereichs usw.

Optimierungsrichtlinien

  1. Optimieren Sie die Parameter von KDJ, um die besten Parameterkombinationen zu finden.

  2. Hinzufügen von Filterbedingungen, um falsche Signale zu vermeiden.

  3. Kann je nach Marktart (Bulle- oder Bärenmärkte) verschiedene Parameter-Einstellungen auswählen.

  4. Kann den Stop-Loss-Bereich angemessen erweitern, um die Wahrscheinlichkeit von Stop-Loss-Ausgängen zu verringern.

  5. Kann Handelsvolumen und andere Indikatoren zur Analyse kombinieren, um nicht in die Falle zu geraten.

Zusammenfassung

Die KDJ Golden Cross Long Entry Strategie ist relativ einfach und praktisch im Allgemeinen, leicht für Anfänger zu starten und umzusetzen. Die Strategie hat bestimmte Handelsvorteile, hat aber auch einige Risiken. Sie benötigt gezielte Optimierung, um den Strategiewert vollständig zu realisieren. Insgesamt verdient die Strategie Schlüsselforschung und Anwendung.


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

//  ## !<------------------ Script --------------------------> 
//@version=5
strategy('KDJ NVDA', shorttitle='KDJ')

ilong = input(9, title='period')
isig = input(3, title='signal')

bcwsma(s, l, m) =>
    _bcwsma = float(na)
    _s = s
    _l = l
    _m = m
    _bcwsma := (_m * _s + (_l - _m) * nz(_bcwsma[1])) / _l
    _bcwsma

// profit strategy add
profit_m = input.float(1.20,"Profit Margin",minval=1.0,maxval=1.99,step=0.05)
stop_m = input.float(0.98,"Stop Loss Margin",minval=0.0,maxval=1,step=0.05)

// Make input options that configure backtest date range
startDate = input.int(title="Start Date", defval=1, minval=1,maxval=31)
startMonth = input.int(title="Start Month", defval=1,minval=1,maxval=12)
startYear = input.int(title="Start Year", defval=2023,minval=2018,maxval=2024)
endDate = input.int(title="End Date", defval=1, minval=1,maxval=31)
endMonth = input.int(title="End Month", defval=1,minval=1,maxval=12)
endYear = input.int(title="End Year", defval=2024,minval=2018,maxval=2099)

// intialization of variables
// Look if the close time of the current bar
// falls inside the date range
inDateRange = (time >= timestamp(syminfo.timezone, startYear,startMonth, startDate, 0, 0)) and (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0))

c = close
h = ta.highest(high, ilong)
l = ta.lowest(low, ilong)
RSV = 100 * ((c - l) / (h - l))
pK = bcwsma(RSV, isig, 1)
pD = bcwsma(pK, isig, 1)
pJ = 3 * pK - 2 * pD
KDJ = math.avg(pD, pJ, pK)

go_long= ta.crossunder(pD,pJ)


if (inDateRange and go_long)
    strategy.entry("S",strategy.long,comment="C")
	// strategy.exit("S", limit=c*profit_m, stop=c*stop_m, comment="SL/SP")
	
if (inDateRange and pJ > 100)
	strategy.close("S", comment="TP")
	
// Plot options
// plot(pK, color= #1E88E5)
// plot(pD, color=#FF6F00)
// plot(ma, color=color.yellow)
// bgcolor(pJ>pD? color.green : color.red)

plot(pK, title='% K', color=color.new(color.orange, 0))
plot(pD, title='% D', color=color.new(color.lime, 0))
plot(pJ, title='% J', color=color.new(color.fuchsia, 0))
plot(KDJ, title='KDJ', color=color.new(color.white, 0))
// </PINE> </SCRIPT>
// ## This source code is subject to the terms of the ozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// ## !<------------------ End Script --------------------------> 


Mehr