Strategi Pengesanan Pembalikan Purata Bergerak Berganda

Penulis:ChaoZhang, Tarikh: 2023-12-07 17:40:12
Tag:

img

Idea utama strategi ini adalah untuk menggunakan salib emas dan salib mati purata bergerak sebagai isyarat perdagangan, digabungkan dengan harga pecah purata bergerak berganda untuk membuat entri dan berhenti. Ia menghasilkan isyarat beli apabila purata bergerak jangka pendek melintasi di atas purata bergerak jangka panjang; isyarat jual dihasilkan apabila purata bergerak jangka pendek melintasi di bawah purata bergerak jangka panjang. Oleh itu, strategi ini mempunyai kedua-dua trend berikut dan ciri-ciri pembalikan purata.

Prinsip operasi terperinci adalah seperti berikut:

  1. Mengira purata mudah bergerak jangka pendek (SMA) dan purata mudah bergerak jangka panjang.

  2. Bandingkan sama ada harga di atas atau di bawah purata bergerak. Harga di atas purata bergerak menunjukkan kedudukan panjang, sementara harga di bawah menunjukkan kedudukan pendek.

  3. Pergi panjang apabila SMA pendek melintasi di atas SMA panjang; pergi pendek apabila SMA pendek melintasi di bawah SMA panjang.

  4. Bertukar antara kedudukan panjang dan pendek.

Kelebihan utama strategi ini ialah:

  1. Strategi purata bergerak berganda menggabungkan kedua-dua trend berikut dan pembalikan purata, yang mengambil kesempatan untuk mengesan trend pasaran dan menangkap peluang pembalikan.

  2. Salib emas dan salib mati purata bergerak mempunyai beberapa keikhlasan, yang membantu menapis pecah palsu.

  3. Berdasarkan teori purata bergerak, adalah bermanfaat untuk mengunci keuntungan semasa pasaran trend dan julat.

Risiko utama strategi ini ialah:

  1. Strategi purata bergerak berganda sensitif kepada parameter. Tetapan parameter yang tidak betul boleh mengakibatkan overtrading atau peluang yang hilang.

  2. Kegagalan keluar boleh membawa kepada kerugian. Hentian yang berkesan harus dilaksanakan untuk mengawal risiko.

  3. Pembalikan trend tidak dijamin akan berjaya. Trend asal mungkin berterusan mengakibatkan kerugian.

Arah pengoptimuman utama:

  1. Uji dan optimumkan parameter purata bergerak untuk mencari kombinasi parameter terbaik.

  2. Tambah penunjuk penentuan trend untuk membezakan antara pasaran trend dan pelbagai.

  3. Melaksanakan penghentian kerugian yang berkesan untuk mengawal risiko, seperti penghentian kerugian, penghentian kehilangan pesanan, dll.

  4. Gabungkan dengan penunjuk lain untuk meningkatkan ketahanan strategi.

Kesimpulannya, sebagai strategi pengesanan pembalikan purata bergerak berganda, ia mengambil kedua-dua pengesanan trend dan perdagangan pembalikan dalam pertimbangan. Dengan pengoptimuman parameter dan kawalan risiko yang betul, ia dapat mencapai hasil yang baik. Walau bagaimanapun, mana-mana strategi menghadapi risiko seperti kesilapan arah, kegagalan kehilangan berhenti dll. Ujian dan pengoptimuman berterusan diperlukan untuk menyesuaikan diri dengan pasaran yang berubah.


/*backtest
start: 2023-11-29 00:00:00
end: 2023-12-06 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © HPotter
//  Simple SMA strategy
//
// WARNING:
//      - For purpose educate only
//      - This script to change bars colors
//@version=4
strategy(title="Simple SMA Strategy Backtest", shorttitle="SMA Backtest", precision=6, overlay=true)
Resolution = input(title="Resolution", type=input.resolution, defval="D")
Source = input(title="Source", type=input.source, defval=close)
xSeries = security(syminfo.tickerid, Resolution, Source)
Length = input(title="Length", type=input.integer, defval=14, minval=2)
TriggerPrice = input(title="Trigger Price", type=input.source, defval=close)
BarColors = input(title="Painting bars", type=input.bool, defval=true)
ShowLine = input(title="Show Line", type=input.bool, defval=true)
UseAlerts = input(title="Use Alerts", type=input.bool, defval=false)
reverse = input(title="Trade Reverse", type=input.bool, defval=false)
pos = 0
xSMA = sma(xSeries, Length)
pos := iff(TriggerPrice > xSMA, 1,
         iff(TriggerPrice < xSMA, -1, nz(pos[1], 0)))
nRes = ShowLine ? xSMA : na
alertcondition(UseAlerts == true and pos != pos[1] and pos == 1, title='Signal Buy', message='Strategy to change to BUY')
alertcondition(UseAlerts == true and pos != pos[1] and pos == -1, title='Signal Sell', message='Strategy to change to SELL')
alertcondition(UseAlerts == true and pos != pos[1] and pos == 0, title='FLAT', message='Strategy get out from position')
possig = iff(reverse and pos == 1, -1,
           iff(reverse and pos == -1, 1, pos))
if (possig == 1)
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)
if (possig == 0)
    strategy.close_all()
nColor = BarColors ? possig == -1 ? color.red : possig == 1 ? color.green : color.blue : na 
barcolor(nColor)
plot(nRes, title='SMA', color=#00ffaa, linewidth=2, style=plot.style_line)

Lebih lanjut