Diese Strategie basiert auf den Prinzipien des goldenen Kreuzes und des Todeskreuzes einfacher gleitender Durchschnitte und trifft Kauf- und Verkaufsentscheidungen basierend auf dem Crossover von 7-Tage- und 14-Tage-gleitenden Durchschnitten. Sie erzeugt ein Kaufsignal, wenn der 7-Tage-MA von unten über den 14-Tage-MA überschreitet, und ein Verkaufssignal, wenn der 7-Tage-MA von oben unter den 14-Tage-MA überschreitet. Die Strategie verfügt auch über Stop-Loss-, Take-Profit- und Trailing-Stop-Funktionen, um Gewinne und Risiken zu kontrollieren.
Die Kern-Handelslogik dieser Strategie basiert auf den Crossover-Prinzipien der 7-Tage- und 14-Tage- gleitenden Durchschnitte. Der 7-Tage-MA spiegelt kurzfristige Preistrends wider, während der 14-Tage-MA mittelfristige Trends widerspiegelt. Wenn der kurzfristige MA von unten über den mittelfristigen MA überschreitet, signalisiert dies, dass der kurzfristige Trend stärker wird, was es zu einer guten Zeit macht, lang zu gehen. Umgekehrt signalisiert der kurzfristige MA, wenn er unter den mittelfristigen MA von oben überschreitet, dass der kurzfristige Trend schwächt, so dass man Positionen schließen oder kurz gehen sollte.
Diese Strategie berechnet speziell die 7-Tage- und 14-Tage-Simple Moving Averages mit dem SMA-Indikator. Nach jeder Candlestick-Form vergleicht sie die aktuellen Werte der 7-Tage-Linie und der 14-Tage-Linie. Wenn die 7-Tage-Linie über die 14-Tage-Linie überschreitet, wird ein Long-Signal generiert, um lang zu gehen. Wenn die 7-Tage-Linie unterhalb der 14-Tage-Linie überschreitet, wird ein Short-Signal generiert, um kurz zu gehen.
Darüber hinaus setzt die Strategie auch Stop-Loss-, Take-Profit- und Trailing-Stop-Funktionen, um Gewinne zu erzielen und Risiken zu kontrollieren.
Diese Strategie hat folgende Vorteile:
Diese Strategie birgt auch einige Risiken:
Um diesen Risiken entgegenzuwirken, können folgende Gegenmaßnahmen in Betracht gezogen werden:
Diese Strategie kann in folgenden Aspekten optimiert werden:
Zusammenfassend ist diese Strategie sehr geeignet für Anfänger zu lernen. Die Logik ist einfach und leicht zu verstehen und umzusetzen. Es hat auch eine relativ gute Marktanpassungsfähigkeit, mit ausreichend Raum für Parameteranpassung und Optimierung, um stetige Gewinne zu erzielen. Es lohnt sich für quantitative Handelsanfänger, sie zum Einstieg und Lernen zu verwenden.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m 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/ // © bensonsuntw strategy("Strategy Template[Benson]", pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100) backtest_year = input(2019, type=input.integer, title='backtest_year') backtest_month = input(01, type=input.integer, title='backtest_month', minval=1, maxval=12) backtest_day = input(01, type=input.integer, title='backtest_day', minval=1, maxval=31) start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00) stop_loss_and_tp = input(title="Enable Stop Loss and Take Profit", type=input.bool, defval=true) trail_stop = input(title="Enable Trail Stop", type=input.bool, defval=true) buy_stop_loss = input(0.2, type=input.float, title='buy_stop_loss') sell_stop_loss = input(0.1, type=input.float, title='sell_stop_loss') buy_tp = input(0.4, type=input.float, title='buy_tp') sell_tp =input(0.2, type=input.float, title='sell_tp') trail_stop_long = input(1.1, type=input.float, title='trail_stop_long') trail_stop_short = input(0.9, type=input.float, title='trail_stop_short') trail_stop_long_offset = input(0.05, type=input.float, title='trail_stop_long_offset') trail_stop_short_offset = input(0.05, type=input.float, title='trail_stop_short_offset') // you can set your own logic here shortCondition = crossunder(sma(close,7),sma(close,14)) longCondition = crossover(sma(close,7),sma(close,14)) strategy.entry("Buy", strategy.long, when=longCondition ) strategy.close("Buy", when=shortCondition) strategy.exit("Close Buy","Buy", limit= stop_loss_and_tp?strategy.position_avg_price * (1+buy_tp):na, stop = stop_loss_and_tp?strategy.position_avg_price * (1-buy_stop_loss):na,trail_price=trail_stop?strategy.position_avg_price *trail_stop_long:na,trail_offset=trail_stop?-strategy.position_avg_price *trail_stop_long_offset:na) strategy.entry("Sell", strategy.short, when=shortCondition) strategy.close("Sell", when=longCondition) strategy.exit("Close Sell","Sell", limit= stop_loss_and_tp?strategy.position_avg_price * (1-sell_tp):na, stop = stop_loss_and_tp?strategy.position_avg_price * (1+sell_stop_loss):na,trail_price=trail_stop?strategy.position_avg_price *trail_stop_short:na,trail_offset=trail_stop?strategy.position_avg_price *trail_stop_short_offset:na) net_profit = strategy.netprofit + strategy.openprofit plot(net_profit, title="Net Profit", linewidth=2, style=plot.style_area, transp=50, color=net_profit >= 0 ? #26A69A : color.red)