
Die Strategie, genannt “Heikin Ashi ROC-Prozentsatz-basierte Handelsstrategie”, soll einen einfach zu bedienenden Handelsrahmen auf Basis von Heikin Ashi ROC und seinen Prozentsätzen bieten.
Die Strategie erzeugt eine Auf- und Abwärtsbahn für den Handel, indem sie die ROC des Heikin Ashi-Abschlusskurses und seine Höchst- und Tiefstwerte in verschiedenen Zeiträumen berechnet. Insbesondere berechnet sie die ROC des Heikin Ashi-Abschlusskurses in den vergangenen rocLength-Zyklen. Dann berechnet sie den höchsten Wert rocHigh und den niedrigsten Wert rocLow der letzten 50 Zyklen.
Der größte Vorteil dieser Strategie besteht darin, dass die robuste Trendverfolgung der ROC-Indikatoren in Verbindung mit den Eigenschaften der Heikin Ashi-Gleichpreisinformationen genutzt wird, um Trendänderungen effektiv zu identifizieren. Im Vergleich zu Indikatoren wie einfachen Moving Averages reagiert die ROC schneller auf Preisänderungen, so dass die Strategie rechtzeitig eingreifen kann.
Das Hauptrisiko dieser Strategie besteht darin, dass die falsche Einstellung der Parameter zu häufigen oder unzureichenden Transaktionen führen kann. RocLength und die Periodizität der Berechnung der Prozentzahlen müssen sorgfältig eingestellt werden, da dies zu einem zu schwachen oder starren Auf- und Abstieg führen kann, wodurch Handelschancen verpasst oder unnötige Verluste verursacht werden. Die Einstellung der Prozentzahlen muss außerdem anhand von wiederholten Tests in verschiedenen Märkten angepasst werden, um die optimale Kombination von Parametern zu finden.
Die Strategie kann in folgenden Bereichen optimiert werden: 1) in Kombination mit anderen Indikatoren, die Einstiegssignale wie den RSI filtern; 2) dynamische Optimierungsparameter mit Hilfe von Machine-Learning-Methoden; 3) Setup von Stop-Loss-Stopp-Automatischen Roh-Exit-Mechanismen; 4) Kombination mit anderen nicht-trendenden Strategien, um das Risiko der Strategie auszugleichen.
Zusammenfassend nutzt die Strategie die starke Trendverfolgung der ROC-Indikatoren, um Trends zu beurteilen und zu verfolgen, in Kombination mit den Heikin Ashi-Eigenschaften, und die Stop-Loss-Filterung durch die Auf- und Abwärtsbahnen, die sich aus den ROC-Prozentzahlen ergeben, um zu verwirklichen Es zeigt eine bessere Trend-Tracking-Effekt. Der Vorteil liegt in der zeitlichen Erkennung von Trendänderungen und die Beobachtung der großen Trends, während durch Auf-und Abwärts-Filter Schwingungen. Aber die falsche Einstellung der Parameter kann die Strategie beeinflussen, und die Gefahr der Trendumkehr. Durch weitere Optimierung der Parameter-Auswahl und Einstellung von Stop-Loss, kann die Strategie eine stabilere Wirkung erhalten.
/*backtest
start: 2023-09-22 00:00:00
end: 2023-10-22 00:00:00
period: 1h
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/
// © jensenvilhelm
//@version=5
strategy("Heikin Ashi ROC Percentile Strategy", shorttitle="ROC ON" , overlay=false)
// User Inputs
zerohLine = input(0, title="Midline") // Zero line, baseline for ROC (customer can modify this to adjust midline)
rocLength = input(100, title="roc Length") // Lookback period for SMA and ROC (customer can modify this to adjust lookback period)
stopLossLevel = input(2, title="Stop Loss (%)") // Level at which the strategy stops the loss (customer can modify this to adjust stop loss level)
startDate = timestamp("2015 03 03") // Start date for the strategy (customer can modify this to adjust start date)
// Heikin Ashi values
var float haClose = na // Define Heikin Ashi close price
var float haOpen = na // Define Heikin Ashi open price
haClose := ohlc4 // Calculate Heikin Ashi close price as average of OHLC4 (no customer modification needed here)
haOpen := na(haOpen[1]) ? (open + close) / 2 : (haOpen[1] + haClose[1]) / 2 // Calculate Heikin Ashi open price (no customer modification needed here)
// ROC Calculation
roc = ta.roc(ta.sma(haClose, rocLength), rocLength) // Calculate Rate of Change (ROC) (customer can modify rocLength in the inputs)
rocHigh = ta.highest(roc, 50) // Get the highest ROC of the last 50 periods (customer can modify this to adjust lookback period)
rocLow = ta.lowest(roc, 50) // Get the lowest ROC of the last 50 periods (customer can modify this to adjust lookback period)
upperKillLine = ta.percentile_linear_interpolation(rocHigh, 10, 75) // Calculate upper kill line (customer can modify parameters to adjust this line)
lowerKillLine = ta.percentile_linear_interpolation(rocLow, 10, 25) // Calculate lower kill line (customer can modify parameters to adjust this line)
// Trade conditions
enterLong = ta.crossover(roc, lowerKillLine) // Define when to enter long positions (customer can modify conditions to adjust entry points)
exitLong = ta.crossunder(roc, upperKillLine) // Define when to exit long positions (customer can modify conditions to adjust exit points)
enterShort = ta.crossunder(roc, upperKillLine) // Define when to enter short positions (customer can modify conditions to adjust entry points)
exitShort = ta.crossover(roc, lowerKillLine ) // Define when to exit short positions (customer can modify conditions to adjust exit points)
// Strategy execution
if(time >= startDate) // Start strategy from specified start date
if (enterLong)
strategy.entry("Long", strategy.long) // Execute long trades
if (exitLong)
strategy.close("Long") // Close long trades
if (enterShort)
strategy.entry("Short", strategy.short) // Execute short trades
if (exitShort)
strategy.close("Short") // Close short trades
// Plotting
plot(zerohLine,title="Zeroline") // Plot zero line
plot(roc, "RSI", color=color.rgb(248, 248, 248)) // Plot ROC
plot(rocHigh, "Roc High", color = color.rgb(175, 78, 76)) // Plot highest ROC
plot(rocLow, "Roc Low", color = color.rgb(175, 78, 76)) // Plot lowest ROC
plot(upperKillLine, "Upper Kill Line", color = color.aqua) // Plot upper kill line
plot(lowerKillLine, "Lower Kill Line", color = color.aqua) // Plot lower kill line