Strategi Jangka Panjang Golden Cross EMA Berganda


Tarikh penciptaan: 2024-02-23 12:17:40 Akhirnya diubah suai: 2024-02-23 12:17:40
Salin: 0 Bilangan klik: 656
1
fokus pada
1617
Pengikut

Strategi Jangka Panjang Golden Cross EMA Berganda

Gambaran keseluruhan

Strategi EMA Gold Cross Double Long Line adalah strategi trend-tracking yang hanya membuka beberapa kedudukan. Strategi ini menggunakan tiga purata bergerak EMA jangka pendek, EMA jangka menengah dan EMA jangka panjang pada masa yang sama.

Prinsip Strategi

  1. Tiga kitaran EMA boleh dikonfigurasikan untuk mengira EMA jangka pendek, EMA jangka menengah dan EMA jangka panjang.

  2. Jika harga lebih tinggi daripada EMA jangka panjang, ia membuktikan bahawa ia berada dalam trend berbilang arah.

  3. Sekiranya EMA jangka pendek melintasi EMA pertengahan dari bawah, membentuk persilangan emas, maka ia akan mengesahkan peningkatan trend berbilang arah.

  4. Apabila kedua-dua syarat di atas dipenuhi, anda boleh membuat lebih banyak.

Analisis kelebihan

Kelebihan terbesar strategi ini adalah keupayaan untuk mengenal pasti trend dengan berkesan, menggunakan penghakiman gabungan EMA pelbagai kitaran, dan mengelakkan diri dari gangguan pasaran jangka pendek. Pada masa yang sama, konfigurasi stop loss sebagai alat kawalan risiko, dapat mengawal kerugian dalam jangkaan tertentu.

Analisis risiko

Risiko utama strategi ini adalah kedudukan berlainan. Tidak dapat menutup kedudukan tepat pada masanya apabila pasaran berbalik, menyebabkan risiko kerugian yang meningkat. Selain itu, tetapan kitaran EMAS yang tidak betul juga boleh menyebabkan perdagangan yang kerap, meningkatkan kos perdagangan.

Arah pengoptimuman

  1. Meningkatkan pengurusan kuantiti kedudukan dan menurunkan kedudukan apabila penarikan balik mencapai peratusan tertentu.

  2. Tambah seting baru yang lebih tinggi untuk stop loss.

  3. Mengoptimumkan parameter kitaran EMAS dan mengurangkan kekerapan transaksi.

ringkaskan

Strategi ini secara keseluruhannya adalah strategi pegangan jangka panjang yang stabil dan berkualiti. Ia mempunyai keupayaan untuk mengenal pasti trend yang kuat, dan risiko terkawal. Dengan pengoptimuman lanjut, ia dijangka memperoleh keuntungan yang lebih baik dan stabil.

Kod sumber strategi
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Strategia EMA Long con Opzioni di Uscita Avanzate e Periodi EMA Personalizzabili", overlay=true)

// Parametri di input generali
useVolatilityFilter = input.bool(true, title="Usa Filtro di Volatilità")
atrPeriods = input.int(14, title="Periodi ATR", minval=1)
atrMultiplier = input.float(1.5, title="Moltiplicatore ATR", step=0.1)
useTrailingStop = input.bool(true, title="Usa Trailing Stop")
trailingStopPercent = input.float(15.0, title="Percentuale Trailing Stop", minval=0.1, step=0.1) / 100.0
useEMAExit = input.bool(true, title="Usa Uscita EMA Corta incrocia EMA Media al Ribasso")

// Parametri di input per periodi EMA personalizzabili
emaLongTermPeriod = input.int(200, title="Periodo EMA Lungo Termine", minval=1)
emaShortTermPeriod = input.int(5, title="Periodo EMA Breve Termine", minval=1)
emaMidTermPeriod = input.int(10, title="Periodo EMA Medio Termine", minval=1)

// Calcolo delle EMA con periodi personalizzabili
longTermEMA = ta.ema(close, emaLongTermPeriod)
shortTermEMA = ta.ema(close, emaShortTermPeriod)
midTermEMA = ta.ema(close, emaMidTermPeriod)

// Calcolo ATR e soglia di volatilità
atr = ta.atr(atrPeriods)
atrThreshold = ta.sma(atr, atrPeriods) * atrMultiplier

// Condizione di entrata
enterLongCondition = close > longTermEMA and shortTermEMA > midTermEMA
enterLong = useVolatilityFilter ? (enterLongCondition and atr > atrThreshold) : enterLongCondition

if (enterLong)
    strategy.entry("Enter Long", strategy.long)

// Tracking del prezzo di entrata e del massimo prezzo raggiunto per il trailing stop
var float entryPrice = na
var float maxPriceSinceEntry = na
if (strategy.position_size > 0)
    maxPriceSinceEntry := math.max(na(maxPriceSinceEntry) ? high : maxPriceSinceEntry, high)
    entryPrice := na(entryPrice) ? strategy.position_avg_price : entryPrice
else
    maxPriceSinceEntry := na
    entryPrice := na

// Calcolo del valore del trailing stop
trailStopPrice = maxPriceSinceEntry * (1 - trailingStopPercent)

// Implementazione delle condizioni di uscita
exitCrossUnder = close < longTermEMA
emaCross = ta.crossunder(shortTermEMA, midTermEMA)

if (useEMAExit and emaCross)
    strategy.close("Enter Long", comment="EMA Cross Exit")

if (useTrailingStop)
    strategy.exit("Trailing Stop", from_entry="Enter Long", stop=trailStopPrice)

// Visualizzazioni
plot(longTermEMA, color=color.yellow, title="EMA Lungo Termine")
plot(shortTermEMA, color=color.blue, title="EMA Breve Termine")
plot(midTermEMA, color=color.green, title="EMA Medio Termine")
plot(useVolatilityFilter ? atrThreshold : na, color=color.purple, title="ATR Threshold")
plot(strategy.position_size > 0 ? trailStopPrice : na, color=color.orange, title="Trailing Stop Value", style=plot.style_linebr)