Die K-Line-Breakout-Strategie ist eine quantitative Trading-Strategie, die die K-Line-Form und die K-Line-Indikatoren nutzt, um Aktien zu kaufen und zu verkaufen. Die Strategie kombiniert mehrere technische Indikatoren, um Aktienpreistrends und K-Line-Signale zu identifizieren, um an den Breakout-Punkten zu positionieren und eine Stop-Loss-Stop-Exit-Strategie einzurichten, um das Handelsrisiko effektiv zu kontrollieren.
Die Strategie zur Durchbrechung der K-Linie basiert auf folgenden Punkten:
Der Commodity Channel Index (CCI) wird verwendet, um zu bestimmen, ob der Aktienpreis in einer Überkauf-Überverkaufszone ist. Wenn der CCI über 100 liegt, wird dies als Überkaufsignal betrachtet, und wenn der CCI unter 100 liegt, wird dies als Überverkaufsignal betrachtet.
Beurteilen Sie die K-Linie-Form und erkennen Sie ein Durchbruchsignal. Wenn ein roter K-Linie mit einem Schlusskurs höher als der Eröffnungspreis auftritt, wird er als Aufwärtstrend beurteilt, und wenn ein grüner K-Linie mit einem Schlusskurs niedriger als der Eröffnungspreis auftritt, wird er als Abwärtstrend beurteilt.
Die Kombination von Handelsvolumen-Indikatoren ist nur dann in Betracht gezogen, wenn die Handelsmenge größer ist.
Wenn ein Aufwärtstrend identifiziert wird und der CCI-Indikator überkauft, wird ein Kaufoperation durchgeführt. Wenn ein Abwärtstrend identifiziert wird und der CCI-Indikator überkauft, wird ein Verkaufoperation durchgeführt.
Setzen Sie einen Stop-Loss-Stopp. Setzen Sie einen Stop-Loss-Stopp in einem bestimmten Prozentsatz nach dem Kauf, um das Abwärtsrisiko zu kontrollieren, und setzen Sie auch einen Stop-Loss-Stopp in einem bestimmten Prozentsatz, um den Gewinn zu sperren.
Die Strategie nutzt den CCI-Indikator, um Überkauf und Überverkauf zu bestimmen, die K-Linie, um die Richtung des Trends zu bestimmen, und den Volume-Indikator. Wenn die Bedingungen erfüllt sind, werden die Operationen des Longings oder des Shortings durchgeführt.
Die Strategie zur Durchbrechung der K-Linie hat folgende Vorteile:
Die Kombination verschiedener Indikatoren für die Entscheidungsfindung macht die Handelssignale zuverlässiger. Der CCI-Indikator bestimmt die Kauf- und Verkaufspunkte, die K-Linie bestimmt die Trendrichtung, und das Volumen spiegelt die Marktkräfte wider.
Die K-Linie hilft dabei, die Richtung des Trends zu bestimmen und die Chancen auf eine Kursumkehr zu erfassen. Zum Beispiel ist die rote K-Linie in Verbindung mit dem CCI-Überverkauf eine gute Gelegenheit zum Kauf.
Ein Stop-Loss-Stop-Mechanismus kann das Risiko effektiv kontrollieren, verhindert, dass die Verluste sich ausbreiten, und kann die Gewinne sperren.
Wenn Sie nur bei einem erhöhten Transaktionsvolumen handeln, können Sie falsche Signale herausfiltern.
Die Strategie ist klar und verständlich, die Parameter sind flexibel und können für verschiedene Aktien und Marktumgebungen optimiert werden.
Strategie kann optimiert werden, um sie zu erweitern, z. B. durch die Einbeziehung von mehr Faktoren, Maschinelles Lernen usw., um die Stabilität und die Rendite der Strategie zu verbessern.
Die Strategie, die K-Linie zu durchbrechen, birgt auch folgende Risiken:
Es kann zu Verzögerungen bei den Kauf- und Verkaufssignalen kommen, wodurch die besten Einstiegspunkte verpasst werden. Die Parameter des CCI können entsprechend optimiert werden, um die Empfindlichkeit zu erhöhen.
Falsche Durchbruchsignale, die von K-Linien-Formen beurteilt werden, können zu unnötigen Verlusten führen. Es können weitere Indikatoren zur Bestätigung hinzugefügt oder die Stop-Loss-Rate angepasst werden.
Die Erhöhung des Umsatzes kann auch auf Marktmanipulationen hindeuten, und es ist notwendig, sich auf die Beziehung zwischen den Preisen zu konzentrieren, um zu verhindern, dass man in eine Falle gerät.
Eine statische Stop-Stop-Einstellung kann zu früh zum Stoppen führen oder größere Ereignisse verpassen. Eine dynamische Anpassung des Stop-Stop-Ratios kann in Betracht gezogen werden.
Die Parameter, die für einzelne Aktien gesetzt werden, sind nicht unbedingt für andere Aktien geeignet und müssen entsprechend den Eigenschaften der verschiedenen Aktien getestet und optimiert werden.
Die langfristigen Rückmessdaten sind nicht unbedingt repräsentativ für die Leistung der realen Plattform.
Die Strategie kann in folgenden Bereichen optimiert werden:
Optimierung der CCI-Parameter zur Verbesserung der Beurteilungsempfindlichkeit des CCI-Indikators für Kauf- und Verkaufspunkte.
Zusätzliche Hilfsindikatoren wie MACD, Bollinger Bands etc. wurden hinzugefügt, um die Genauigkeit der Kauf- und Verkaufssignale zu verbessern.
Mit Hilfe von Machine Learning-Algorithmen und historischen Trainings zur Vorhersage von Kauf- und Verkaufspunkten.
Die Stop-Loss-Stop-Methode ist dynamisch und passt die Stop-Loss-Stop-Rate an die Marktfluktuation an.
Optimierung der Logik für die Erhöhung der Transaktionsmenge und Verhinderung von Abweichungen bei den Preisen.
Optimierung der Parameter-Einstellungen entsprechend der verschiedenen Aktien-Eigenschaften und des Marktumfelds zur Steigerung der Strategie-Stabilität
Hinzufügen von Trend-Tracking-Mechanismen, um die Strategie in verschiedenen Phasen zu optimieren.
Verbesserung der Strategiestruktur, Einführung von Modularisierung und Verbesserung der Code-Flexibilität und -Erweiterbarkeit.
Die K-Linien-Breakout-Strategie ist insgesamt eine relativ einfache und eindeutige Short-Line-Trading-Strategie. Sie kombiniert die Vorteile verschiedener gängiger technischer Indikatoren, die Urteilslogik ist klar und verständlich und kontrolliert das Risiko durch Stop-Loss-Stopps. Die Strategie kann flexibel optimiert werden, je nach eigenen Bedürfnissen, um Short-Line-Preisumkehrpunkte zu erfassen und die mittelfristigen Trends zu verfolgen.
/*backtest
start: 2023-09-06 00:00:00
end: 2023-10-06 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © vikris
//@version=4
strategy("[VJ]War Machine PAT Intra", overlay=true, calc_on_every_tick = false)
// ********** Strategy inputs - Start **********
// Used for intraday handling
// Session value should be from market start to the time you want to square-off
// your intraday strategy
// Important: The end time should be at least 2 minutes before the intraday
// square-off time set by your broker
var i_marketSession = input(title="Market session", type=input.session,
defval="0915-1455", confirm=true)
// Make inputs that set the take profit % (optional)
longProfitPerc = input(title="Long Take Profit (%)",
type=input.float, minval=0.0, step=0.1, defval=5.0) * 0.01
shortProfitPerc = input(title="Short Take Profit (%)",
type=input.float, minval=0.0, step=0.1, defval=5.0) * 0.01
// Set stop loss level with input options (optional)
longLossPerc = input(title="Long Stop Loss (%)",
type=input.float, minval=0.0, step=0.1, defval=5.0) * 0.01
shortLossPerc = input(title="Short Stop Loss (%)",
type=input.float, minval=0.0, step=0.1, defval=5.0) * 0.01
trendFactor = input(title="Trend Factor(Lower means trending)", type=input.integer, minval=1, step=1, defval=50)
oversold = input(title="Oversold", type=input.integer, minval=1, step=1, defval=25)
overbought = input(title="Overbought", type=input.integer, minval=1, step=1, defval=75)
// ********** Strategy inputs - End **********
// ********** Supporting functions - Start **********
// A function to check whether the bar or period is in intraday session
barInSession(sess) => time(timeframe.period, sess) != 0
// Figure out take profit price
longExitPrice = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)
// Determine stop loss price
longStopPrice = strategy.position_avg_price * (1 - longLossPerc)
shortStopPrice = strategy.position_avg_price * (1 + shortLossPerc)
// ********** Supporting functions - End **********
// ********** Strategy - Start **********
// See if intraday session is active
bool intradaySession = barInSession(i_marketSession)
// Trade only if intraday session is active
//=================Strategy logic goes in here===========================
//Vol Confirmation
vol = volume > volume[1]
//Engulfing candle confirm
bullishEC = close > open[1] and close[1] < open[1]
bearishEC = close < open[1] and close[1] > open[1]
//Candles colors
greenCandle = (close > open)
redCandle = (close < open)
length = input(title="Length", type=input.integer, defval=14, minval=1, maxval=2000)
src = hlc3
upper = sum(volume * (change(src) <= 0 ? 0 : src), length)
lower = sum(volume * (change(src) >= 0 ? 0 : src), length)
_rsi(upper, lower) =>
100.0 - (100.0 / (1.0 + upper / lower))
mf = _rsi(upper, lower)
ci = 100 * log10(sum(atr(1), length) / (highest(length) - lowest(length))) / log10(length)
//tradeSignal = ((rsiOS or rsiOS[1]) and bullishEC) or ((rsiOB or rsiOB[1]) and bearishEC)
//Final Long/Short Condition
longCondition = redCandle and mf < oversold and ci <trendFactor and vol
shortCondition = greenCandle and mf >overbought and ci <trendFactor and vol
//Long Strategy - buy condition and exits with Take profit and SL
if (longCondition and intradaySession)
stop_level = longStopPrice
profit_level = longExitPrice
strategy.entry("My Long Entry Id", strategy.long)
strategy.exit("TP/SL", "My Long Entry Id", stop=stop_level, limit=profit_level)
//Short Strategy - sell condition and exits with Take profit and SL
if (shortCondition and intradaySession)
stop_level = shortStopPrice
profit_level = shortExitPrice
strategy.entry("My Short Entry Id", strategy.short)
strategy.exit("TP/SL", "My Short Entry Id", stop=stop_level, limit=profit_level)
// Square-off position (when session is over and position is open)
squareOff = (not intradaySession) and (strategy.position_size != 0)
strategy.close_all(when = squareOff, comment = "Square-off")
// ********** Strategy - End **********