Handelsstrategie mit hoher Wahrscheinlichkeit für einen Durchbruch auf der Grundlage von Druckbilanz

Schriftsteller:ChaoZhang, Datum: 2023-11-13 11:40:53
Tags:

img

Übersicht

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.

Strategie Logik

  1. Ein größerer EMA-Wert zeigt einen Aufwärtstrend an, während ein kleiner EMA-Wert einen Abwärtstrend anzeigt.

  2. 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.

  3. 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.

  4. Wenn die Beurteilungen der drei Indikatoren konsistent sind, stellt dies einen klaren Trend dar, der den Einstieg in den Handel ermöglicht.

  5. Eintritt in Trades basierend auf Kauf- und Verkaufskriterien und setzt Stop-Loss- und Take-Profit-Punkte ein.

  6. Spezifische Regeln sind:

    • Kaufbedingung: nicht im Aufwärtstrend, MACD-Histogramm < 0, Schlusskurs > EMA
    • Verkaufszustand: Aufwärtstrend, MACD-Histogramm > 0, Schlusskurs < EMA
    • Stop-Loss-Bedingung: Preis erreicht den nächsten PSAR-Wert
    • Gewinnspielbedingungen: Erreichung der vorgegebenen Gewinnspielquote

Vorteile der Strategie

  1. Die Verwendung mehrerer Indikatoren zur Bestimmung des Trends verbessert die Genauigkeit.

  2. Die Eröffnung von Geschäften auf der Grundlage bestimmter Trends, die durch die Druckbilanz ermittelt werden, erhöht die Gewinnrate.

  3. Die Einstellung von Stop-Loss und Take-Profit kann Verluste begrenzen und Gewinne sichern.

  4. Durch klare und systematische Handelsregeln ist es für den Algorithmenhandel geeignet.

  5. Die Parameter können an unterschiedliche Produkte und Zeitrahmen angepasst werden.

Risiken der Strategie

  1. Die Trendbeurteilung kann falsch sein, was zu einer falschen Handelsrichtung führt.

  2. Extreme Marktbewegungen können falsche Signale aus den Indikatoren erzeugen.

  3. Der Stop-Loss ist zu groß und kann nicht rechtzeitig aussteigen.

  4. Eine unsachgemäße Einstellung der Parameter führt zu Überhandelungen oder fehlenden Trades.

  5. Unliquide Produkte können keine Stop-Loss- und Take-Profit-Pläne erfüllen.

  6. Die Risiken können durch Optimierung der Parameter, Anpassung der Stopps und Auswahl flüssiger Produkte verringert werden.

Optimierungsrichtlinien

  1. Anpassung der EMA-Periode zur Optimierung der Trendgenauigkeit.

  2. MACD-Schnell- und langsame Perioden einstellen, um die Empfindlichkeit zu verbessern.

  3. Optimieren Sie die Stop-Loss- und Gewinnquoten, um das ideale Gleichgewicht zu finden.

  4. Hinzufügen anderer Hilfsindikatoren zur Verbesserung der Eintrittszeit.

  5. Wählen Sie Produkte mit guter Liquidität und großen Schwankungen aus.

  6. Zeiträume an die verschiedenen Produktmerkmale anpassen.

Zusammenfassung

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')

	

Mehr