
Die Strategie nutzt die ATR-Kanal- und Breakout-Theorie und ist eine Trendverfolgungsstrategie. Die Strategie ist einfach zu verstehen und verwendet die Gleichlauf-Kanal- und ATR-Indikatoren, um die Richtung des Trends zu bestimmen und an wichtigen Punkten ein Handelssignal zu senden.
Die Strategie verwendet die Hoch-, Tief-, Schlusskurs- und ATR-Indikatoren, um Auf- und Abwärtsbahnen zu erstellen, um ATR-Kanäle zu bilden. Die Kanalbreite hängt von der Größe der ATR-Parameter ab. Wenn der Preis den Kanal durchbricht, wird er als Trendbeginn bezeichnet, wobei er in die Richtung von Über- oder Abnahme geht. Die Strategie ist in zwei Handelssignale unterteilt.
Die wichtigsten Vorteile der Strategie sind:
Die wichtigsten Risiken dieser Strategie sind:
Die Strategie kann wie folgt optimiert werden:
Der Gesamtrahmen der Strategie ist klar und als Konzeptüberprüfungsstrategie verständlich. Es besteht jedoch ein gewisser Abstand zur Realität und ein großer Optimierungsraum. Die Strategie hat bessere Aussichten, wenn die Windkontrolle und die Frequenzkontrolle der Transaktionen weiter verbessert werden können.
/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Myhaj_Lito
//@version=5
strategy("Renko Trend Strategy",shorttitle = "RENKO-Trend str.",overlay = true)
TF = input.timeframe(title='TimeFrame', defval="60")
ATRlength = input.int(title="ATR length", defval=60, minval=2, maxval=1000)
HIGH = request.security(syminfo.tickerid, TF, high)
LOW = request.security(syminfo.tickerid, TF, low)
CLOSE = request.security(syminfo.tickerid, TF, close)
ATR = request.security(syminfo.tickerid, TF, ta.atr(ATRlength))
RENKOUP = float(na)
RENKODN = float(na)
H = float(na)
COLOR = color(na)
BUY = int(na)
SELL = int(na)
UP = bool(na)
DN = bool(na)
CHANGE = bool(na)
RENKOUP := na(RENKOUP[1]) ? (HIGH + LOW) / 2 + ATR / 2 : RENKOUP[1]
RENKODN := na(RENKOUP[1]) ? (HIGH + LOW) / 2 - ATR / 2 : RENKODN[1]
H := na(RENKOUP[1]) or na(RENKODN[1]) ? RENKOUP - RENKODN : RENKOUP[1] - RENKODN[1]
COLOR := na(COLOR[1]) ? color.white : COLOR[1]
BUY := na(BUY[1]) ? 0 : BUY[1]
SELL := na(SELL[1]) ? 0 : SELL[1]
UP := false
DN := false
CHANGE := false
// calculating
if not CHANGE and close >= RENKOUP[1] + H * 2
CHANGE := true
UP := true
RENKOUP := RENKOUP[1] + ATR * 2
RENKODN := RENKOUP[1] + ATR
COLOR := color.rgb(0, 255, 170,60)
SELL := 0
BUY += 2
BUY
if not CHANGE and close >= RENKOUP[1] + H
CHANGE := true
UP := true
RENKOUP := RENKOUP[1] + ATR
RENKODN := RENKOUP[1]
COLOR := color.rgb(0, 230, 38,60)
SELL := 0
BUY += 1
BUY
if not CHANGE and close <= RENKODN[1] - H * 2
CHANGE := true
DN := true
RENKODN := RENKODN[1] - ATR * 2
RENKOUP := RENKODN[1] - ATR
COLOR := color.rgb(255, 92, 43,60)
BUY := 0
SELL += 2
SELL
if not CHANGE and close <= RENKODN[1] - H
CHANGE := true
DN := true
RENKODN := RENKODN[1] - ATR
RENKOUP := RENKODN[1]
COLOR := color.rgb(245, 69, 69,60)
BUY := 0
SELL += 1
SELL
//// STRATEGY
if(UP)
strategy.entry("Long",strategy.long)
if(DN)
strategy.entry("Short",strategy.short)
// ploting
bgcolor(COLOR)