
Gagasan utama strategi ini adalah untuk membina kedudukan dengan menggunakan kawasan sokongan atau rintangan yang penting di sekitar garis purata bergerak. Apabila harga naik atau turun, kemungkinan besar akan membentuk sokongan atau tekanan, yang menghasilkan peluang untuk berbalik.
Strategi ini didasarkan pada indikator rata-rata bergerak bertimbangan, yang pertama mengira rata-rata bergerak bertimbangan untuk jangka masa tertentu, dan kemudian memantau apakah harga mengalami perlanggaran dengan ketinggian tertentu. Apabila harga mencapai jarak tertentu dari rata-rata, gambar petunjuk panah dan buka kedudukan untuk membina kedudukan.
Strategi memilih sama ada menggunakan tracking stop atau menggunakan jarak stop tetap dengan parameter trail. Anda boleh mengawal risiko dengan menyesuaikan amplitudo stop. Anda boleh mengunci sebahagian keuntungan dengan parameter harga tunggal terhad. Anda juga boleh membatasi pembukaan kedudukan pada masa tertentu dengan penapisan masa.
Kelebihan terbesar strategi ini adalah menggunakan keadaan berbalik dan gabungan dengan garis rata-rata untuk mencari titik-titik penting pasaran untuk membuka kedudukan. Peluang menang dan rugi strategi berbalik biasanya lebih baik, dan risikonya mudah dikawal.
Oleh kerana ia dibina di atas dasar garis rata-rata bergerak, ruang untuk pengoptimuman parameter lebih besar, dengan menyesuaikan panjang garis rata-rata, parameter untuk menguji kesesuaian dengan pasaran yang berbeza.
Risiko terbesar strategi ini adalah kegagalan pembalikan. Apabila harga membentuk isyarat pembalikan, kerugian besar akan terbentuk jika tidak berjaya mencetuskan hentian atau berhenti dan terus berjalan ke arah asal.
Di samping itu, ketergantungan pada pengoptimuman parameter yang tinggi, jika parameter yang ditetapkan tidak betul, mudah untuk ketinggalan masa harga berbalik atau menghasilkan isyarat palsu. Perlu memahami dan menguji tingkah laku pasaran dengan baik, menilai parameter yang ditetapkan dengan teliti.
Anda boleh mempertimbangkan untuk menambah lebih banyak petunjuk untuk meningkatkan kualiti dan ketepatan isyarat. Sebagai contoh, sebelum isyarat pulangan harga muncul, anda boleh mengesan kenaikan dalam jangka masa tertentu, terutamanya data kenaikan kitaran pendek, untuk menentukan ciri-ciri pergerakan harga.
Anda juga boleh mencuba kaedah pembelajaran mesin, dengan merekodkan isyarat perdagangan sejarah dan data harga, dan melatih model untuk menentukan pergerakan harga seterusnya. Ini dapat membantu menapis isyarat palsu dan meningkatkan kualiti isyarat.
Di samping itu, beberapa mekanisme pengoptimuman penyesuaian diri boleh diperkenalkan. Berdasarkan hasil dagangan sebenar, parameter atau berat peraturan disesuaikan secara dinamik, untuk mencapai pengoptimuman diri strategi dan ENO.
Strategi ini secara keseluruhan berfungsi dengan stabil, dan dapat memperoleh keuntungan yang baik dalam ruang parameter yang munasabah dan keadaan pasaran. Kelebihan terbesar adalah risiko yang dapat dikawal, dengan potensi pengoptimuman tertentu.
/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-22 08:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title="WMA Breakout",overlay=true, initial_capital=25000, default_qty_value=1, commission_type=strategy.commission.cash_per_contract, commission_value=3.02)
len = input(20, minval=1, title="Length")
src = input(close, title="Source")
out = wma(src, len)
price_drop = input(.003, "When price drops (In Ticks) Enter Long", step=.001)
price_climb = input(.003, "When price climbs (In Ticks) Enter Short", step=.001)
trail = input(true, "Trailing Stop(checked), Market stop(unchecked)")
stop = input(10, "Stop (in ticks)", step=1)
limit = input(5, "Limit Out", step=1)
//size = input(1, "Limit Position Size (pyramiding)", minval=1)
timec = input(true, "Limit Time of Day (Buying Side)")
//Time Session
sess = input("1600-0500", "Start/Stop trades (Est time)")
t = time(timeframe.period, sess)
//plots
plot(wma(src,len))
z = if low+price_drop<out
(out-low)
plotarrow(z, colorup=red)
a = if high-price_climb>out
(high-out)
plotarrow(a, colorup=lime)
av=wma(src,len)
//Orders
if(timec)
strategy.entry("Enterlong", long=true, when=z and t>1)
else
strategy.entry("Enterlong", long=true, when=z)
if(trail)
strategy.exit("Exit","Enterlong", profit=limit, trail_points = 0, trail_offset = stop )
else
strategy.exit("Exit","Enterlong", profit=limit, loss = stop )
if(timec)
strategy.entry("Entershort", long=false, when=a and t>1)
else
strategy.entry("Entershort", long=false, when=a)
if(trail)
strategy.exit("Exit","Entershort", profit=limit, trail_points = 0, trail_offset = stop )
else
strategy.exit("Exit","Entershort", profit=limit, loss = stop )