Sumber dimuat naik... memuat...

Triple Moving Average Trend Following and Momentum Integration Strategi Dagangan Kuantitatif

Penulis:ChaoZhang, Tarikh: 2024-11-27 16:08:16
Tag:EMATEMAMACDSMA

img

Ringkasan

Ini adalah strategi perdagangan kuantitatif yang menggabungkan trend berikut dan analisis momentum. Strategi ini menggunakan Triple Exponential Moving Average (TEMA), pelbagai crossover purata bergerak, dan varian MACD untuk mengenal pasti trend pasaran dan titik masuk.

Prinsip Strategi

Strategi ini menentukan isyarat dagangan melalui tiga sistem penunjuk teknikal teras:

  1. Sistem Triple Exponential Moving Average (TEMA) mengesahkan arah trend keseluruhan. Ia mengira tiga lapisan EMA dan menggabungkan perubahan dinamik mereka untuk menilai kekuatan trend.
  2. Sistem persilangan MA pantas / perlahan menggunakan EMA 9 tempoh dan 15 tempoh untuk menangkap titik pembalikan trend jangka sederhana.
  3. Persalinan harga dengan EMA 5 tempoh berfungsi sebagai isyarat pengesahan akhir untuk masa kemasukan yang tepat.

Isyarat perdagangan diaktifkan apabila semua syarat dipenuhi:

  • MACD melintasi di atas garis isyarat dengan trend menaik TEMA
  • EMA jangka pendek melintasi EMA jangka panjang
  • Harga melintasi EMA lima tempoh

Kelebihan Strategi

  1. Mekanisme pengesahan berbilang sangat mengurangkan isyarat palsu dan meningkatkan ketepatan perdagangan.
  2. Menggabungkan faedah trend berikut dan analisis momentum untuk menangkap kedua-dua trend utama dan peluang jangka pendek.
  3. Melaksanakan mekanisme stop-loss yang komprehensif termasuk berhenti tetap dan berhenti dinamik untuk kawalan risiko yang berkesan.
  4. Kebolehsesuaian parameter yang tinggi untuk persekitaran pasaran yang berbeza.
  5. Logik kemasukan yang jelas yang mudah difahami dan dilaksanakan.

Risiko Strategi

  1. Keperluan pengesahan berganda boleh membawa kepada penyerahan yang tertunda, peluang yang hilang di pasaran yang bergerak cepat.
  2. Titik stop-loss tetap perlu diselaraskan untuk turun naik pasaran yang berbeza untuk mengelakkan keluar awal.
  3. Boleh menghasilkan isyarat palsu yang kerap di pasaran yang bergelora.
  4. Penghentian penghantaran mungkin keluar dari trend kualiti terlalu awal semasa turun naik pasaran yang teruk.

Arahan pengoptimuman

  1. Memperkenalkan penunjuk turun naik untuk pelarasan dinamik berhenti dan sasaran keuntungan untuk lebih sesuai dengan keadaan pasaran.
  2. Tambah penunjuk jumlah sebagai pengesahan tambahan untuk meningkatkan kebolehpercayaan isyarat.
  3. Melaksanakan pengiktirafan persekitaran pasaran untuk kombinasi parameter yang berbeza dalam pelbagai keadaan pasaran.
  4. Membangunkan mekanisme pembinaan kedudukan yang bertentangan dengan trend untuk pengumpulan sederhana semasa penurunan.
  5. Mengoptimumkan algoritma trailing stop untuk penyesuaian yang lebih baik kepada turun naik pasaran.

Ringkasan

Strategi ini membina sistem perdagangan yang kukuh dengan mengintegrasikan pelbagai sistem penunjuk teknikal. Kekuatannya utama terletak pada pelbagai mekanisme pengesahan dan sistem kawalan risiko yang komprehensif. Walaupun terdapat risiko kelewatan tertentu, strategi ini mempunyai potensi peningkatan yang signifikan melalui pengoptimuman parameter dan pengembangan fungsional. Sesuai untuk peniaga yang mencari pulangan yang stabil.


/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ITG Scalper Strategy", shorttitle="lokesh_ITG_Scalper_Strategy", overlay=true)

// General inputs
len = input(14, title="TEMA period")
FfastLength = input.int(13, title="Filter fast length")
FslowLength = input.int(18, title="Filter slow length")
FsignalLength = input.int(14, title="Filter signal length")
sl_points = 7 // 5 points stop loss
tp_points = 100 // 100 points target profit
trail_points = 15 // Trailing stop loss every 10 points

// Validate input
if FfastLength < 1
    FfastLength := 1
if FslowLength < 1
    FslowLength := 1
if FsignalLength < 1
    FsignalLength := 1

// Get real close price
realC = close

// Triple EMA definition
ema1 = ta.ema(realC, len)
ema2 = ta.ema(ema1, len)
ema3 = ta.ema(ema2, len)

// Triple EMA trend calculation
avg = 3 * (ema1 - ema2) + ema3

// Filter formula
Fsource = close
FfastMA = ta.ema(Fsource, FfastLength)
FslowMA = ta.ema(Fsource, FslowLength)
Fmacd = FfastMA - FslowMA
Fsignal = ta.sma(Fmacd, FsignalLength)

// Plot EMAs for visual reference
shortema = ta.ema(close, 9)
longema = ta.ema(close, 15)
yma = ta.ema(close, 5)
plot(shortema, color=color.green)
plot(longema, color=color.red)
plot(yma, color=#e9f72c)

// Entry conditions
firstCrossover = ta.crossover(Fmacd, Fsignal) and avg > avg[1]
secondCrossover = ta.crossover(shortema, longema)  // Assuming you meant to cross shortema with longema
thirdCrossover = ta.crossover(close, yma)

var bool entryConditionMet = false

if (firstCrossover)
    entryConditionMet := true

longSignal = entryConditionMet and secondCrossover and thirdCrossover

// Strategy execution
if (longSignal)
    strategy.entry("Long", strategy.long)
    entryConditionMet := false  // Reset the entry condition after taking a trade

// Calculate stop loss and take profit prices
var float long_sl = na
var float long_tp = na

if strategy.position_size > 0  // Long position
    long_sl := close - sl_points
    long_tp := close + tp_points
    
    // Adjust stop loss with trailing logic
    if (close - long_sl > trail_points)
        long_sl := close - trail_points
        
    strategy.exit("Exit Long", "Long", stop=long_sl, limit=long_tp)

// Plotting Buy signals
plotshape(series=longSignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")

// Alerts
alertcondition(longSignal, title="Buy Signal", message="Buy Signal")


Berkaitan

Lebih lanjut