Multi-Time-Frame-Bollinger-Bänder-Kryptowährungsstrategie


Erstellungsdatum: 2024-02-27 14:13:39 zuletzt geändert: 2024-02-27 14:13:39
Kopie: 1 Klicks: 860
1
konzentrieren Sie sich auf
1621
Anhänger

Multi-Time-Frame-Bollinger-Bänder-Kryptowährungsstrategie

Überblick

Die Strategie verwendet den Bollinger Bands-Indikator, um die Preisentwicklung von Kryptowährungen in verschiedenen Zeitabschnitten (eine, drei, fünf und fünfzehn Minuten) zu analysieren und nach Kauf- und Verkaufsmöglichkeiten zu suchen. Als Maßstab für die Stimmung in den Kryptowährungsmärkten konzentriert sie sich hauptsächlich auf den 5-Minuten-Preis von Bitcoin.

Strategieprinzip

Die Strategie berechnet die Bollinger Bands gleichzeitig in Zeitabschnitten von 1, 3, 5 und 15 Minuten. Die Bollinger Bands bestehen aus einem Moving Average von n Tagen (default: 20 Tage) und mehreren Multiplikatoren der Standarddifferenz (default: 1,5 Mal). Der Moving Average zeigt den durchschnittlichen Preis der Währung über einen bestimmten Zeitraum an, während die Standarddifferenz die Ausdehnung der Preisschwankungen widerspiegelt.

Die Strategie nutzt diese Eigenschaft des Brin-Band-Indikators, um die neuesten Marktentwicklungen in verschiedenen Zeiträumen zu beurteilen: 1 Minute, 3 Minuten, 5 Minuten und 15 Minuten. Wenn der Preis in den 3- oder 5-Minuten-Zeiträumen den Brin-Band überschreitet oder überschreitet, und die 1-Minuten- und 15-Minuten-Zeiträume auch entsprechende Anzeichen zeigen, beurteilt die Strategie, dass der Markt das neueste Kauf- und Verkaufssignal ausgegeben hat.

Nach der Eröffnung der Position setzt die Strategie auch eine Stop-Loss-Bedingung. Wenn der Preis der Position um 25% steigt oder fällt, wird ein Stop-Loss gesetzt. Wenn der Preis um mehr als 25% steigt oder fällt, wird ein Stop-Loss gesetzt.

Strategische Vorteile

  1. Die Strategie beinhaltet eine umfassende Bewertung der kurz- und mittelfristigen Marktentwicklung. Die 1-minütigen und 5-minütigen Zeitspiele beurteilen die neuesten Marktentwicklungen. Die 15-minütigen Zeitspiele beurteilen die mittelfristigen Trends und können so effektiv davon abgehalten werden, von kurzfristigen Marktschwankungen getäuscht zu werden.

  2. Die Strategie konzentriert sich gleichzeitig auf die Durchbrüche in den Mittelschienen, den Ober- und Unterbahnen des Brinbands, um keine Kauf- und Verkaufsmöglichkeiten zu verpassen.

  3. Bitcoin als Marktbenchmark und als Blitzmesser für die Stimmung der Märkte kann die Genauigkeit von Entscheidungen verbessern.

  4. Ein Stop-Loss-Bedingung ist eingerichtet, um das Risiko effektiv zu kontrollieren.

Strategisches Risiko

  1. Die Brin-Band-Durchbruchform hat eine gewisse Verzögerung und kann die beste Einstiegsmomente verpassen.

  2. Wenn die Kryptowährungsmärkte als Ganzes von Systemrisiken wie Black Swans wie Passwörtern betroffen sind, ist es schwierig, mit dieser Strategie effektiv umzugehen.

  3. Obwohl ein Stop-Loss eingerichtet ist, kann ein Unfall, der die Stop-Loss-Grenze überschreitet, auch zu größeren Verlusten führen.

  4. Die falsche Einstellung von Strategieparametern wie der Zeitspanne und der Multiplikation der Standarddifferenz führt zu einer geringeren Qualität der Handelssignale.

Die entsprechende Lösung:

  1. Die besten Zulassungszeiten werden in Kombination mit weiteren Kriterien ermittelt.

  2. Erhöhung der Bewertung von Systemrisiken auf dem Markt.

  3. Die Größe der Positionen und die Stop-Loss-Grenze für jeden Handel werden entsprechend verkleinert.

  4. Optimierungsparameter eingestellt, Rückmeldung überprüft.

Strategieoptimierung

  1. Ein zusätzlicher Zeitraffer, z. B. ein 30-minütiger oder ein 60-minütiger Brin-Band-Messer.

  2. Wählen Sie die geeigneten Brin-Band-Parameter für die verschiedenen Währungen, um die Effektivität des Indikators zu verbessern.

  3. Es ist wichtig, dass die Anbieter die Anbieter anbieten, die die Anbieter anbieten, die die Anbieter anbieten.

  4. In Kombination mit anderen Indikatoren wie Stoch RSI, MACD, erhöht die Entscheidungsgenauigkeit. Diese Indikatoren können die tatsächliche Entwicklung des Marktes erheblich verbessern.

  5. Vergleichen Sie die Preisentwicklung und die Korrelation zwischen den verschiedenen Währungen und wählen Sie den Handelspartner aus, der am meisten Spielraum hat.

  6. Optimierung der Stop-Loss-Strategie und Ermittlung der optimalen Parameter durch eine statistische Analyse nach den Ereignissen.

Zusammenfassen

Diese Strategie ist eine mehrzeitige Tabulationsband-Kryptowährungs-Handelsstrategie. Sie konzentriert sich auf Preisveränderungen in den Märkten auf kurz- und mittelfristiger Zeitskala. Die Anwendung der Tabulationsband-Indikatoren beurteilt die MULIT-Leerstand des Marktes. Gleichzeitig verwendet sie den Bitcoin-Preis als Markt-Basis und Referenzsignal, um die Gesamtbewegung des gesamten Kryptowährungsmarktes zu beurteilen.

Strategiequellcode
/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(shorttitle="Crypto BB", title="Multi-Interval Bollinger Band Crypto Strategy", overlay=true)
length = input.int(20, minval=1)
maType = input.string("SMA", "Basis MA Type", options = ["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"])
src = input(close, title="Source")
mult = input.float(1.5, minval=0.001, maxval=50, title="StdDev")

interval1m = request.security(syminfo.tickerid, '1', src)
interval3m = request.security(syminfo.tickerid, '3', src)
interval5m = request.security(syminfo.tickerid, '5', src)
interval15m = request.security(syminfo.tickerid, '5', src)
btcinterval5m = request.security("BTC_USDT:swap", "5", src)
bitcoinSignal = 'flat'

var entryPrice = 0.000

ma(source, length, _type) =>
    switch _type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

bitcoinBasis = ma(btcinterval5m, length, maType)
bitcoinDev = ta.stdev(btcinterval5m, length)
bitcoinUpper = bitcoinBasis + bitcoinDev
bitcoinLower = bitcoinBasis - bitcoinDev

basis1m = ma(interval1m, length, maType)
basis3m = ma(interval3m, length, maType)
basis5m = ma(interval5m, length, maType)
basis15m = ma(interval5m, length, maType)
dev1m = mult * ta.stdev(interval1m, length)
dev3m = mult * ta.stdev(interval3m, length)
dev5m = mult * ta.stdev(interval5m, length)
upper1m = basis1m + dev1m
lower1m = basis1m - dev1m
upper3m = basis3m + dev3m
lower3m = basis3m - dev3m
upper5m = basis5m + dev5m
lower5m = basis5m - dev5m
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis3m, "Basis 3 minute", color=#2962FF, offset = offset)
p3upper = plot(upper3m, "Upper", color=#2962FF, offset = offset)
p3lower = plot(lower3m, "Lower", color=#2962FF, offset = offset)

//Exit protocols
if strategy.opentrades != 0 and strategy.opentrades.entry_id(0) == 'Buy'
    entryPrice := strategy.opentrades.entry_price(0)
    if ((interval1m - entryPrice)/entryPrice) * 30 > .25
        strategy.close('Buy', comment='Take Profit on Buy')
    if ((interval1m - entryPrice)/entryPrice) * 30 < -.25
        strategy.close('Buy', comment='Stop Loss on Buy')

if strategy.opentrades != 0 and strategy.opentrades.entry_id(0) == 'Sell'
    entryPrice := strategy.opentrades.entry_price(0)
    if ((entryPrice - interval1m)/entryPrice) * 30 > .25
        strategy.close('Sell', comment='Take Profit on Sell')
    if ((entryPrice - interval1m)/entryPrice) * 30 < -.25
        strategy.close('Sell', comment='Stop Loss on Sell')

//Bitcoin Analysis
if (btcinterval5m < bitcoinUpper and btcinterval5m[1] > bitcoinUpper[1] and btcinterval5m[2] < bitcoinUpper[2] and btcinterval5m[3] < bitcoinUpper[3])
    bitcoinSignal := 'Bear'
if (btcinterval5m > bitcoinUpper and btcinterval5m[1] < bitcoinUpper[1] and btcinterval5m[2] > bitcoinUpper[2] and btcinterval5m[3] > bitcoinUpper[3])
    bitcoinSignal := 'Bull'

//Short protocols
if (interval3m < basis3m and interval3m[1] > basis3m[1] and interval3m[2] < basis3m[2] and interval3m[3] < basis3m[3]) or 
 (interval5m < basis5m and interval5m[1] > basis5m[1] and interval5m[2] < basis5m[2] and interval5m[3] < basis5m[3]) 
  and strategy.opentrades.entry_id(0) != 'Sell'
   and src < basis1m and src < basis15m
    if strategy.opentrades.entry_id(0) == 'Buy'
        strategy.close('Buy', 'Basis Band Bearish Reversal')
    //strategy.order('Sell', strategy.short, comment = 'Basis band fractal rejection', stop = (upper1m + basis1m)/2)

if (interval3m < upper3m and interval3m[1] > upper3m[1] and interval3m[2] < upper3m[2] and interval3m[3] < upper3m[3]) or 
 (interval5m < upper5m and interval5m[1] > upper5m[1] and interval5m[2] < upper5m[2] and interval5m[3] < upper5m[3]) 
  and strategy.opentrades.entry_id(0) != 'Sell' and bitcoinSignal == 'Bear' and src < upper1m  and src < basis15m
    if strategy.opentrades.entry_id(0) == 'Buy'
        strategy.close('Buy', 'Bearish Trend Reversal')
    strategy.order('Sell', strategy.short, comment = 'Upper band fractal rejection', stop = (upper1m + basis1m)/2)

if (interval3m > basis3m and interval3m[1] < basis3m[1] and interval3m[2] > basis3m[2] and interval3m[3] > basis3m[3]) or 
 (interval5m > basis5m and interval5m[1] < basis5m[1] and interval5m[2] > basis5m[2] and interval5m[3] > basis5m[3]) and strategy.opentrades.entry_id(0) != 'Buy' 
  and src > basis1m  and src > basis15m
    if strategy.opentrades.entry_id(0) == 'Sell'
        strategy.close('Sell', 'Basis Band Bullish Reversal')
    //strategy.order('Buy', strategy.long, comment = 'Basis band fractal rejection', stop = (lower1m + basis1m)/2)

if (interval3m > lower3m and interval3m[1] < lower3m[1] and interval3m[2] > lower3m[2] and interval3m[3] > lower3m[3]) or 
 (interval5m > lower5m and interval5m[1] < lower5m[1] and interval5m[2] > lower5m[2] and interval5m[3] > basis5m[3]) and strategy.opentrades.entry_id(0) != 'Buy' 
  and src > lower1m  and src > basis15m and bitcoinSignal == 'Bull' 
    if strategy.opentrades.entry_id(0) == 'Sell'
        strategy.close('Sell', 'Bullish Trend Reversal')
    strategy.order('Buy', strategy.long, comment = 'Lower band fractal rejection', stop = (lower1m + basis1m)/2)