Strategi Perdagangan Pembalikan Rata-rata Pergerakan Ganda


Tanggal Pembuatan: 2023-10-16 15:50:35 Akhirnya memodifikasi: 2023-10-16 15:50:35
menyalin: 1 Jumlah klik: 671
1
fokus pada
1617
Pengikut

Strategi Perdagangan Pembalikan Rata-rata Pergerakan Ganda

Ringkasan

Strategi perdagangan berbalik dua rata-rata dengan menghitung rata-rata bergerak sederhana dari dua periode yang berbeda dalam jangka pendek dan jangka panjang, dan menghasilkan sinyal perdagangan berdasarkan hubungan harga dengan rata-rata bergerak. Ketika melewati rata-rata jangka panjang di atas rata-rata jangka pendek, lakukan lebih banyak; ketika melewati rata-rata jangka panjang di bawah rata-rata jangka pendek, lakukan lebih banyak.

Prinsip Strategi

Strategi ini menggunakan parameter input untuk mengatur rata-rata bergerak sederhana dengan dua panjang siklus yang berbeda. Garis siklus pendek disebut garis cepat, dan garis siklus panjang disebut garis lambat. Garis cepat merespons perubahan harga lebih cepat, menangkap tren jangka pendek; Garis lambat merespons perubahan harga lebih lambat, memfilter kebisingan pasar jangka pendek, menangkap tren utama.

Secara khusus, strategi menghitung dua garis rata-rata melalui fungsi sma (), dan memberikan nilai yang dihitung ke xSMA () dan garis cepat. Strategi menggunakan harga dekat untuk menghitung rata-rata. Ketika harga dekat melewati xSMA, lakukan lebih banyak; ketika harga dekat melewati xSMA, lakukan kosong. Strategi juga menetapkan batasan jangka waktu perdagangan, dan hanya akan mengirimkan sinyal perdagangan dalam jangka waktu yang ditentukan.

Tetapkan stop loss untuk setiap transaksi dan stop loss segera setelah stop loss tercapai. Pada saat yang sama, strategi menunjukkan hubungan harga dengan garis lambat pada garis K melalui fungsi barcolor: garis K adalah hijau saat melakukan over; garis K adalah merah saat kosong; garis K adalah biru saat posisi kosong.

Analisis Keunggulan

  • Menggunakan sistem dua baris yang sama, Anda dapat secara efektif melacak tren dan menghindari tertipu oleh kebisingan pasar jangka pendek
  • Dengan menggunakan koordinat linier cepat dan lambat, dapat meningkatkan kualitas sinyal perdagangan.
  • Tetapkan Stop Loss dan Kendalikan Risiko Perdagangan Tunggal
  • Pembatasan jangka waktu perdagangan dapat menghindari fluktuasi besar yang disebabkan oleh peristiwa besar
  • Menandai sinyal perdagangan di K-Line, membentuk visual assist, meningkatkan intuisi

Analisis risiko

  • Sistem dua baris yang mudah menghasilkan lebih banyak sinyal palsu, perdagangan yang sering menyebabkan tekanan biaya transaksi
  • Parameter rata-rata harus disetel secara wajar, jika tidak, smoothing tidak akan bekerja dengan baik atau akan menimbulkan masalah waktu tunggu yang terlalu lama
  • Sistem rata-rata linier mengalami lag dan mungkin melewatkan titik balik tren
  • Stop loss yang ditetapkan mungkin terlalu arbitrer dan tidak dapat disesuaikan secara dinamis
  • Rentang waktu perdagangan terbatas mungkin melewatkan peluang perdagangan pada periode lain

Risiko dapat dikurangi dengan menyesuaikan parameter garis rata-rata, mengoptimalkan strategi stop loss, membatalkan batasan waktu atau mengatur periode waktu perdagangan yang lebih masuk akal. Anda juga dapat mempertimbangkan untuk menggabungkan indikator lain sebagai kondisi penyaringan untuk menghindari terlalu banyak sinyal palsu.

Arah optimasi

  • Kombinasi dari periode rata-rata yang berbeda dapat diuji untuk mencari parameter optimal
  • Pertimbangan untuk mengubah Stop Loss menjadi Tracking Dinamis, misalnya dengan ATR
  • Indikator lain seperti MACD, KD dan lain-lain dapat diperkenalkan sebagai sinyal filter
  • Anda dapat mengoptimalkan jangka waktu perdagangan untuk menangkap lebih banyak peluang perdagangan.
  • Strategi penembusan dapat dikombinasikan untuk mencari sinyal penembusan di dekat garis rata
  • Mekanisme out-of-the-box dinamis dapat dibuat, yang secara aktif menghentikan kerugian ketika harga memasuki kisaran

Meringkaskan

Strategi perdagangan berbalik dua garis rata secara keseluruhan adalah strategi pelacakan tren yang sederhana dan praktis. Ini memanfaatkan sepenuhnya garis rata yang halus untuk mengidentifikasi arah tren, dan bekerja dengan garis rata yang cepat dan lambat untuk menghasilkan sinyal perdagangan. Strategi ini mudah diimplementasikan, ide yang jelas, dan cocok untuk pemula.

Kode 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)