Strategi Mengikuti Trend Momentum Purata Pergerakan Pelbagai

SMA RSI MA
Tarikh penciptaan: 2024-11-12 15:05:09 Akhirnya diubah suai: 2024-11-12 15:05:09
Salin: 0 Bilangan klik: 476
1
fokus pada
1617
Pengikut

Strategi Mengikuti Trend Momentum Purata Pergerakan Pelbagai

Gambaran keseluruhan

Strategi ini adalah sistem perdagangan trend-tracking berdasarkan pelbagai garis rata-rata dan penunjuk momentum. Strategi ini menggunakan hubungan dinamik rata-rata bergerak sederhana 20-hari, 50-hari, 150 dan 200 hari (SMA), menggabungkan tanda-tanda perpindahan dan RSI, menangkap trend naik yang kuat di peringkat garis harian, dan melonggarkan masa apabila trend melemah. Strategi ini digunakan dengan kombinasi pelbagai petunjuk teknikal, dengan berkesan menyaring isyarat palsu, meningkatkan ketepatan perdagangan.

Prinsip Strategi

Logik teras strategi ini merangkumi beberapa bahagian penting:

  1. Sistem garis rata: menggunakan garis rata 20/50/150/200 untuk membina sistem penilaian trend, yang memerlukan banyak garis rata untuk menampilkan susunan berbilang kepala.
  2. Pengesahan pergerakan: menggunakan RSI dan purata bergerak untuk menentukan pergerakan harga, memerlukan RSI lebih besar daripada 55 atau RSI SMA lebih besar daripada 50 dan RSI ke atas.
  3. Pengesahan jumlah transaksi: mengesahkan kesahihan isyarat jual beli dengan membandingkan purata jumlah transaksi pada hari ke-20 dengan jumlah transaksi terkini.
  4. Pengesahan berterusan trend: Periksa bahawa garis purata 50 hari terus meningkat sekurang-kurangnya 25 hari dalam tempoh 40 hari dagangan.
  5. Pengesahan kedudukan: Harga perlu kekal stabil di atas garis purata 150 hari sekurang-kurangnya 20 hari perdagangan.

Syarat pembelian:

  • Lebih daripada 4 hari cahaya matahari dalam tempoh 10 hari terakhir dan sekurang-kurangnya 1 hari pembiakan
  • RSI memenuhi syarat momentum
  • Sistem linear rata menunjukkan susunan berbilang kepala dan terus meningkat
  • Harga stabil di atas purata 150 hari

Syarat jualan termasuk:

  • Harga turun ke paras 150 hari
  • Kemerosotan berterusan
  • 50 hari rata-rata turun daripada 150 hari rata-rata
  • Kembara jumlah penukaran yang didominasi oleh janin

Kelebihan Strategik

  1. Penyelesaian masalah yang berkaitan dengan pengesahan cross-validate
  2. Keperluan trend yang berterusan ketat dan mampu menyaring turun naik jangka pendek
  3. Analisis trafik gabungan untuk meningkatkan kebolehpercayaan isyarat
  4. Syarat penghentian kerugian yang jelas dan kawalan risiko yang berkesan
  5. Ia sesuai untuk menangkap trend jangka panjang dan mengurangkan frekuensi dagangan.
  6. Logik strategi adalah jelas, mudah difahami dan dilaksanakan

Risiko Strategik

  1. Sistem linear rata-rata mempunyai ketinggalan dan mungkin terlepas tahap awal trend
  2. Syarat kemasukan yang ketat boleh menyebabkan kehilangan sebahagian peluang perdagangan
  3. Isyarat palsu yang kerap mungkin berlaku dalam pasaran yang tidak menentu
  4. Terdapat kelewatan dalam mengenal pasti perubahan
  5. Perlu modal yang lebih besar untuk menanggung pengeluaran

Cadangan kawalan risiko:

  • Tetapkan kedudukan hentian yang munasabah
  • Pengurusan Kewangan Berpegang Tepati
  • Pertimbangkan untuk menambah indikator pengesahan trend
  • Parameter penyesuaian mengikut keadaan pasaran

Arah pengoptimuman strategi

  1. Menambah parameter penyesuaian
  • Jadual purata yang disesuaikan dengan pergerakan kadar turun naik pasaran
  • Optimumkan tetapan RSI
  1. Peningkatan kawalan kerugian
  • Tambah Tracking Stop Loss
  • Tetapkan masa henti
  1. Memperkenalkan analisis persekitaran pasaran
  • Meningkatkan penunjuk kekuatan trend
  • Pertimbangkan Indeks Fluktuasi
  1. Optimumkan skala urus niaga
  • Reka bentuk pengurusan kedudukan dinamik
  • Sesuaikan dengan kekuatan isyarat

ringkaskan

Ini adalah strategi pengesanan trend yang ketat yang dirancang, yang dapat menangkap peluang tren yang kuat dengan berkesan melalui penggunaan gabungan pelbagai petunjuk teknikal. Kelebihan utama strategi adalah mekanisme pengesahan isyarat yang lengkap dan sistem kawalan risiko yang ketat. Walaupun terdapat beberapa ketidakselesaan, tetapi dengan pengoptimuman parameter dan pengurusan risiko yang munasabah, strategi ini dapat mengekalkan prestasi yang stabil dalam operasi jangka panjang.

Kod sumber strategi
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Micho's 150 (1D Time Frame Only)", overlay=true)

// Define the length for the SMAs and RSI
sma20Length = 20
sma50Length = 50
sma150Length = 150
sma200Length = 200
volumeMaLength = 20
rsiLength = 14
rsiSmaLength = 14
smaCheckLength = 40  // Check the last month of trading days (~20 days)
requiredRisingDays = 25  // Require SMA to rise in at least 16 of the past 20 days
sma150AboveSma200CheckDays = 1  // Require SMA150 > SMA200 for the last 10 days

// Calculate the SMAs for price
sma20 = ta.sma(close, sma20Length)
sma50 = ta.sma(close, sma50Length)
sma150 = ta.sma(close, sma150Length)
sma200 = ta.sma(close, sma200Length)

// Calculate the 20-period moving average of volume
volumeMA20 = ta.sma(volume, volumeMaLength)

// Calculate the 14-period RSI
rsi = ta.rsi(close, rsiLength)

// Calculate the 14-period SMA of RSI
rsiSMA = ta.sma(rsi, rsiSmaLength)

// Check if most of the last 5 days are buyer days (close > open)
buyerDays = 0
for i = 0 to 9
    if close[i] > open[i]
        buyerDays := buyerDays + 1

// Check if at least 1 day has volume higher than the 20-period volume MA
highVolumeDays = 0
for i = 0 to 9
    if close[i] > open[i] and volume[i] > volumeMA20
        highVolumeDays := highVolumeDays + 1

// Define the new RSI condition
rsiCondition = (rsi >= 55) or (rsiSMA > 50 and rsi > rsi[1])

// Check if the 50-day SMA has been rising on at least 16 of the last 20 trading days
risingDays = 0
for i = 1 to smaCheckLength
    if sma50[i] > sma50[i + 1]
        risingDays := risingDays + 1

// Check if the SMA has risen on at least 16 of the last 20 days
sma50Rising = risingDays >= requiredRisingDays

// Check if the price has been above the SMA150 for the last 20 trading days
priceAboveSma150 = true
for i = 1 to smaCheckLength
    if close[i] < sma150[i]
        priceAboveSma150 := false

// Check if the SMA150 has been above the SMA200 for the last 10 days
sma150AboveSma200 = true
for i = 1 to sma150AboveSma200CheckDays
    if sma150[i] < sma200[i]
        sma150AboveSma200 := false

// Define the conditions for the 150-day and 200-day SMAs being rising
sma150Rising = sma150 > sma150[1]
sma200Rising = sma200 > sma200[1]

// Check if most of the last 5 days are seller days (close < open)
sellerDays = 0
for i = 0 to 9
    if close[i] < open[i]
        sellerDays := sellerDays + 1

// Check if at least 1 day has seller volume higher than the 20-period volume MA
highSellerVolumeDays = 0
for i = 0 to 9
    if close[i] < open[i] and volume[i] > volumeMA20
        highSellerVolumeDays := highSellerVolumeDays + 1

// Check in the last N days the price below 150
priceBelowSma150 = true
for i = 0 to 0
    if close[i] > sma150[i]
        priceBelowSma150 := false

// Restrict the strategy to 1D time frame
if timeframe.isdaily
    // Buy condition:
    // - Most of the last 5 days are buyer days (buyerDays > 2)
    // - At least 1 of those days has high buyer volume (highVolumeDays >= 1)
    // - RSI SMA (14-period) between 45 and 50 with RSI >= 55, or RSI SMA > 50 and RSI rising
    // - 50-day SMA > 150-day SMA and 150-day SMA > 200-day SMA
    // - 50-day SMA has been rising on at least 16 of the last 20 trading days
    // - The price hasn't been below the 150-day SMA in the last 20 days
    // - 150-day SMA has been above the 200-day SMA for the last 10 days
    // - 150-day and 200-day SMAs are rising
    buyCondition = (close > sma150 and buyerDays > 4 and highVolumeDays >= 1 and rsiCondition  and sma50 > sma150 and sma50Rising and sma150Rising and sma200Rising and priceAboveSma150)

    // Sell condition:
    // - Price crossing below SMA 150
    // - Seller volume (current volume > volume MA 20)
    // - 150-day SMA crosses below 200-day SMA
    // - Most of the last 5 days are seller days (sellerDays > 2) and at least 1 day of higher seller volume (highSellerVolumeDays >= 1)
    sellCondition = (priceBelowSma150 and (sma50 < sma150 or (sellerDays >5 and highSellerVolumeDays >= 5)))

    // Execute buy when all conditions are met
    if (buyCondition)
        strategy.entry("Buy", strategy.long)

    // Execute sell when all conditions are met
    if (sellCondition)
        strategy.close("Buy")