Sumber daya yang dimuat... Pemuatan...

Trend Momentum Rata-rata Bergerak Berbagai Mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2024-11-12 15:05:09
Tag:SMARSIMA

img

Gambaran umum

Strategi ini adalah sistem perdagangan yang mengikuti tren berdasarkan beberapa moving average dan indikator momentum. Strategi ini terutama memanfaatkan hubungan dinamis antara 20-hari, 50-hari, 150 hari, dan 200 hari Simple Moving Averages (SMA), dikombinasikan dengan indikator volume dan RSI untuk menangkap tren naik yang kuat pada jangka waktu harian dan posisi keluar ketika tren melemah. Strategi ini secara efektif menyaring sinyal palsu dan meningkatkan akurasi perdagangan melalui penggunaan terkoordinasi dari beberapa indikator teknis.

Prinsip Strategi

Logika inti mencakup komponen kunci berikut:

  1. Sistem Moving Average: Menggunakan rata-rata bergerak 20/50/150/200 hari untuk membangun sistem penilaian tren, yang membutuhkan keselarasan bullish.
  2. Konfirmasi Momentum: Menggunakan indikator RSI dan moving average untuk menilai momentum harga, membutuhkan RSI di atas 55 atau RSI SMA di atas 50 dan meningkat.
  3. Verifikasi Volume: Mengkonfirmasi validitas sinyal dengan membandingkan volume rata-rata 20 hari dan volume terbaru.
  4. Verifikasi Persistensi Tren: Memeriksa apakah MA 50 hari mempertahankan tren naik selama setidaknya 25 hari dari 40 hari perdagangan.
  5. Konfirmasi Posisi: Harga harus tetap di atas MA 150 hari selama setidaknya 20 hari perdagangan.

Kondisi pembelian mengharuskan:

  • Lebih dari 4 hari bullish dalam 10 hari terakhir dengan setidaknya 1 hari volume tinggi
  • Indikator RSI memenuhi kondisi momentum
  • Sistem rata-rata bergerak menunjukkan keselarasan bullish dan kenaikan terus menerus
  • Harga stabil di atas MA 150 hari

Kondisi penjualan meliputi:

  • Pelanggaran harga di bawah MA 150 hari
  • Penurunan volume tinggi berturut-turut
  • MA 50 hari melintasi MA 150 hari
  • Lilin bearish baru-baru ini dengan volume yang meningkat

Keuntungan Strategi

  1. Validasi silang beberapa indikator teknis mengurangi kesalahan penilaian
  2. Persyaratan persistensi tren yang ketat menyaring fluktuasi jangka pendek
  3. Integrasi analisis volume meningkatkan keandalan sinyal
  4. Kondisi stop loss dan profit taking yang jelas mengendalikan risiko secara efektif
  5. Cocok untuk menangkap tren jangka menengah hingga panjang, mengurangi frekuensi perdagangan
  6. Logika strategi yang jelas, mudah dimengerti dan dilaksanakan

Risiko Strategi

  1. Sistem rata-rata bergerak memiliki keterlambatan, mungkin melewatkan tahap awal tren
  2. Kondisi masuk yang ketat dapat kehilangan beberapa peluang perdagangan
  3. Dapat menghasilkan sinyal palsu yang sering terjadi di pasar yang bergolak
  4. Penundaan dalam mengidentifikasi pembalikan pasar
  5. Membutuhkan skala modal yang lebih besar untuk menahan penarikan

Saran Pengendalian Risiko:

  • Menetapkan posisi stop loss yang wajar
  • Pengelolaan uang yang konservatif
  • Pertimbangkan untuk menambahkan indikator konfirmasi tren
  • Sesuaikan parameter berdasarkan lingkungan pasar

Arah Optimasi Strategi

  1. Tambahkan Parameter Adaptif
  • Sesuaikan periode MA secara dinamis berdasarkan volatilitas pasar
  • Mengoptimalkan pengaturan ambang RSI
  1. Meningkatkan Mekanisme Stop-Loss
  • Tambahkan trailing stop
  • Atur pemberhentian berdasarkan waktu
  1. Memperkenalkan Analisis Lingkungan Pasar
  • Tambahkan indikator kekuatan tren
  • Pertimbangkan indikator volatilitas
  1. Optimalkan Ukuran Perdagangan
  • Desain Manajemen Posisi Dinamis
  • Sesuaikan berdasarkan kekuatan sinyal

Ringkasan

Ini adalah strategi yang dirancang dengan ketat mengikuti tren yang secara efektif menangkap peluang tren yang kuat melalui penggunaan terkoordinasi dari beberapa indikator teknis. Keuntungan utama strategi terletak pada mekanisme konfirmasi sinyal yang komprehensif dan sistem kontrol risiko yang ketat. Meskipun ada beberapa keterlambatan, melalui optimasi parameter yang wajar dan manajemen risiko, strategi dapat mempertahankan kinerja yang stabil dalam operasi jangka panjang. Investor disarankan untuk memperhatikan kemampuan beradaptasi dengan lingkungan pasar, mengendalikan posisi secara wajar, dan melakukan optimasi yang ditargetkan berdasarkan kondisi aktual saat menerapkan strategi dalam perdagangan langsung.


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


Berkaitan

Lebih banyak