Bitlinc MARSI Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 29.02.2024
Tags:

img

Übersicht

Diese Strategie ist eine RSI-Oszillations-Tracking-Strategie, die auf jährlichen Anpassungen basiert. Durch die Verfolgung der Oszillationsmerkmale des RSI-Indikators zwischen den aufgelegten oberen und unteren Bands werden Handelssignale ausgegeben, wenn der RSI-Indikator die oberen und unteren Bands berührt.

Strategieprinzip

  1. Festlegen von Parametern für die Längen der MA, den RSI, das obere/untere Band, die Gewinn-/Verluststopfung, den Handelszyklusbereich.
  2. Berechnen Sie den RSI-Wert, RSI = (Durchschnittliche Veränderung nach oben) /(Durchschnittliche Veränderung nach oben + Durchschnittliche Veränderung nach unten) *100
  3. Grafik RSI-Linie und -Bänder
  4. RSI unterhalb des unteren Bandes ist langes Signal, über dem oberen Band ist kurzes Signal
  5. Offene Positionen mit OCO-Orders
  6. Ausführen von Stop Loss und Take Profit basierend auf den Einstellungen

Analyse der Vorteile

  1. Durch die Festlegung eines jährlichen Handelszyklus werden ungeeignete äußere Umgebungen vermieden.
  2. Der RSI spiegelt überkaufte/überverkaufte Produkte effizient wider.
  3. OCO-Aufträge + Stop-Loss/Profit-Einstellungen ermöglichen eine effiziente Risikokontrolle.

Risikoanalyse

  1. Die Genauigkeit des RSI-Schwellenwerts kann nicht garantiert werden, es kann zu Fehleinschätzungen kommen.
  2. Eine falsche Einstellung des jährlichen Zyklus kann bessere Möglichkeiten verpassen oder zu ungeeigneten Umgebungen führen.
  3. Eine zu große Stop-Loss-Einstellung kann zu großen Verlusten führen, während eine zu geringe Gewinn-Einstellung zu einem geringen Gewinn führt.

Methoden wie die Anpassung der RSI-Parameter, der Handelszyklusspanne, der Stop-Loss-/Profit-Verhältnisse können zur Optimierung verwendet werden.

Optimierungsrichtlinien

  1. Prüfung der optimalen RSI-Parameter für verschiedene Märkte und Zyklen
  2. Analyse des Gesamtmusters des Marktzyklus, Festlegung der besten jährlichen Handelsphase
  3. Feststellung angemessener Stop-Loss/Profit-Verhältnisse durch Backtest
  4. Optimierung der Auswahl von Handelsprodukten und Positionsgröße
  5. Kombination mit anderen besseren Techniken zur weiteren Optimierung

Zusammenfassung

Diese Strategie verfolgt den Trend durch die Merkmale der jährlichen Zyklus-Oszillation des RSI, wodurch die Handelsrisiken wirksam kontrolliert werden.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Bitlinc MARSI Study AST",shorttitle="Bitlinc MARSI Study AST",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,initial_capital=1000,currency="USD",pyramiding=0, calc_on_order_fills=false)

// === General Inputs ===
lengthofma = input(62, minval=1, title="Length of MA")
len = input(31, minval=1, title="Length")
upperband = input(89, minval=1, title='Upper Band for RSI')
lowerband = input(10, minval=1, title="Lower Band for RSI")
takeprofit =input(1.25, title="Take Profit Percent")
stoploss =input(.04, title ="Stop Loss Percent")
monthfrom =input(8, title = "Month Start")
monthuntil =input(12, title = "Month End")
dayfrom=input(1, title= "Day Start")
dayuntil=input(31, title= "Day End")

// === Innput Backtest Range ===
//FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
//FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
//FromYear  = input(defval = 2018, title = "From Year", minval = 2017)
//ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
//ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
//ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

// === Create RSI ===
src=sma(close,lengthofma)
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi,linewidth = 2, color=purple)

// === Plot Bands ===
band1 = hline(upperband)
band0 = hline(lowerband)
fill(band1, band0, color=blue, transp=95)

// === Entry and Exit Methods ===
longCond =  crossover(rsi,lowerband)
shortCond =  crossunder(rsi,upperband)

// === Long Entry Logic ===
if (  longCond ) 
    strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND", comment="LONG")
else
    strategy.cancel(id="LONG")

// === Short Entry Logic ===    
if ( shortCond   ) 
    strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND",  comment="SHORT")
else
    strategy.cancel(id="SHORT")

// === Take Profit and Stop Loss Logic ===
//strategy.exit("Take Profit LONG", "LONG", profit = close * takeprofit / syminfo.mintick, loss = close * stoploss / syminfo.mintick)
//strategy.exit("Take Profit SHORT", "SHORT", profit = close * takeprofit / syminfo.mintick, loss = close * stoploss / syminfo.mintick)
strategy.exit("LONG TAKE PROFIT", "LONG", profit = close * takeprofit / syminfo.mintick)
strategy.exit("SHORT STOP LOSS", "SHORT", profit = close * takeprofit / syminfo.mintick)
strategy.exit("LONG STOP LOSS", "LONG", loss = close * stoploss / syminfo.mintick)
strategy.exit("SHORT STOP LOSS", "SHORT", loss = close * stoploss / syminfo.mintick)



Mehr