Diese Strategie verwendet eine Kombination aus mehreren Indikatoren, um die Trendrichtung und Handelschancen zu bestimmen, und nimmt einen Druckbilanzansatz an, um die Gewinnrate von Trades zu erhöhen.
Ein größerer EMA-Wert zeigt einen Aufwärtstrend an, während ein kleiner EMA-Wert einen Abwärtstrend anzeigt.
Verwenden Sie MACD, um den Unterschied zwischen schnellen und langsamen gleitenden Durchschnitten zu berechnen. Wenn der Unterschied größer als 0 ist, zeigt er einen Aufwärtstrend an, wenn er kleiner als 0 ist, zeigt er einen Abwärtstrend an.
Verwenden Sie PSAR zur Berechnung des kontinuierlichen Variablen Punktes. Wenn der PSAR-Wert groß ist, zeigt er einen Abwärtstrend an, wenn der PSAR-Wert klein ist, zeigt er einen Aufwärtstrend an.
Wenn die Beurteilungen der drei Indikatoren konsistent sind, stellt dies einen klaren Trend dar, der den Einstieg in den Handel ermöglicht.
Eintritt in Trades basierend auf Kauf- und Verkaufskriterien und setzt Stop-Loss- und Take-Profit-Punkte ein.
Spezifische Regeln sind:
Die Verwendung mehrerer Indikatoren zur Bestimmung des Trends verbessert die Genauigkeit.
Die Eröffnung von Geschäften auf der Grundlage bestimmter Trends, die durch die Druckbilanz ermittelt werden, erhöht die Gewinnrate.
Die Einstellung von Stop-Loss und Take-Profit kann Verluste begrenzen und Gewinne sichern.
Durch klare und systematische Handelsregeln ist es für den Algorithmenhandel geeignet.
Die Parameter können an unterschiedliche Produkte und Zeitrahmen angepasst werden.
Die Trendbeurteilung kann falsch sein, was zu einer falschen Handelsrichtung führt.
Extreme Marktbewegungen können falsche Signale aus den Indikatoren erzeugen.
Der Stop-Loss ist zu groß und kann nicht rechtzeitig aussteigen.
Eine unsachgemäße Einstellung der Parameter führt zu Überhandelungen oder fehlenden Trades.
Unliquide Produkte können keine Stop-Loss- und Take-Profit-Pläne erfüllen.
Die Risiken können durch Optimierung der Parameter, Anpassung der Stopps und Auswahl flüssiger Produkte verringert werden.
Anpassung der EMA-Periode zur Optimierung der Trendgenauigkeit.
MACD-Schnell- und langsame Perioden einstellen, um die Empfindlichkeit zu verbessern.
Optimieren Sie die Stop-Loss- und Gewinnquoten, um das ideale Gleichgewicht zu finden.
Hinzufügen anderer Hilfsindikatoren zur Verbesserung der Eintrittszeit.
Wählen Sie Produkte mit guter Liquidität und großen Schwankungen aus.
Zeiträume an die verschiedenen Produktmerkmale anpassen.
Diese Strategie integriert mehrere Indikatoren für die Trendanalyse und tritt auf Basis bestimmter Trends in Trades ein, mit voreingestellten Stop-Loss und Take-Profit, die Marktbewegungen effektiv erfassen und gute Renditen erzielen können und gleichzeitig eine gewisse Rentabilität gewährleisten. Weitere Verbesserungen der Stabilität und Rentabilität können durch Parameter-Tuning und zusätzliche Indikatoren erzielt werden. Die klaren Handelsregeln machen diese Strategie sehr geeignet für den algorithmischen Handel.
/*backtest start: 2023-10-13 00:00:00 end: 2023-11-12 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © exlux99 //@version=4 strategy(title = "Crypto Scalper", overlay = true, pyramiding=1,initial_capital = 100, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.03) len = input(60, minval=1, title="Length EMA") src = input(close, title="Source") out = ema(src, len) // fast_length = input(title="Fast Length MACD", type=input.integer, defval=12) slow_length = input(title="Slow Length MACD", type=input.integer, defval=26) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) sma_source = input(title="Oscillator MA Type MACD", type=input.string, defval="EMA", options=["SMA", "EMA"]) sma_signal = input(title="Signal Line MA Type MACD", type=input.string, defval="EMA", options=["SMA", "EMA"]) // Calculating fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal start = input(0.02) increment = input(0.02) maximum = input(0.2) var bool uptrend = na var float EP = na var float SAR = na var float AF = start var float nextBarSAR = na if bar_index > 0 firstTrendBar = false SAR := nextBarSAR if bar_index == 1 float prevSAR = na float prevEP = na lowPrev = low[1] highPrev = high[1] closeCur = close closePrev = close[1] if closeCur > closePrev uptrend := true EP := high prevSAR := lowPrev prevEP := high else uptrend := false EP := low prevSAR := highPrev prevEP := low firstTrendBar := true SAR := prevSAR + start * (prevEP - prevSAR) if uptrend if SAR > low firstTrendBar := true uptrend := false SAR := max(EP, high) EP := low AF := start else if SAR < high firstTrendBar := true uptrend := true SAR := min(EP, low) EP := high AF := start if not firstTrendBar if uptrend if high > EP EP := high AF := min(AF + increment, maximum) else if low < EP EP := low AF := min(AF + increment, maximum) if uptrend SAR := min(SAR, low[1]) if bar_index > 1 SAR := min(SAR, low[2]) else SAR := max(SAR, high[1]) if bar_index > 1 SAR := max(SAR, high[2]) nextBarSAR := SAR + AF * (EP - SAR) tplong=input(0.245, step=0.005) sllong=input(1.0, step=0.005) tpshort=input(0.055, step=0.005) slshort=input(0.03, step=0.005) if (uptrend and hist >0 and close < out) strategy.entry("short", strategy.short, stop=nextBarSAR, comment="short") strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT', alert_message = 'closeshort') if (not uptrend and hist <0 and close > out) strategy.entry("long", strategy.long, stop=nextBarSAR, comment="long") strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT', alert_message = 'closelong')