Strategi Dagangan Silang TEMA Berganda

Penulis:ChaoZhang, Tarikh: 2023-10-12 17:34:19
Tag:

Ringkasan

Strategi perdagangan silang TEMA berganda adalah strategi trend berikut yang biasa menggunakan dua garis TEMA (Triple Exponential Moving Average) dengan parameter yang berbeza. Ia menghasilkan isyarat panjang apabila TEMA yang lebih cepat melintasi di atas TEMA yang lebih perlahan, dan menutup kedudukan apabila TEMA yang lebih cepat melintasi di bawah TEMA yang lebih perlahan. Strategi ini dapat dengan berkesan mengesan trend harga dan memperoleh keuntungan apabila trendnya jelas.

Logika Strategi

Strategi ini menggunakan TEMA (Triple Exponential Moving Average) sebagai penunjuk teknikal utama.

TEMA = (3EMA1) - (3EMA2) + EMA3

Di mana EMA1, EMA2 dan EMA3 adalah EMA tempoh N. Dengan mengira EMA tiga kali, TEMA boleh bertindak balas dengan lebih cepat terhadap perubahan harga.

Strategi ini menggunakan TEMA jangka pendek sebagai garis pantas, dan TEMA jangka panjang sebagai garis perlahan. Apabila garis pantas melintasi di atas garis perlahan, yang menunjukkan pergerakan harga menaik, ia menghasilkan isyarat panjang. Apabila garis pantas melintasi di bawah garis perlahan, yang menunjukkan pergerakan harga menurun, ia menutup kedudukan.

Kunci strategi ini terletak pada penyesuaian parameter dan logik keadaan. Garis cepat dengan tempoh yang lebih pendek seperti 20 hari dapat menangkap dinamik harga dengan cepat, sementara garis perlahan dengan tempoh yang lebih lama seperti 60 hari dapat menapis pecah palsu. Apabila trend kenaikan atau penurunan harga yang signifikan muncul, garis cepat dapat melintasi di atas atau di bawah garis perlahan dengan cepat untuk menghasilkan isyarat perdagangan.

Analisis Kelebihan

Kelebihan strategi ini termasuk:

  1. TEMA boleh bertindak balas dengan lebih cepat terhadap perubahan harga dan menangkap pembalikan trend.

  2. Struktur TEMA berganda membantu menapis pecah palsu dan memasuki perdagangan trend yang berkemungkinan tinggi.

  3. Parameter yang boleh diselaraskan yang fleksibel untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.

  4. Logik yang mudah dan jelas, mudah difahami dan dilaksanakan, penggunaan modal yang tinggi.

  5. Keuntungan yang baik boleh diperolehi di pasaran yang sedang trend, terutamanya yang mempunyai trend yang kuat.

Analisis Risiko

Risiko strategi ini termasuk:

  1. Rendah kepada kerugian perdagangan yang kerap di pasaran yang terhad.

  2. Boleh menghasilkan isyarat palsu yang berlebihan jika parameter tidak disesuaikan dengan betul.

  3. Tidak dapat bertindak balas dengan berkesan terhadap peristiwa tiba-tiba dan pergerakan harga jangka pendek.

  4. Isyarat yang lambat mungkin kehilangan peluang jangka pendek.

  5. Risiko yang tinggi untuk membuka kedudukan terhadap perubahan yang kuat.

  6. Menghendaki pengalaman dalam optimum parameter untuk menyesuaikan diri dengan pasaran yang berubah.

Langkah pengurusan risiko:

  1. Mengoptimumkan parameter untuk mengelakkan sensitiviti berlebihan.

  2. Tambah penunjuk lain untuk menapis isyarat masuk.

  3. Gunakan stop loss untuk mengehadkan kerugian perdagangan tunggal.

  4. Mengurangkan saiz kedudukan untuk mengawal risiko.

  5. Tambah peraturan pengoptimuman parameter dan mekanisme campur tangan manual.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Mengoptimumkan parameter garis pantas dan perlahan untuk produk dan keadaan pasaran yang berbeza.

  2. Menggabungkan penunjuk lain seperti MACD, Bollinger Bands untuk meningkatkan kesahihan isyarat.

  3. Tambah strategi stop loss seperti trailing stop, time stop, ATR stop untuk mengawal kerugian.

  4. Elakkan membuka kedudukan apabila VIX tinggi.

  5. Tambah penunjuk jumlah, hanya mempertimbangkan untuk masuk pada pengembangan jumlah yang jelas.

  6. Mengoptimumkan pengurusan wang seperti saiz kedudukan pecahan tetap, kawalan pengeluaran.

  7. Gunakan pembelajaran mesin untuk mengoptimumkan parameter secara automatik.

Ringkasan

Strategi silang TEMA berganda adalah strategi trend berikut secara keseluruhan menggunakan penunjuk teknikal trend. Ia membantu menangkap trend harga dan perdagangan di sepanjang trend. Tetapi risiko harus diuruskan dengan betul untuk mengelakkan kerugian daripada penggunaan yang tidak betul. Pengoptimuman dan ujian lanjut boleh membawa kepada penyesuaian parameter saintifik yang lebih baik dan prestasi yang lebih baik di pasaran trend.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-10-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © nickrober

//@version=4
strategy(title="TEMA Cross Backtest", shorttitle="TEMA_X_BT", overlay=true, commission_type=strategy.commission.percent, commission_value=0, initial_capital = 1000,  default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Backtest inputs
FromMonth = input(defval=1, title="From Month", minval=1, maxval=12)
FromDay = input(defval=1, title="From Day", minval=1, maxval=31)
FromYear = input(defval=2020, title="From Year", minval=2010)
ToMonth = input(defval=1, title="To Month", minval=1, maxval=12)
ToDay = input(defval=1, title="To Day", minval=1, maxval=31)
ToYear = input(defval=9999, title="To Year", minval=2017)

// Define backtest timewindow
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)  // backtest finish window
window() =>  true

//TEMA Section
xLength = input(20, minval=1, title="Fast Length")
xPrice = close
xEMA1 = ema(xPrice, xLength)
xEMA2 = ema(xEMA1, xLength)
xEMA3 = ema(xEMA2, xLength)
xnRes = (3 * xEMA1) - (3 * xEMA2) + xEMA3
xnResP = plot(xnRes, color=color.green, linewidth=2, title="TEMA1")

yLength = input(60, minval=1, title="Slow Length")
yPrice = close
yEMA1 = ema(yPrice, yLength)
yEMA2 = ema(yEMA1, yLength)
yEMA3 = ema(yEMA2, yLength)
ynRes = (3 * yEMA1) - (3 * yEMA2) + yEMA3
ynResP = plot(ynRes, color=color.red, linewidth=2, title="TEMA2")

fill(xnResP, ynResP, color=xnRes > ynRes ? color.green : color.red, transp=75, editable=true)

// Buy and Sell Triggers
LongEntryAlert = xnRes > ynRes
LongCloseAlert = xnRes < ynRes
ShortEntryAlert = xnRes < ynRes
ShortCloseAlert = xnRes > ynRes

// Entry & Exit signals
strategy.entry("Long", strategy.long, when = xnRes > ynRes and window()) 
strategy.close("Long", when = xnRes < ynRes)
//strategy.entry("Short", strategy.short, when = xnRes < ynRes and window())
//strategy.close("Short", when = xnRes > ynRes)

Lebih lanjut