Strategi Garis Panjang EMA GOLDEN CROSS

Penulis:ChaoZhang, Tarikh: 2024-02-23 12:17:40
Tag:

img

Ringkasan

Strategi EMA GOLDEN CROSS LONG LINE adalah strategi pengesanan trend yang hanya membuka kedudukan panjang. Strategi ini menggunakan tiga purata bergerak, EMA jangka pendek, EMA jangka sederhana dan EMA jangka panjang. Peraturan kemasukan khusus adalah: buka panjang apabila harga di atas EMA jangka panjang dan EMA jangka pendek melintasi di atas EMA jangka sederhana untuk membentuk salib emas.

Logika Strategi

  1. Mengira EMA jangka pendek, EMA jangka sederhana dan EMA jangka panjang menggunakan tiga tempoh EMA yang boleh dikonfigurasi.

  2. Jika harga berada di atas EMA jangka panjang, ia membuktikan bahawa ia kini berada dalam trend menaik.

  3. Jika EMA jangka pendek melintasi di atas EMA jangka sederhana dari bawah untuk membentuk salib emas, ia juga membuktikan bahawa trend menaik semakin kuat.

  4. Apabila kedua-dua syarat di atas dipenuhi pada masa yang sama, buka panjang.

Analisis Kelebihan

Kelebihan terbesar strategi ini ialah ia dapat mengenal pasti trend dengan berkesan dengan menggunakan penilaian gabungan EMA pelbagai tempoh untuk mengelakkan tertipu oleh bunyi pasaran jangka pendek. Pada masa yang sama, stop loss dikonfigurasikan sebagai cara kawalan risiko untuk mengekalkan kerugian dalam julat tertentu.

Analisis Risiko

Risiko utama strategi ini adalah kedudukan panjang. Apabila pasaran berbalik, ia tidak dapat menutup kedudukan tepat pada masanya, yang membawa kepada risiko kerugian yang berkembang. Di samping itu, penetapan tempoh EMA yang tidak betul juga boleh menyebabkan perdagangan yang kerap dan meningkatkan kos transaksi.

Arah pengoptimuman

  1. Meningkatkan pengurusan saiz kedudukan untuk mengurangkan kedudukan apabila pengeluaran mencapai peratusan tertentu.

  2. Tingkatkan tetapan stop loss apabila memecahkan paras tertinggi baru.

  3. Mengoptimumkan parameter tempoh EMA untuk mengurangkan kekerapan dagangan.

Ringkasan

Strategi ini secara keseluruhan adalah strategi pegangan jangka panjang yang berkualiti tinggi yang stabil. Ia mempunyai keupayaan yang kuat untuk mengenal pasti trend dengan kawalan risiko yang betul. Dengan pengoptimuman lanjut, ia dijangka memperoleh pulangan yang lebih stabil.


/*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)

Lebih lanjut