Trendverfolgungsstrategie basierend auf der Integration mehrerer Indikatoren


Erstellungsdatum: 2023-09-13 17:16:51 zuletzt geändert: 2023-09-13 17:16:51
Kopie: 1 Klicks: 459
1
konzentrieren Sie sich auf
1234
Anhänger

Diese Strategie wird als Trend-Tracking-Strategie basierend auf der Integration von mehreren Indikatoren bezeichnet. Die Strategie integriert die Verwendung von drei Indikatoren RSI, ADX und MACD, um nach Bestätigung eines Aufwärtstrends zu handeln und nach Bestätigung eines Abwärtstrends zu handeln.

Der RSI-Indikator beurteilt Überkauf und Überverkauf. Wenn der RSI über 30 liegt, ist der Überverkauf beendet, und es wird überlegt, ob man mehr macht. Wenn der RSI unter 70 liegt, ist der Überkauf beendet, und es wird überholt.

Der ADX-Indikator beurteilt die Trendstärke. Wenn der ADX-Wert 25 überschreitet, bedeutet dies, dass er in einen Trend eingestiegen ist. Wenn er 25 überschreitet, bedeutet dies, dass der Trend beendet ist.

Der MACD-Indikator beurteilt die kurzfristige Tendenz. DIFF über DEA bedeutet Kurzstrecke aufwärts, mehr zu berücksichtigen.

Wenn der RSI, der ADX und der MACD gleichzeitig mehrköpfige Signale zeigen, wird ein Plus gemacht. Wenn der Drei-Indikator den Ende des mehrköpfigen Trends zeigt, wird eine Off-Position ausgeführt.

Der Vorteil dieser Strategie liegt in der Mehrfachaussage, die eine wirksame Verhinderung von Falschsignalen ermöglicht. Die Kennzahlenparameter müssen jedoch separat optimiert werden, und eine Stop-Loss-Strategie ist unerlässlich.

Insgesamt verbessert die Anwendung von Indikatoren die Entscheidungswirksamkeit, aber der Händler muss dennoch seine Urteilsfähigkeit bewahren, seine Strategieparameter an die tatsächlichen Umstände anpassen und überprüfen.

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

// RSI
//@version=3
// strategy("Femi Strategy", overlay=true)
strategy("Femi Strategy", overlay=false)
RSIlength = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
price = close

vrsi = rsi(price, RSIlength)



//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)





// ADX

//@version=3
adxlen = input(14)
dilen = input(14)
adxThreshold = input( 25 )
dirmov(len) =>
	up = change(high)
	down = -change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]

adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)

sig = adx(dilen, adxlen)


// MACD
//@version=3
MACDZero = input(0)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD



source = close
length = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50)

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev

if (not na(vrsi))
    if (crossover(delta, MACDZero))
        strategy.entry("FEMIMACDLE", strategy.long, comment="FEMIMACDLE")
    else
        strategy.cancel(id="FEMIMACDLE")
        
    
    if (crossunder(vrsi, overSold))
        strategy.entry("FEMIRSILE", strategy.long, comment="FEMIRSILE")
    else
        strategy.cancel(id="FEMIRSILE")
        
        
    // if(crossover(sig, adxThreshold)) // crossover(sig, adxThreshold) crossover(delta, MACDZero) crossunder(vrsi, overSold)
    //     strategy.entry("FEMIADXLE", strategy.long, comment="FEMIADXLE")
    // else
    //     strategy.cancel(id="FEMIADXLE")
        
        
    // if (crossover(source, lower))
    //     strategy.entry("FEMIBBLE", strategy.long, comment="FEMIBBLE")
    // else
    //     strategy.cancel(id="FEMIBBLE")
        
    // if(crossunder(sig, adxThreshold))
        // strategy.cancel(id="FEMILE")
        // strategy.exit(id="FEMILE")
        
    // if (crossunder(delta, MACDZero))
        // strategy.entry("FEMIMACDSE", strategy.short, comment="FEMIMACDSE")
    if (crossover(vrsi, overBought))
        // strategy.entry("FEMIRSISE", strategy.short, comment="FEMIRSISE")
        strategy.close("FEMIRSILE")
        strategy.close("FEMIMACDLE")
        strategy.close("FEMIADXLE")
        strategy.close("FEMIBBLE")
    
    if (crossunder(sig, adxThreshold) and crossunder(delta, MACDZero) and crossunder(source, upper)) // crossover(delta, MACDZero) crossover(vrsi, overSold) crossover(sig, adxThreshold)
        strategy.close("FEMIRSILE")
        strategy.close("FEMIMACDLE")
        strategy.close("FEMIADXLE")
        strategy.close("FEMIBBLE")
        
    // if(crossunder(source, upper))
    //     strategy.close("FEMIRSILE")
    //     strategy.close("FEMIMACDLE")
    //     strategy.close("FEMIADXLE")
    //     strategy.close("FEMIBBLE")
        // strategy.entry("FEMIADXSE", strategy.short, comment="FEMIADXSE")
    // else
    //     strategy.cancel(id="FEMISE")

// plot(sig, color=red, title="ADX", linewidth=2, style=areabr)
// plot(adxThreshold, color=blue, title="ADX")


// plot(vrsi, color=green, title="RSI", linewidth=2, style=areabr)
// plot(overSold, color=blue, title="RSI")
// plot(overBought, color=red, title="RSI")

// plot(delta, color=green, title="MACD", linewidth=2, style=areabr)
// plot(MACDZero, color=blue, title="MACD")
// plot(overBought, color=red, title="MACD")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)