Strategi ini menggunakan isyarat silang William dan menapisnya dengan purata bergerak, untuk mewujudkan strategi perdagangan garis pendek yang lebih fleksibel. Strategi ini dapat menangkap keadaan overbought dan oversold yang lebih jelas, dan penapisan rata-rata bergerak dapat mengelakkan daripada terjejas oleh pergolakan pasaran, dan dengan itu mempunyai kestabilan yang lebih tinggi.
Hitung Indeks William ((%R)), dan purata bergerak sederhana 200 kitaran.
Apabila Indeks William melepasi garis 50 ke atas dan mencapai paras set, dan apabila harga penutupan lebih tinggi daripada purata bergerak, lakukan lebih banyak.
Indeks William turun ke bawah garis 50 apabila mencapai paras set dan harga penutupan berada di bawah purata bergerak.
Selepas melakukan lebih banyak, jika harga penutupan mencapai titik berhenti ((harga masuk ditambah titik berhenti) atau titik hentikan ((harga masuk dikurangkan titik hentikan).
Selepas kosong, jika harga penutupan mencapai titik berhenti ((harga masuk mengurangkan titik berhenti) atau titik hentikan ((harga masuk ditambah titik hentikan)) maka ia akan ditutup.
Strategi ini memanfaatkan ciri-ciri overbought dan oversold dalam Indeks William dan menggabungkan penilaian trend dengan purata bergerak untuk membuat isyarat perdagangan lebih jelas dan lebih dipercayai. Strategi Stop Loss juga lebih jelas dan ringkas, dan secara keseluruhan merupakan sistem strategi garis pendek yang lebih lengkap.
Indeks William adalah lebih berkesan dalam mengenal pasti keadaan jual beli yang berlebihan, dan isyaratnya lebih jelas.
Penapisan purata bergerak meningkatkan penghakiman trend dan mengelakkan kesan guncangan.
Parameter penunjuk dan penapis boleh disesuaikan dan boleh disesuaikan secara fleksibel.
Menggunakan trend tracking untuk menghentikan kerugian, anda boleh mengunci sebahagian besar keuntungan anda.
Peraturan isyarat strategi mudah difahami dan mudah diimplementasikan, sesuai untuk perdagangan garis pendek.
Boleh digunakan untuk pelbagai jenis, fleksibel dan universal.
Ia juga menunjukkan bahawa terdapat kemunduran dalam indeks William, yang mungkin terlepas beberapa peluang.
Rata-rata bergerak juga mempunyai masalah ketinggalan sebagai penapis.
Penghakiman overbought dan oversold yang ketat mungkin terlepas beberapa peluang trend.
Stop loss yang terlalu kecil boleh terjejas oleh pergerakan harga.
Ia boleh menyebabkan kerugian yang besar dan boleh menghalang keuntungan.
Parameter perlu diselaraskan dengan keadaan pasaran yang berbeza.
Mengoptimumkan parameter penunjuk untuk meningkatkan kadar kemenangan strategi.
Menambah penapis untuk penunjuk lain, seperti MACD, KDJ dan sebagainya.
Cuba jenis purata bergerak yang berbeza, seperti purata bergerak indeks.
Meningkatkan penilaian trend, hanya berdagang di arah trend.
Mengoptimumkan strategi hentian hentian, seperti hentian dinamik, hentian skala, dan sebagainya.
Cuba tambahkan pengurusan kedudukan, seperti kedudukan tetap, Martingale dan sebagainya.
Menggunakan pembelajaran mesin untuk mencari kombinasi parameter yang lebih baik
Strategi ini mengintegrasikan penilaian overbought dan oversold William dan penapisan trend pada purata bergerak untuk membentuk strategi garis pendek yang mudah dan praktikal. Ia mempunyai isyarat perdagangan yang jelas dan peraturan berhenti dan kehilangan. Dengan penambahbaikan dalam pengoptimuman parameter, pengoptimuman petunjuk, dan pengurusan kerugian, strategi ini dapat dibuat lebih stabil dan sesuai.
/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Williams %R Cross Strategy with MA Filter", overlay=true)
// User Inputs
wrLength = input(14, title="Williams %R Length")
crossPips = input(10, title="Cross Threshold (Pips)")
takeProfitPips = input(30, title="Take Profit (Pips)")
stopLossPips = input(20, title="Stop Loss (Pips)")
// Calculate Williams %R
wrHigh = ta.highest(high, wrLength)
wrLow = ta.lowest(low, wrLength)
wr = (wrHigh - close) / (wrHigh - wrLow) * -100
// Calculate 200-period Simple Moving Average
ma200 = ta.sma(close, 200)
// Entry Conditions
enterLong = ta.crossover(wr, -50 - crossPips) and close > ma200
enterShort = ta.crossunder(wr, -50 + crossPips) and close < ma200
// Exit Conditions
exitLong = close >= (strategy.position_avg_price + (takeProfitPips / syminfo.mintick)) or close <= (strategy.position_avg_price - (stopLossPips / syminfo.mintick))
exitShort = close <= (strategy.position_avg_price - (takeProfitPips / syminfo.mintick)) or close >= (strategy.position_avg_price + (stopLossPips / syminfo.mintick))
// Order Management
if enterLong
strategy.entry("Long", strategy.long)
if enterShort
strategy.entry("Short", strategy.short)
if exitLong
strategy.close("Long")
if exitShort
strategy.close("Short")