Strategi Perdagangan Pembalikan Purata Pergerakan Berganda


Tarikh penciptaan: 2023-10-16 15:50:35 Akhirnya diubah suai: 2023-10-16 15:50:35
Salin: 1 Bilangan klik: 671
1
fokus pada
1617
Pengikut

Strategi Perdagangan Pembalikan Purata Pergerakan Berganda

Gambaran keseluruhan

Strategi perdagangan berbalik dua garis rata-rata menghasilkan isyarat perdagangan berdasarkan hubungan harga dengan purata bergerak dengan mengira purata bergerak sederhana dari dua tempoh yang berbeza dalam jangka pendek dan jangka panjang. Apabila anda melewati garis rata-rata jangka panjang di atas garis rata-rata jangka pendek, anda akan melakukan lebih banyak; apabila anda melewati garis rata-rata jangka panjang di bawah garis rata-rata jangka pendek, anda akan melakukan lebih banyak.

Prinsip Strategi

Strategi ini menggunakan parameter input untuk menetapkan purata bergerak sederhana dengan dua panjang kitaran yang berbeza. Garis kitaran pendek dikenali sebagai garis cepat dan garis jangka panjang dikenali sebagai garis perlahan. Garis cepat bertindak balas terhadap perubahan harga dengan lebih cepat, menangkap trend jangka pendek. Garis perlahan bertindak balas terhadap perubahan harga dengan lebih perlahan, menyaring kebisingan pasaran jangka pendek, menangkap trend utama.

Secara khusus, strategi menggunakan fungsi sma () untuk mengira dua garis rata-rata dan memberikan nilai pengiraan kepada xSMA () dan garis cepat. Strategi menggunakan harga dekat untuk mengira garis rata-rata. Apabila harga dekat melewati xSMA, lakukan lebih banyak; apabila harga dekat melewati xSMA, lakukan kosong.

Tetapkan titik berhenti kehilangan untuk setiap perdagangan, dan segera berhenti kehilangan apabila titik berhenti kehilangan dicapai. Pada masa yang sama, strategi menunjukkan hubungan harga dengan garis lambat melalui fungsi barcolor pada garis K: apabila lebih banyak, garis K adalah hijau; apabila kosong, garis K adalah merah; apabila kosong, garis K adalah biru.

Analisis kelebihan

  • Menggunakan sistem dua hala yang sama, trend boleh dijejaki dengan berkesan dan mengelakkan gangguan pasaran jangka pendek
  • Penggunaan koordinat linear perlahan-lahan untuk meningkatkan kualiti isyarat dagangan
  • Tetapkan titik berhenti untuk mengawal risiko perdagangan tunggal
  • Mengehadkan tempoh masa perdagangan untuk mengelakkan turun naik yang ketara akibat peristiwa besar
  • Menandai isyarat dagangan dalam talian K, membentuk visual bantu, meningkatkan intuisi

Analisis risiko

  • Sistem dua hala mudah menghasilkan lebih banyak isyarat palsu, perdagangan yang kerap membawa tekanan kos transaksi
  • Parameter garis rata perlu ditetapkan dengan munasabah, jika tidak, kelancaran tidak berkesan atau terlalu banyak masa menunggu
  • Sistem garis rata mengalami kelewatan dan mungkin terlepas titik perubahan trend
  • Titik hentian pegangan mungkin terlalu arbitrar dan tidak boleh disesuaikan secara dinamik
  • Julat masa perdagangan terhad mungkin terlepas peluang perdagangan pada tempoh masa lain

Risiko boleh dikurangkan dengan menyesuaikan parameter garis rata-rata, mengoptimumkan strategi stop loss, membatalkan had masa atau menetapkan tempoh perdagangan yang lebih munasabah. Anda juga boleh mempertimbangkan untuk menggabungkan indikator lain sebagai syarat penapisan, untuk mengelakkan terlalu banyak isyarat palsu.

Arah pengoptimuman

  • Anda boleh menguji kombinasi dari pelbagai kitaran linear untuk mencari parameter terbaik
  • Anda boleh mempertimbangkan untuk menukar Stop Loss ke Tracking Dinamis, seperti berpaut dengan ATR
  • Indikator lain seperti MACD, KD dan lain-lain boleh diperkenalkan sebagai isyarat penapis
  • Anda boleh mengoptimumkan jangka masa perdagangan untuk menangkap lebih banyak peluang perdagangan
  • Anda boleh menggabungkan strategi penembusan dengan mencari isyarat penembusan berhampiran garis rata.
  • Mekanisme keluar dinamik boleh dibina untuk menghentikan kerugian secara aktif apabila harga memasuki selang

ringkaskan

Strategi perdagangan berbalik dua garis rata secara keseluruhan adalah strategi pengesanan trend yang mudah dan praktikal. Ia memanfaatkan sepenuhnya fungsi lancar garis rata untuk mengenal pasti arah trend, dan bekerjasama dengan garis rata yang cepat dan perlahan untuk menghasilkan isyarat perdagangan. Strategi ini mudah dilaksanakan, jelas, sesuai untuk pemula. Tetapi ia mungkin menghasilkan lebih banyak isyarat palsu dan masalah lag.

Kod sumber strategi
/*backtest
start: 2023-09-15 00:00:00
end: 2023-10-15 00:00:00
period: 4h
basePeriod: 15m
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
timeinrange(res, sess) => not na(time(res, sess)) ? 1 : 0

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)
TakeProfit = input(50, title="Take Profit", step=0.01)
StopLoss = input(20, title="Stop Loss", step=0.01)
UseTPSL = input(title="Use Take\Stop", type=input.bool, defval=false)
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)
timeframe = input(title="Time Frame", defval="15")
timerange = input(title="Time Range", defval="2300-0800")
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(pos[1] != pos,
         iff(reverse and pos == 1, -1,
           iff(reverse and pos == -1, 1, pos)), 0)
if (possig == 1 and timeinrange(timeframe, timerange))
    strategy.entry("Long", strategy.long)
if (possig == -1 and timeinrange(timeframe, timerange))
    strategy.entry("Short", strategy.short)
if (timeinrange(timeframe, timerange) == 0) 
    strategy.close_all()

if (UseTPSL)    
    strategy.close("Long", when = high > strategy.position_avg_price + TakeProfit, comment = "close buy take profit")
    strategy.close("Long", when = low < strategy.position_avg_price - StopLoss, comment = "close buy stop loss")
    strategy.close("Short", when = low < strategy.position_avg_price - TakeProfit, comment = "close buy take profit")
    strategy.close("Short", when = high > strategy.position_avg_price + StopLoss, comment = "close buy stop loss")
nColor = BarColors ? strategy.position_avg_price != 0  and pos == 1 ? color.green :strategy.position_avg_price != 0 and pos == -1 ? color.red : color.blue : na
barcolor(nColor)
plot(nRes, title='SMA', color=#00ffaa, linewidth=2, style=plot.style_line)