Strategi Persilangan Momentum Berdasarkan Purata Pergerakan Indeks Berwajaran Kecairan

LWMA EMA VOL stdev CROSS
Tarikh penciptaan: 2025-01-17 15:45:55 Akhirnya diubah suai: 2025-01-17 15:45:55
Salin: 0 Bilangan klik: 365
1
fokus pada
1617
Pengikut

Strategi Persilangan Momentum Berdasarkan Purata Pergerakan Indeks Berwajaran Kecairan

Gambaran keseluruhan

Strategi ini ialah sistem perdagangan berdasarkan purata bergerak wajaran kecairan Ia mengukur kecairan pasaran dengan memantau hubungan antara turun naik harga dan volum dagangan, dan membina purata bergerak pantas dan perlahan atas dasar ini. Isyarat beli dijana apabila garisan pantas melintasi garisan perlahan, dan isyarat jual dijana apabila ia melintasi di bawah. Strategi ini memberi perhatian khusus kepada peristiwa kecairan yang tidak normal dan merekodkan mata harga utama melalui tatasusunan, sekali gus menyediakan peluang dagangan yang lebih tepat.

Prinsip Strategi

Teras strategi adalah untuk mengukur kecairan pasaran melalui nisbah volum dagangan kepada perubahan harga. Langkah-langkah pelaksanaan khusus adalah seperti berikut:

  1. Kira penunjuk kecairan: Gunakan volum dibahagikan dengan nilai mutlak perbezaan antara harga tutup dan harga pembukaan
  2. Menetapkan Sempadan Kecairan: Mengenalpasti Kecairan Tidak Normal dengan EMA dan Sisihan Piawai
  3. Mengekalkan susunan harga: merekodkan harga apabila menembusi sempadan kecairan
  4. Membina Purata Pergerakan: Mengira EMA Pantas dan Perlahan berdasarkan Peristiwa Kecairan
  5. Jana isyarat dagangan: tentukan mata beli dan jual melalui persilangan purata bergerak

Kelebihan Strategik

  1. Persepsi kecairan: Dengan menggabungkan volum dagangan dengan perubahan harga, ia boleh menangkap aktiviti pasaran dengan lebih tepat.
  2. Penjejakan peristiwa tidak normal: rekod mata harga utama melalui tatasusunan untuk mengelakkan kehilangan peluang pasaran penting
  3. Penyesuaian Dinamik: Ciri pengurangan berat EMA membolehkan strategi menyesuaikan diri dengan perubahan pasaran dengan lebih baik
  4. Kawalan risiko: Menyediakan isyarat masuk dan keluar yang jelas melalui pindah silang purata bergerak
  5. Kebolehsesuaian: Berbilang parameter boleh dilaraskan untuk menyesuaikan diri dengan persekitaran pasaran yang berbeza

Risiko Strategik

  1. Kepekaan parameter: Kesan strategi sangat bergantung pada tetapan parameter dan perlu dioptimumkan secara berterusan
  2. Lag: Sistem berdasarkan purata bergerak mempunyai ketinggalan yang wujud
  3. Pergantungan pasaran: prestasi tidak menentu dalam tempoh masa dan pasaran tertentu
  4. Pecahan palsu: Boleh menjana isyarat palsu semasa tempoh turun naik yang tinggi
  5. Kos urus niaga: Urus niaga yang kerap boleh menyebabkan kos yang lebih tinggi

Arah pengoptimuman strategi

  1. Perkenalkan penapis:
  • Tambah penunjuk pengesahan arah aliran seperti ADX
  • Menggunakan penunjuk turun naik untuk menapis isyarat palsu
  1. Masa kemasukan yang lebih baik:
  • Menggabungkan tahap sokongan dan rintangan
  • Pertimbangkan pengesahan pecahan volum
  1. Pemilihan parameter pengoptimuman:
  • Melaksanakan parameter penyesuaian
  • Pelarasan dinamik berdasarkan keadaan pasaran
  1. Pengurusan risiko yang dipertingkatkan:
  • Tambah mekanisme henti rugi dan ambil untung
  • Melaksanakan sistem pengurusan gudang

ringkaskan

Ini ialah strategi inovatif yang menggabungkan analisis kecairan dengan penunjuk teknikal, mengoptimumkan sistem pindah silang purata bergerak tradisional dengan memantau anomali kecairan pasaran. Walaupun ia berprestasi baik dalam persekitaran pasaran tertentu, ia masih memerlukan pengoptimuman lanjut untuk meningkatkan kestabilan dan kebolehgunaan. Adalah disyorkan bahawa pedagang menjalankan ujian yang mencukupi sebelum penggunaan masa nyata dan menggabungkannya dengan penunjuk lain untuk membina sistem perdagangan yang lebih lengkap.

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

//Liquidity ignoring price location

//@version=6
strategy("Liquidity Weighted Moving Averages [AlgoAlpha]", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3)

// Inputs
outlierThreshold = input.int(10, "Outlier Threshold Length")
fastMovingAverageLength = input.int(50, "Fast MA Length")
slowMovingAverageLength = input.int(100, "Slow MA Length")
start_date = input(timestamp("2018-01-01 00:00"), title="Start Date")
end_date = input(timestamp("2069-12-31 23:59"), title="End Date")

// Define liquidity based on volume and price movement
priceMovementLiquidity = volume / math.abs(close - open)

// Calculate the boundary for liquidity to identify outliers
liquidityBoundary = ta.ema(priceMovementLiquidity, outlierThreshold) + ta.stdev(priceMovementLiquidity, outlierThreshold)

// Initialize an array to store liquidity values when they cross the boundary
var liquidityValues = array.new_float(5)

// Check if the liquidity crosses above the boundary and update the array
if ta.crossover(priceMovementLiquidity, liquidityBoundary)
    array.insert(liquidityValues, 0, close)
    if array.size(liquidityValues) > 5
        array.pop(liquidityValues)

// Calculate the Exponential Moving Averages for the close price at the last liquidity crossover
fastEMA = ta.ema(array.size(liquidityValues) > 0 ? array.get(liquidityValues, 0) : na, fastMovingAverageLength)
slowEMA = ta.ema(array.size(liquidityValues) > 0 ? array.get(liquidityValues, 0) : na, slowMovingAverageLength)

// Trading Logic
in_date_range = true
buy_signal = ta.crossover(fastEMA, slowEMA) and in_date_range
sell_signal = ta.crossunder(fastEMA, slowEMA) and in_date_range

// Strategy Entry and Exit
if (buy_signal)
    strategy.entry("Buy", strategy.long)

if (sell_signal)
    strategy.close("Buy")

// Plotting
fastPlot = plot(fastEMA, color=fastEMA > slowEMA ? color.new(#00ffbb, 50) : color.new(#ff1100, 50), title="Fast EMA")
slowPlot = plot(slowEMA, color=fastEMA > slowEMA ? color.new(#00ffbb, 50) : color.new(#ff1100, 50), title="Slow EMA")

// Create a fill between the fast and slow EMA plots with appropriate color based on crossover
fill(fastPlot, slowPlot, fastEMA > slowEMA ? color.new(#00ffbb, 50) : color.new(#ff1100, 50))