Duale stochastische MACD-Handelsstrategie


Erstellungsdatum: 2023-09-22 16:55:55 zuletzt geändert: 2023-09-22 16:55:55
Kopie: 0 Klicks: 806
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Die Strategie kombiniert die Doppel-MACD-Indikator und die Zufalls-Indikator StochRSI, um die Handelssignale zu beurteilen. Die Doppel-MACD verwendet verschiedene Parameter-Einstellungen, um die schnelle und langsame Wirkung zu erzielen, und StochRSI wird für die Bestätigung der starken Rückseite verwendet. Die Strategie enthält auch Trendbeurteilung und Stop-Loss-Risiko.

Strategieprinzip

Die Strategie basiert auf folgenden Kennzahlen:

  • Doppel-MACD: Schnell-MACD verwendet kurz- und langzeitige Parameter, um unterschiedliche Glatteffekte zu erzielen.

  • StochRSI: Berechnet die höchsten und niedrigsten Werte des RSI in einem bestimmten Zeitraum, um zu beurteilen, ob der RSI überkauft oder überverkauft ist.

Das sind die Regeln, nach denen Sie Ihre Handelssignale beurteilen können:

  • Der StochRSI ist im Überverkauf und auf der K-Linie durch die D-Linie und im Aufwärtstrend.

  • Leerstellung: Schneller MACD unterhalb der Null-Achse und langsamer MACD unterhalb der Null-Achse, StochRSI ist überkauft und unterhalb der K-Linie unterhalb der D-Linie und im Abwärtstrend.

Strategische Vorteile

  • Die doppelte MACD-Verifizierung verhindert falsche Durchbrüche und verbessert die Signalqualität.

  • Der StochRSI beurteilt die Situation als überkauft und vermeidet die Verfolgung von Absenkungen.

  • Das ist eine sehr gute Idee, aber es ist nicht einfach, es zu tun.

  • Mehrfache Zeitrahmen-Verifizierung der Indikatoren zur Verbesserung der Signalwirksamkeit.

  • Setzen Sie die Stop-Loss-Bedingungen für Risikokontrollen.

Risikoanalyse

  • Der MACD ist anfällig für falsche Signale und muss weiter gefiltert werden.

  • Wenn StochRSI-Parameter falsch eingestellt sind, kann es zu verpassten Handelschancen kommen.

  • Die Stop-Loss-Einstellungen sind unvernünftig und können zu konservativ oder radikal sein.

  • Es fehlt eine Strategie für die Lagermanagement und es gibt keine dynamische Stop-Loss.

Die Optimierung erfolgt in folgenden Bereichen:

  1. Filterbedingungen wie erhöhte Transaktionsmengen oder Durchschnittswinkel.

  2. Optimierung der StochRSI-Parameter oder Einführung anderer Zufallsindikatoren.

  3. Dynamische Anpassung der Stop-Loss-Punkte, Verfolgung von Stop-Losses.

  4. Ein Positionsmanagement-Modul wurde hinzugefügt, um die Positionen dynamisch an die Strategie anzupassen.

Richtung der Strategieoptimierung

Die wichtigsten Optimierungsbereiche der Strategie sind:

  1. Optimierung der Indikatorparameter und Verbesserung der Indikatorwirkung.

  2. Das ist eine neue Art von Filterung.

  3. Optimierung der Stop-Loss-Strategie und dynamische Stop-Loss.

  4. Einführung von Positionsverwaltung, um die Positionen entsprechend der Effektivität der Strategie anzupassen.

  5. Das Programm wurde von der Universität von San Francisco, der Universität von New York, der Universität von San Francisco, der Universität von San Francisco, der Universität von New York, der Universität von New York, der Universität von New York, der Universität von New York, der Universität von New York, der Universität von New York, der Universität von New York entwickelt.

Zusammenfassen

Die Strategie berücksichtigt mehrere Indikatoren und bildet ein stärkeres Handelssignal. Es ist jedoch erforderlich, die Parameter einzustellen, die Signale weiter zu filtern und die Dynamik zu stoppen, um unnötige Geschäfte zu reduzieren und die Gewinnwahrscheinlichkeit zu erhöhen.

Strategiequellcode
/*backtest
start: 2023-09-14 00:00:00
end: 2023-09-21 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2



//This strategy is an ongoing work in progress. Last updated 8/6/16.
//Feel free to modify it as you see fit, if you do borrow code then send me a link so I 
//can see and maybe borrow some of your code to improve this.
//Thanks to ChrisMoody who I stole the code for setting custom resolution from.
//
//more info in comments at end of script





strategy("MACDouble & StochRSI w/ safeties v0.3", overlay=true)

source = close
useCurrentRes = input(true, title="Uncheck to use custom res./intrv. for 2nd MACD indicator")
resCustom = input(title="Resolution/interval to use for 2nd MACD:",  defval="45")
res = useCurrentRes ? timeframe.period : resCustom

useCurrentRes2 = input(true, title="Uncheck to use custom res/intrv for StochRSI")
resCustom2 = input(title="Resolution to use for StochRSI indicator:",  defval="45")
res2 = useCurrentRes2 ? timeframe.period : resCustom2


//MACD1
fastLength = input(10, title="MACD fast length")
slowlength = input(21, title="MACD slow length")
sigLength = input(9, title="MACD signal length")

MACD = ema(source, fastLength) - ema(source, slowlength)
signal = sma(MACD, sigLength)
delta = MACD - signal



//MACD2
fastLength2 = input(31, title= "2nd MACD fast length")
slowlength2 = input(63, title= "2nd MACD slow length")
sigLength2 = input(30, title= "2nd MACD signal length")

MACD2 = ema(source, fastLength2) - ema(source, slowlength2)
signal2 = sma(MACD2, sigLength2)
delta2 = MACD2 - signal2

MACDRes = security(syminfo.tickerid, res, MACD2)
signalRes = security(syminfo.tickerid,res, signal2)
deltaRes = security(syminfo.tickerid, res, delta2)


uptrend = (close + high)/(close[1] + high[2])
downtrend = (close + low)/(close[1] + low[2])

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(11, minval=1)
lengthStoch = input(11, minval=1)
src = close

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
RSI_buyTrig = input(90)
RSI_sellTrig = input(20)

kRes = security(syminfo.tickerid, res2, k)
dRes = security(syminfo.tickerid, res2, d)


if (delta > 0) and (year>2012) and (deltaRes > 0) and (uptrend > 1) and (  kRes and dRes < RSI_buyTrig) and (kRes > dRes)
    strategy.entry("buy", strategy.long, comment="buy")
    

if (delta < 0) and (year>2012) and (deltaRes < 0) and (downtrend < 1) and ( kRes and dRes > RSI_sellTrig) and (kRes < dRes)
    strategy.entry("sell", strategy.short, comment="sell")
	strategy.exit("sell", loss = 9000)



//  RELEASE NOTES, ETC
//
// The core starting idea for this backtesting script came from the desire to have two traditional
//MACD indicators: one 'fast' and one 'slow'. The slow one is to pretty much smooth out noisy signals
//so that short term changes in price are ignored (ideally). 
//	A brief version history
//		v0.1 - Basic two MACD indicators script
//      v0.2 - Added StochRSI indicator
//      v0.21- Added primitive uptrend/downtrend safety condition 
//      v0.22- Added changable time resolution for MACDslow
//      v0.23- Added exit safeties conditional on loss threshold   
//      v0.3 - Added changeable resolution for StochRSI
//	Future changes planned for next release:
//		-Fine tuning exit safeties
//      -Major overhaul of trade logic/triggers (may be forked as a different script)
//
//I am more than happy to discuss any difficulties you are having, questions about the script, or improvement suggestions.
//I am not a coder and my background is actually in economics, so feel free to debug ;)
//Feel free to tip me on the indcluded bitcoin address on TV as well
// tradingview.com/u/RyanMartin 
// [email protected]