
Gambaran keseluruhan
Strategi ini menggunakan ATR (Average True Range) dan SMA (Simple Moving Average) untuk menilai penyusunan dan penembusan pasaran, untuk berdagang. Gagasan utama strategi ini adalah: apabila harga menembusi ATR ke atas atau ke bawah, menganggap pasaran mengalami penembusan, dan membuka kedudukan. Apabila harga kembali ke dalam orbit ATR, menganggap pasaran masuk ke penyusunan, dan meratakan kedudukan.
Prinsip Strategi
- Mengira Indeks ATR dan Indeks SMA, ATR digunakan untuk menilai turun naik pasaran, dan SMA digunakan untuk menilai tahap harga purata pasaran.
- Berdasarkan ATR dan SMA dikira di atas dan di bawah landasan, landasan atas adalah pengganda SMA + ATR *, landasan bawah adalah pengganda SMA - ATR *, pengganda adalah pengganda yang disesuaikan oleh pengguna.
- Untuk menentukan sama ada pasaran berada dalam keadaan kemas, pasaran dianggap berada dalam keadaan kemas apabila harga tertinggi berada di bawah harga atas dan harga terendah berada di atas harga bawah.
- Untuk menentukan sama ada pasaran telah pecah, apabila harga tertinggi telah pecah di atas landasan, ia dianggap pecah ke atas; apabila harga terendah telah jatuh di bawah landasan, ia dianggap pecah ke bawah.
- Berdasarkan keadaan penembusan, penembusan ke atas membuka lebih banyak kedudukan, penembusan ke bawah membuka kosong.
- Berdasarkan keadaan berhenti-rugi dan berhenti-menang, kedudukan ditutup apabila harga menyentuh harga berhenti-rugi (SMA - ATR * stop_loss_percentage) atau harga berhenti (SMA + ATR * take_profit_percentage).
- Mengira jumlah risiko setiap perdagangan berdasarkan peratusan risiko yang disesuaikan oleh pengguna, dan kemudian mengira saiz kedudukan berdasarkan ATR.
Analisis kelebihan
- Logik strategi jelas, mudah difahami dan dilaksanakan.
- Menggunakan ATR untuk menilai turun naik pasaran, dapat menyesuaikan diri dengan keadaan pasaran yang berbeza.
- Menggunakan indikator SMA untuk menilai tahap harga purata pasaran, dapat mengesan trend utama pasaran.
- Apabila anda membuka kedudukan dengan mempertimbangkan keadaan pasaran, anda dapat mengelakkan perdagangan yang kerap di pasaran yang bergolak.
- Penggunaan stop loss dan stop-loss dapat mengawal risiko setiap perdagangan dengan berkesan.
- Menggunakan Pengurusan Kedudukan, anda boleh menyesuaikan saiz kedudukan secara automatik mengikut perkadaran dana dan risiko akaun.
Analisis risiko
- Strategi mungkin tidak berfungsi dengan baik dalam pasaran yang bergolak, kerana sering pecah dan menyusun boleh menyebabkan pembukaan dan penutupan kedudukan yang kerap, dan dengan itu meningkatkan kos perdagangan.
- Tetapan parameter strategi mempunyai kesan yang besar terhadap prestasi strategi, parameter yang berbeza boleh menyebabkan hasil yang sama sekali berbeza, oleh itu parameter perlu di-debug dan dioptimumkan dengan teliti.
- Tetapan hentian dan hentian strategi mungkin tidak cukup fleksibel, dan peratusan hentian dan hentian yang tetap mungkin tidak dapat disesuaikan dengan keadaan pasaran yang berbeza.
- Pengurusan kedudukan strategi mungkin terlalu mudah, tanpa mempertimbangkan faktor-faktor seperti trend pasaran dan turun naik, yang boleh menyebabkan kedudukan terlalu besar atau terlalu kecil dalam beberapa kes.
Arah pengoptimuman
- Anda boleh mempertimbangkan untuk menambah syarat penapisan trend, seperti membuka lebih banyak kedudukan hanya apabila trend meningkat, dan membuka posisi kosong apabila trend menurun, untuk mengelakkan perdagangan yang kerap dalam pasaran yang bergolak.
- Anda boleh mempertimbangkan untuk menggunakan cara berhenti dan berhenti yang lebih fleksibel, seperti menyesuaikan jarak berhenti dan berhenti berdasarkan ATR atau pergerakan pasaran yang tidak menentu untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
- Kaedah pengurusan kedudukan yang lebih kompleks boleh dipertimbangkan, seperti menyesuaikan saiz kedudukan mengikut trend pasaran dan turun naik untuk mengawal risiko dan meningkatkan keuntungan.
- Anda boleh pertimbangkan untuk menambah syarat penapisan lain, seperti jumlah transaksi, kadar turun naik, dan lain-lain, untuk meningkatkan lagi kebolehpercayaan dan kestabilan strategi.
ringkaskan
Strategi ini menggunakan ATR dan SMA, dua indikator mudah untuk berdagang dengan menilai harga pecah dan menyusun, dan menggunakan kawalan risiko dan pengurusan kedudukan untuk mengawal risiko dan saiz kedudukan setiap perdagangan. Logik strategi jelas, mudah difahami dan dilaksanakan, tetapi dalam aplikasi praktikal mungkin ada beberapa masalah, seperti tidak berfungsi dengan baik dalam pasaran yang bergolak, penetapan parameter mempengaruhi prestasi strategi, tidak cukup fleksibel untuk menetapkan stop loss dan stop loss, pengurusan kedudukan terlalu mudah, dan sebagainya.
Kod sumber 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")