Strategi Mengikuti Tren Momentum Rata-rata Pergerakan Ganda

SMA RSI MA
Tanggal Pembuatan: 2024-11-12 15:05:09 Akhirnya memodifikasi: 2024-11-12 15:05:09
menyalin: 0 Jumlah klik: 476
1
fokus pada
1617
Pengikut

Strategi Mengikuti Tren Momentum Rata-rata Pergerakan Ganda

Ringkasan

Strategi ini adalah sistem perdagangan pelacakan tren yang didasarkan pada beberapa rata-rata dan indikator dinamis. Strategi ini terutama memanfaatkan hubungan dinamis antara rata-rata bergerak sederhana 20-hari, 50-hari, 150-hari dan 200-hari (SMA), mengkombinasikan konversi dan indikator RSI, menangkap tren naik yang kuat di tingkat garis harian, dan meratakan posisi tepat waktu ketika tren melemah. Strategi ini digunakan dengan kombinasi beberapa indikator teknis, secara efektif memfilter sinyal palsu, meningkatkan akurasi perdagangan.

Prinsip Strategi

Logika inti dari strategi ini terdiri dari beberapa bagian penting:

  1. Sistem rata-rata: menggunakan rata-rata 20/50/150/200 hari untuk membangun sistem penilaian tren, yang mengharuskan banyak rata-rata untuk menampilkan urutan multihead.
  2. Pengakuan momentum: Menggunakan indikator RSI dan rata-rata bergerak untuk menilai pergerakan harga, RSI lebih besar dari 55 atau RSI SMA lebih besar dari 50 dan RSI ke atas.
  3. Verifikasi volume transaksi: Mengkonfirmasi validitas sinyal jual beli dengan membandingkan volume transaksi rata-rata 20 hari dengan volume transaksi terbaru.
  4. Verifikasi keberlanjutan tren: Periksa bahwa garis rata-rata 50 hari terus naik selama setidaknya 25 hari dari 40 hari perdagangan terakhir.
  5. Konfirmasi posisi: harga harus stabil di atas garis rata-rata 150 hari setidaknya selama 20 hari perdagangan.

Syarat pembelian:

  • Lebih dari 4 hari dari 10 hari terakhir, dan setidaknya 1 hari dari 10 hari terakhir
  • RSI memenuhi kondisi momentum
  • Sistem linear rata-rata menunjukkan berurutan multi-kepala dan terus meningkat
  • Harga stabil di atas garis rata-rata 150 hari

Kondisi penjualan meliputi:

  • Harga turun di bawah 150 hari
  • Penurunan terus menerus
  • 50 hari rata-rata di bawah 150 hari rata-rata
  • Jumlah transaksi meningkat, terutama pada bulan Juni.

Keunggulan Strategis

  1. Cross-Verifikasi Berbagai Indikator Teknologi, Berguna untuk Mengurangi Kesalahan Perhitungan
  2. Kewajiban konsistensi tren yang ketat, mampu menyaring fluktuasi jangka pendek
  3. Kombinasi analisis lalu lintas untuk meningkatkan keandalan sinyal
  4. Kondisi Stop Loss yang jelas, pengendalian risiko yang efektif
  5. Untuk menangkap tren jangka panjang, mengurangi frekuensi transaksi
  6. Logika strateginya jelas, mudah dipahami dan diterapkan

Risiko Strategis

  1. Sistem garis rata memiliki keterlambatan dan mungkin melewatkan tahap awal tren
  2. Syarat masuk yang ketat dapat menyebabkan kehilangan beberapa peluang perdagangan
  3. Sinyal palsu sering terjadi di pasar yang bergejolak
  4. Ada beberapa keterlambatan dalam mengidentifikasi pergeseran pasar
  5. Dibutuhkan dana yang lebih besar untuk menanggung penarikan

Saran pengendalian risiko:

  • Tetapkan posisi stop loss yang masuk akal
  • Pengelolaan dana harus moderat
  • Pertimbangkan untuk meningkatkan indikator konfirmasi tren
  • Parameter yang disesuaikan dengan kondisi pasar

Arah optimasi strategi

  1. Menambahkan parameter adaptasi
  • Siklus rata-rata yang disesuaikan dengan dinamika fluktuasi pasar
  • Pengoptimalan setelan RSI
  1. Meningkatkan mekanisme penghentian kerugian
  • Menambah Tracking Stop Loss
  • Pengaturan waktu mati
  1. Memperkenalkan analisis lingkungan pasar
  • Meningkatkan Indikator Kekuatan Tren
  • Pertimbangkan indikator volatilitas
  1. Optimalkan Skala Transaksi
  • Desain Manajemen Posisi Dinamis
  • Sesuaikan dengan intensitas sinyal

Meringkaskan

Ini adalah strategi pelacakan tren yang dirancang dengan ketat, yang dapat secara efektif menangkap peluang tren yang kuat melalui penggunaan kombinasi beberapa indikator teknis. Keuntungan utama dari strategi ini adalah mekanisme pengakuan sinyal yang lengkap dan sistem kontrol risiko yang ketat. Meskipun ada beberapa keterlambatan, tetapi dengan optimasi parameter yang masuk akal dan manajemen risiko, strategi ini dapat mempertahankan kinerja yang stabil dalam operasi jangka panjang.

Kode 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")