Strategi mengikut arah aliran berdasarkan skor Z

EMA
Tarikh penciptaan: 2024-04-29 17:03:15 Akhirnya diubah suai: 2024-04-29 17:03:15
Salin: 0 Bilangan klik: 1206
1
fokus pada
1617
Pengikut

Strategi mengikut arah aliran berdasarkan skor Z

Gambaran keseluruhan

Strategi pengesanan trend berdasarkan nilai Z menggunakan indikator statistik nilai Z untuk menangkap peluang trend dengan mengukur sejauh mana harga menyimpang dari purata bergeraknya dan menggunakan perbezaan piawai sebagai skala pengasingan. Strategi ini terkenal dengan kesederhanaan dan keberkesanannya, terutama di pasaran di mana pergerakan harga sering kembali ke nilai rata-rata.

Prinsip Strategi

Strategi ini berpusat pada pengiraan nilai Z. Nilai Z dapat dikira dengan mengira perbezaan antara harga semasa dengan purata bergerak indeks harga yang ditentukan oleh pengguna (EMA) dan kemudian dibahagikan dengan standard harga yang sama panjangnya:

z = (x - μ) / σ

Di antaranya, x adalah harga semasa, μ adalah nilai purata EMA, σ adalah perbezaan piawai.

Isyarat dagangan dihasilkan berdasarkan nilai Z yang melintasi had yang ditetapkan:

  • Kemasukan berbilang kepala: apabila nilai Z melintasi paras positif ke atas.
  • Perlawanan beramai-ramai: apabila nilai Z turun ke bawah melalui had negatif.
  • Kemasukan kosong: apabila nilai Z turun ke bawah melalui had negatif.
  • Bermula dengan kepala kosong: apabila nilai Z melintasi paras positif ke atas.

Kelebihan Strategik

  1. Sederhana dan berkesan: Strategi ini hanya bergantung kepada beberapa parameter, mudah difahami dan dilaksanakan, dan sangat berkesan dalam menangkap peluang yang sedang tren.
  2. Asas statistik: Nilai Z sebagai alat statistik yang matang, menyediakan asas teori yang kukuh untuk strategi tersebut.
  3. Kebolehan beradaptasi: Dengan menyesuaikan parameter seperti nilai jatuh, EMA dan kitaran pengiraan perbezaan piawai, strategi ini dapat menyesuaikan diri dengan gaya perdagangan dan keadaan pasaran yang berbeza.
  4. Isyarat yang jelas: Isyarat perdagangan berdasarkan nilai Z melintasi had adalah mudah dan jelas, yang membantu membuat keputusan dan pelaksanaan yang cepat.

Risiko Strategik

  1. Sensitiviti parameter: Tetapan parameter yang tidak sesuai (seperti had yang terlalu tinggi atau terlalu rendah) boleh menyebabkan isyarat dagangan menjadi salah, kehilangan peluang atau menyebabkan kerugian.
  2. Pengesanan trend: Strategi ini mungkin menghadapi isyarat palsu yang kerap dan tidak berfungsi dengan baik semasa kejatuhan atau pemulihan pasaran.
  3. Kesan ketinggalan: Sebagai strategi pengesanan trend, isyarat masuk dan keluarnya mempunyai ketinggalan tertentu, mungkin kehilangan masa terbaik.

Risiko di atas boleh dikawal dan diatasi dengan analisis pasaran yang berterusan, pengoptimuman parameter dan dengan berhati-hati berdasarkan penilaian semula.

Arah pengoptimuman strategi

  1. Hujung dinamik: memperkenalkan had dinamik yang berkaitan dengan kadar turun naik, yang dapat menyesuaikan diri dengan keadaan pasaran yang berbeza, meningkatkan kualiti isyarat.
  2. Indeks gabungan: menggabungkan petunjuk teknikal lain seperti RSI, MACD dan lain-lain, untuk mengesahkan kedua isyarat perdagangan, meningkatkan kebolehpercayaan.
  3. Pengurusan kedudukan: Menggabungkan mekanisme kawalan kedudukan seperti ATR, menurunkan kedudukan tepat pada masanya di pasaran goyah, menambah kedudukan tepat pada masanya di pasaran trend, mengoptimumkan nisbah risiko pendapatan.
  4. Pelbagai skala masa: Menghitung nilai Z merentasi pelbagai skala masa, menangkap trend di pelbagai peringkat, dan memperkayakan dimensi strategi.

ringkaskan

“Strategi Pemantauan Trend Berasaskan Nilai Z” dengan ciri-ciri ringkas, mantap, dan fleksibelnya, memberikan perspektif yang unik untuk menangkap peluang yang sedang berkembang. Dengan penetapan parameter yang munasabah, pengurusan risiko yang berhati-hati dan pengoptimuman berterusan, strategi ini dijangka menjadi pembantu kuat bagi pedagang kuantitatif untuk bergerak dengan mantap di pasaran yang berubah-ubah.

Kod sumber strategi
/*backtest
start: 2023-04-23 00:00:00
end: 2024-04-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PresentTrading

// This strategy employs a statistical approach by using a Z-score, which measures the deviation of the price from its moving average normalized by the standard deviation.
// Very simple and effective approach

//@version=5
strategy('Price Based Z-Trend - strategy [presentTrading]',shorttitle = 'Price Based Z-Trend - strategy [presentTrading]', overlay=false, precision=3, 
         commission_value=0.1, commission_type=strategy.commission.percent, slippage=1, 
         currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=10000)

// User-definable parameters for the Z-score calculation and bar coloring
tradeDirection = input.string("Both", "Trading Direction", options=["Long", "Short", "Both"]) // User selects trading direction

priceDeviationLength = input.int(100, "Standard Deviation Length", step=1) // Length for standard deviation calculation
priceAverageLength = input.int(100, "Average Length", step=1) // Length for moving average calculation
Threshold = input.float(1, "Threshold", step=0.1) // Number of standard deviations for Z-score threshold
priceBar = input(title='Bar Color', defval=true) // Toggle for coloring price bars based on Z-score


// Z-score calculation based on user input for the price source (typically the closing price)
priceSource = input(close, title="Source")
priceZScore = (priceSource - ta.ema(priceSource, priceAverageLength)) / ta.stdev(priceSource, priceDeviationLength) // Z-score calculation

// Conditions for entering and exiting trades based on Z-score crossovers
priceLongCondition = ta.crossover(priceZScore, Threshold) // Condition to enter long positions
priceExitLongCondition = ta.crossunder(priceZScore, -Threshold) // Condition to exit long positions

longEntryCondition = ta.crossover(priceZScore, Threshold)
longExitCondition = ta.crossunder(priceZScore, -Threshold)
shortEntryCondition = ta.crossunder(priceZScore, -Threshold)
shortExitCondition = ta.crossover(priceZScore, Threshold)


// Strategy conditions and execution based on Z-score crossovers and trading direction
if (tradeDirection == "Long" or tradeDirection == "Both") and longEntryCondition
    strategy.entry("Long", strategy.long) // Enter a long position

if (tradeDirection == "Long" or tradeDirection == "Both") and longExitCondition
    strategy.close("Long") // Close the long position

if (tradeDirection == "Short" or tradeDirection == "Both") and shortEntryCondition
    strategy.entry("Short", strategy.short) // Enter a short position

if (tradeDirection == "Short" or tradeDirection == "Both") and shortExitCondition
    strategy.close("Short") // Close the short position


// Dynamic Thresholds Visualization using 'plot'
plot(Threshold, "Dynamic Entry Threshold", color=color.new(color.green, 50))
plot(-Threshold, "Dynamic Short Entry Threshold", color=color.new(color.red, 50))


// Color-coding Z-Score
priceZScoreColor = priceZScore > Threshold ? color.green : 
              priceZScore < -Threshold ? color.red : color.blue
plot(priceZScore, "Z-Score", color=priceZScoreColor)

// Lines
hline(0, color=color.rgb(255, 255, 255, 50), linestyle=hline.style_dotted)

// Bar Color
priceBarColor = priceZScore > Threshold ? color.green :
           priceZScore > 0 ? color.lime :
           priceZScore < Threshold ? color.maroon :
           priceZScore < 0 ? color.red : color.black
barcolor(priceBar ? priceBarColor : na)