Sumber dimuat naik... memuat...

Strategi Penembusan Purata ATR

Penulis:ChaoZhang, Tarikh: 2024-05-17 10:22:11
Tag:ATRSMA

img

Ringkasan

Strategi ini terutamanya menggunakan dua penunjuk, ATR (Average True Range) dan SMA (Simple Moving Average), untuk menentukan penyatuan dan penembusan pasaran dan membuat dagangan dengan sewajarnya. Idea utama strategi adalah: apabila harga menembusi saluran ATR atas atau bawah, ia dianggap sebagai penembusan dan kedudukan dibuka; apabila harga kembali ke saluran ATR, ia dianggap penyatuan dan kedudukan ditutup. Pada masa yang sama, strategi ini juga menggunakan kawalan risiko dan pengurusan kedudukan untuk mengawal risiko dan saiz kedudukan setiap perdagangan.

Prinsip Strategi

  1. Mengira penunjuk ATR dan SMA. ATR digunakan untuk menentukan turun naik pasaran, manakala SMA digunakan untuk menentukan tahap harga purata pasaran.
  2. Mengira had atas dan bawah berdasarkan ATR dan SMA. Batas atas adalah pengganda SMA + ATR *, dan batas bawah adalah pengganda SMA - ATR *, di mana pengganda adalah kelipatan yang ditakrifkan oleh pengguna.
  3. Tentukan sama ada pasaran berada dalam keadaan konsolidasi Apabila harga tertinggi adalah lebih rendah daripada had atas dan harga terendah adalah lebih tinggi daripada had bawah, pasaran dianggap berada dalam keadaan konsolidasi.
  4. Tentukan sama ada penembusan telah berlaku di pasaran. Apabila harga tertinggi memecahkan di atas batas atas, ia dianggap penembusan ke atas; apabila harga terendah memecahkan di bawah batas bawah, ia dianggap penembusan ke bawah.
  5. Buka kedudukan berdasarkan situasi pecah. Buka kedudukan panjang untuk pecah ke atas dan kedudukan pendek untuk pecah ke bawah.
  6. Penutupan kedudukan berdasarkan keadaan stop-loss dan take-profit Apabila harga mencapai harga stop-loss (SMA - ATR * stop_loss_percentage) atau harga take-profit (SMA + ATR * take_profit_percentage), tutup kedudukan.
  7. Mengira jumlah risiko (risk_per_trade) untuk setiap dagangan berdasarkan peratusan risiko yang ditakrifkan pengguna (risk_peratusan), dan kemudian mengira saiz kedudukan (position_size) berdasarkan ATR.

Analisis Kelebihan

  1. Logik strategi adalah jelas dan mudah difahami dan dilaksanakan.
  2. Penggunaan penunjuk ATR untuk menentukan turun naik pasaran membolehkan strategi untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
  3. Penggunaan penunjuk SMA untuk menentukan tahap harga purata pasaran membolehkan strategi untuk mengesan trend utama pasaran.
  4. Pertimbangan keadaan konsolidasi pasaran ketika membuka kedudukan membantu mengelakkan perdagangan yang kerap di pasaran yang bergelombang.
  5. Penggunaan stop-loss dan mengambil keuntungan secara berkesan mengawal risiko setiap perdagangan.
  6. Penggunaan pengurusan kedudukan membolehkan penyesuaian automatik saiz kedudukan berdasarkan dana akaun dan peratusan risiko.

Analisis Risiko

  1. Strategi ini mungkin tidak berfungsi dengan baik di pasaran yang bergolak kerana sering keluar dan penyatuan boleh membawa kepada pembukaan dan penutupan kedudukan yang kerap, dengan itu meningkatkan kos dagangan.
  2. Tetapan parameter strategi mempunyai kesan yang signifikan terhadap prestasi. parameter yang berbeza boleh membawa kepada hasil yang sama sekali berbeza, jadi debugging dan pengoptimuman parameter yang teliti diperlukan.
  3. Tetapan stop-loss dan take-profit strategi mungkin tidak cukup fleksibel.
  4. Pengurusan kedudukan strategi mungkin terlalu mudah dan tidak mengambil kira faktor-faktor seperti trend pasaran dan turun naik, yang boleh membawa kepada kedudukan yang terlalu besar atau terlalu kecil dalam beberapa kes.

Arah pengoptimuman

  1. Pertimbangkan untuk menambah syarat penapisan trend, seperti hanya membuka kedudukan panjang apabila trend naik dan kedudukan pendek apabila trend turun, untuk mengelakkan perdagangan yang kerap di pasaran yang bergolak.
  2. Pertimbangkan untuk menggunakan kaedah stop loss dan take profit yang lebih fleksibel, seperti menyesuaikan jarak stop loss dan take profit secara dinamik berdasarkan ATR atau turun naik pasaran, untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
  3. Pertimbangkan untuk menggunakan kaedah pengurusan kedudukan yang lebih kompleks, seperti menyesuaikan saiz kedudukan berdasarkan trend pasaran dan turun naik, untuk mengawal risiko dan meningkatkan keuntungan.
  4. Pertimbangkan untuk menambah syarat penapisan lain, seperti jumlah dagangan dan turun naik, untuk meningkatkan kebolehpercayaan dan kestabilan strategi.

Ringkasan

Strategi ini menggunakan dua penunjuk mudah, ATR dan SMA, untuk membuat perdagangan dengan menentukan penembusan harga dan penyatuan, sambil menggunakan kawalan risiko dan pengurusan kedudukan untuk mengawal risiko dan saiz kedudukan setiap perdagangan. Logik strategi jelas dan mudah difahami dan dilaksanakan, tetapi mungkin terdapat beberapa masalah dalam aplikasi sebenar, seperti prestasi yang buruk di pasaran yang bergolak, kesan signifikan tetapan parameter pada prestasi strategi, tetapan stop-loss dan take-profit yang tidak fleksibel, dan pengurusan kedudukan yang terlalu mudah. Oleh itu, dalam aplikasi sebenar, adalah perlu untuk mengoptimumkan dan meningkatkan berdasarkan situasi tertentu, seperti menambahkan keadaan penapisan trend, menggunakan kaedah penapisan stop-loss dan take-profit yang lebih fleksibel, menggunakan kaedah pengurusan kedudukan yang lebih kompleks, menambahkan keadaan penapisan lain, dan lain-lain, untuk meningkatkan kebolehpercayaan dan kestabilan strategi.


/*backtest
start: 2024-05-09 00:00:00
end: 2024-05-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Consolidation Breakout Strategy", overlay=true)

// Input Parameters
length = input.int(20, "Length", minval=1)
multiplier = input.float(2.0, "Multiplier", minval=0.1, maxval=10.0)
risk_percentage = input.float(1.0, "Risk Percentage", minval=0.1, maxval=10.0)
stop_loss_percentage = input.float(1.0, "Stop Loss Percentage", minval=0.1, maxval=10.0)
take_profit_percentage = input.float(2.0, "Take Profit Percentage", minval=0.1, maxval=10.0)

// ATR calculation
atr_value = ta.atr(length)

// Average price calculation
average_price = ta.sma(close, length)

// Upper and lower bounds for consolidation detection
upper_bound = average_price + multiplier * atr_value
lower_bound = average_price - multiplier * atr_value

// Consolidation detection
is_consolidating = (high < upper_bound) and (low > lower_bound)

// Breakout detection
is_breakout_up = high > upper_bound
is_breakout_down = low < lower_bound

// Entry conditions
enter_long = is_breakout_up and not is_consolidating
enter_short = is_breakout_down and not is_consolidating

// Exit conditions
exit_long = low < (average_price - atr_value * stop_loss_percentage) or high > (average_price + atr_value * take_profit_percentage)
exit_short = high > (average_price + atr_value * stop_loss_percentage) or low < (average_price - atr_value * take_profit_percentage)

// Risk calculation
risk_per_trade = strategy.equity * (risk_percentage / 100)
position_size = risk_per_trade / atr_value

// Strategy
if (enter_long)
    strategy.entry("Long", strategy.long, qty=position_size)
if (enter_short)
    strategy.entry("Short", strategy.short, qty=position_size)

if (exit_long)
    strategy.close("Long")
if (exit_short)
    strategy.close("Short")


Berkaitan

Lebih lanjut