Quantitative Wave-Squeeze-Strategie


Erstellungsdatum: 2023-11-14 14:04:24 zuletzt geändert: 2023-11-14 14:04:24
Kopie: 0 Klicks: 640
1
konzentrieren Sie sich auf
1617
Anhänger

Quantitative Wave-Squeeze-Strategie

Überblick

Die Hauptidee der Strategie ist die Kombination von Lazy Bear’s Dynamic Indicator und Crypto Face’s MFI Indicator, um zu kaufen, wenn der Trend nach oben geht, und zu verkaufen, wenn der Trend nach unten geht, um eine quantitative Handelsstrategie zu realisieren, die Markttrends verfolgt.

Strategieprinzip

  1. Die Lazy Bear-Dynamik BlueWave wird verwendet, um die Richtung des Trends zu bestimmen, indem man die lineare Regression des Close-Preises mit dem 20-Tage-Hoch, dem Tief und dem Close-Gleichwert berechnet. Wenn BlueWave 0 überschreitet, ist der Trend aufwärts; wenn BlueWave 0 unterschreitet, ist der Trend nach unten.

  2. Mit dem MFI-Indikator, der von Crypto Face verbessert wurde, wird der Kapitalfluss durch Berechnung der Vor- und Nachteile der letzten 58 Tage und des Transaktionsvolumens beurteilt. MFI größer als 0 bedeutet Kapitalzufluss, MFI kleiner als 0 bedeutet Kapitalfluss.

  3. Wenn die BlueWave über 0 liegt und der MFI größer als 0 ist, gibt es ein Kaufsignal, um eine Position zu eröffnen. Wenn die BlueWave unter 0 liegt und der MFI kleiner als 0 ist, gibt es ein Verkaufssignal, um eine Position zu eröffnen.

  4. Setzen Sie Stop-Loss-Stopp-Bedingungen, verfolgen Sie die Markttrends, um Gewinne zu erzielen und gleichzeitig Risiken zu kontrollieren.

Strategische Vorteile

  1. Die Kombination von zwei Indikatoren ermöglicht eine genauere Beurteilung der Richtung der Markttrends.

  2. Die BlueWave-Indikatoren sind so geschaltet, dass sie nicht von außergewöhnlichen Daten beeinflusst werden und die Markttrends zuverlässiger beurteilen können.

  3. Die MFI-Indikatoren können den Geldfluss bestimmen und verhindern, dass ein falscher Durchbruch zu Verlusten führt.

  4. Weniger Strategieparameter, einfach zu implementieren und zu bedienen.

  5. Es gibt eine flexible Einstellung der Stop-Loss-Beschränkungen, um das Risiko des Handels zu kontrollieren.

  6. Es ist möglich, Kauf- und Verkaufszeiten einzurichten, um außergewöhnliche Schwankungen zu bestimmten Zeiten zu vermeiden.

Strategisches Risiko

  1. Wenn die Börse weiter sinkt, kann die Strategie weiter nach unten schießen und Verluste verursachen.

  2. Wenn die Anzeige ein falsches Signal erzeugt, kann sie nach der Einfahrt eingeschaltet werden.

  3. Die Stop-Loss-Punkte sind zu hoch eingestellt, die Gefahr, dass die Verluste zunehmen.

  4. Wenn die Märkte zu stark schwanken, ist die Wahrscheinlichkeit größer, dass die Stop-Loss-Punkte überschritten werden.

  5. Die Optimierung der Parameter ist nicht korrekt, was zu einer schlechten Strategie führen kann.

  6. Die Strategie erzeugt zu häufige Handelssignale und erhöht die Transaktionsgebühren und Schlupfpunkte.

Optimierungsrichtung

  1. Optimierung der BlueWave- und MFI-Parameter, um den Indikator stabiler und zuverlässiger zu machen.

  2. In Kombination mit Trendindikatoren verhindern Sie dauerhafte Verluste bei der Börsennotierung.

  3. Dynamische Anpassung der Stop-Loss-Stopp-Ratio zur Verringerung der Deckungswahrscheinlichkeit.

  4. Die Optimierung der Positionseröffnungsbedingungen und die Verringerung der Falschmeldungen.

  5. Es ist wichtig, dass Sie eine Positionskontrolle einführen, um nicht nach dem Abstich zu fallen.

  6. Das ist eine neue Methode, die den Markt für die Produkte und Dienstleistungen verbessert und die Marktpreise verbessert.

Zusammenfassen

Die Strategie nutzt die Kombination von BlueWave und MFI, um die Richtung der Tendenz zu bestimmen. Wenn die Tendenz aufwärts geht, macht sie mehr, wenn sie nach unten geht, macht sie leer. Sie kann die Markttrends effektiv verfolgen. Es besteht jedoch ein Risiko in Bezug auf Parameter-Einstellungen, Stop-Loss-Stopps, dauerhafte Rückgänge usw.

Strategiequellcode
/*backtest
start: 2022-11-07 00:00:00
end: 2023-11-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Bunghole 2021
strategy(title="Crypto Squeeze Strategy", initial_capital = 100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, currency = 'USD', overlay=true)

//// Stoploss and Take Profit Parameters
// Enable Long Strategy
enable_long_strategy = input(true, title="Enable Long Strategy", group="SL/TP For Long Strategy",inline="1")
long_stoploss_value = input(defval=50, title='Stoploss %', type=input.float, minval=0.1, group="SL/TP For Long Strategy",inline="2")
long_stoploss_percentage = (close * (long_stoploss_value / 100)) / syminfo.mintick
long_takeprofit_value = input(defval=50, title='Take Profit %', type=input.float, minval=0.1, group="SL/TP For Long Strategy",inline="2")
long_takeprofit_percentage = (close * (long_takeprofit_value / 100)) / syminfo.mintick

// Enable Short Strategy
enable_short_strategy = input(true, title="Enable Short Strategy", group="SL/TP For Short Strategy",inline="3")
short_stoploss_value = input(defval=50, title='Stoploss %', type=input.float, minval=0.1, group= "SL/TP For Short Strategy",inline="4")
short_stoploss_percentage = (close * (short_stoploss_value / 100)) / syminfo.mintick
short_takeprofit_value = input(defval=50, title='Take Profit %', type=input.float, minval=0.1, group="SL/TP For Short Strategy",inline="4")
short_takeprofit_percentage = (close * (short_takeprofit_value / 100)) / syminfo.mintick

// Plot Stoploss & Take Profit Levels
long_stoploss_price = strategy.position_avg_price * (1 - long_stoploss_value/100)
long_takeprofit_price = strategy.position_avg_price * (1 + long_takeprofit_value/100)
short_stoploss_price = strategy.position_avg_price * (1 + short_stoploss_value/100)
short_takeprofit_price = strategy.position_avg_price * (1 - short_takeprofit_value/100)
plot(enable_long_strategy and not enable_short_strategy ? long_stoploss_price: na, color=#ff0000, style=plot.style_linebr, linewidth=2, title="Long SL Level")
plot(enable_long_strategy and not enable_short_strategy ? long_takeprofit_price: na, color=#008000, style=plot.style_linebr, linewidth=2, title="Long TP Level")
plot(enable_short_strategy and not enable_long_strategy ? short_stoploss_price: na, color=#ff0000, style=plot.style_linebr, linewidth=2, title="Short SL Level")
plot(enable_short_strategy and not enable_long_strategy ? short_takeprofit_price: na, color=#008000, style=plot.style_linebr, linewidth=2, title="Short TP Level")

// Date Range
start_date = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31, group="Date Range")
start_month = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12, group="Date Range")
start_year = input(title="Start Year", type=input.integer, defval=1804, minval=1800, maxval=3000, group="Date Range")
end_date = input(title="End Date", type=input.integer, defval=1, minval=1, maxval=3, group="Date Range")
end_month = input(title="End Month", type=input.integer, defval=1, minval=1, maxval=12, group="Date Range")
end_year = input(title="End Year", type=input.integer, defval=2077, minval=1800, maxval=3000, group="Date Range")
in_date_range = (time >= timestamp(syminfo.timezone, start_year, start_month, start_date, 0, 0)) and (time < timestamp(syminfo.timezone, end_year, end_month, end_date, 0, 0))


//// Indicator Inputs
// Lazy Bear's Momentum Indicator
BlueWave = linreg(close - avg(avg(highest(high, 20), lowest(low, 20)), sma(close, 20)), 20, 0)

// Replicated version of Crypto Face's MFI Indicator
mfiUpper = sum(volume * (change(hlc3) <= 0 ? 0 : hlc3), 58)
mfiLower = sum(volume * (change(hlc3) >= 0 ? 0 : hlc3), 58)
_mfiRsi(mfiUpper, mfiLower) =>
    if mfiLower == 0
        100
    if mfiUpper == 0
        0
	100.0 - (100.0 / (1.0 + mfiUpper / mfiLower))

mf = _mfiRsi(mfiUpper, mfiLower)
mfi = (mf - 50) * 3


//// Strategy
// Creating Long and Short Strategy
buy_signal = crossover(BlueWave, 0) and mfi > 0 
sell_signal = crossunder(BlueWave, 0) and mfi < 0 

// Long Strategy
if buy_signal and in_date_range and enable_long_strategy == true
    strategy.entry("Long", true, when=buy_signal, alert_message="Open Long Position")
    strategy.exit("Long  SL/TP", from_entry="Long", loss=long_stoploss_percentage, profit=long_takeprofit_percentage, alert_message="Your Long SL/TP Limit As Been Triggered.")
    strategy.close("Long", when=sell_signal, alert_message="Close Long Position")

// Short Strategy
if sell_signal and in_date_range and enable_short_strategy == true
    strategy.entry("Short", false, when = sell_signal, alert_message="Open Short Position")
    strategy.exit("Short SL/TP", from_entry="Short", loss=short_stoploss_percentage, profit=short_takeprofit_percentage, alert_message="Your Short SL/TP Limit As Been Triggered.")
    strategy.close("Short", when=buy_signal, alert_message="Close Short Position")