Strategi Perdagangan Berbilang Tempoh Penunjuk Pergerakan dan Sisihan


Tarikh penciptaan: 2023-12-26 10:13:34 Akhirnya diubah suai: 2023-12-26 10:13:34
Salin: 0 Bilangan klik: 353
1
fokus pada
1166
Pengikut

Strategi Perdagangan Berbilang Tempoh Penunjuk Pergerakan dan Sisihan

Gambaran keseluruhan

Strategi ini menggabungkan tiga petunjuk pergerakan, pita Brin dan indikator yang agak kuat untuk perdagangan saham dalam pelbagai kitaran. Ia membeli dengan mengambil kira tiga syarat: rata-rata bergerak perlahan di atas rata-rata bergerak cepat, indikator yang agak kuat di bawah 50 dan harga penutupan di bawah garis tengah pita Brin. Ia menjual dengan mengambil kira dua syarat: indikator yang agak kuat di atas 70 dan harga penutupan di atas jalur pita Brin.

Prinsip Strategi

Strategi ini digunakan untuk membuat keputusan menggunakan tiga indikator utama. Pertama, indikator MACD, yang terdiri daripada purata bergerak dua kitaran yang berbeza, cepat dan perlahan, yang menghasilkan isyarat pembelian ketika garis cepat melintasi garis perlahan. Kedua, indikator Brin, yang terdiri daripada tiga garis di tengah, atas dan bawah.

Pada masa perdagangan tertentu, strategi ini pertama-tama memerlukan rata-rata bergerak perlahan melalui rata-rata bergerak cepat, yang menunjukkan peningkatan momentum kenaikan harga saham, boleh dibeli. Di samping itu, memerlukan RSI di bawah 50, yang menunjukkan harga saham mungkin berada di kawasan oversold, memasuki masa membeli.

Dalam hal halangan dan hentian, apabila RSI lebih tinggi daripada 70, ini menunjukkan bahawa harga saham mungkin berada di kawasan yang lebih banyak dibeli, menunjukkan bahawa momentum kenaikan turun, dan anda harus mempertimbangkan hentian. Selain itu, apabila harga penutupan lebih tinggi daripada Bollinger Bands, ini juga menunjukkan bahawa harga saham mungkin terlalu tinggi, ada risiko untuk kembali, dan anda harus berhenti dengan betul.

Kelebihan Strategik

Strategi ini menggunakan gabungan tiga indikator iaitu purata bergerak, pita Brin dan RSI untuk menentukan masa membeli dan menjual dengan lebih tepat. Kelebihan spesifiknya ialah:

  1. Rata-rata bergerak dapat menentukan momentum kenaikan harga saham, Brin belt track dapat mencari titik beli di bahagian bawah harga saham, RSI dapat mencegah pembelian saham tinggi. Ketiga-tiga gabungan dapat menentukan masa pembelian yang lebih baik pada pertengahan kenaikan harga saham.

  2. Gabungan RSI dan Brin di landasan yang baik untuk memegang harga saham di puncak, mengelakkan overbought, dan menghentikan penurunan tepat pada masanya.

  3. Menggunakan pertimbangan pelbagai kitaran, peluang perdagangan dapat dirampas pada pelbagai peringkat untuk memperluaskan ruang keuntungan.

  4. Logik perdagangan strategi ini mudah difahami dan mudah difahami, sesuai untuk pelaburan jangka panjang.

Risiko Strategik

Walaupun strategi ini mengintegrasikan pelbagai penilaian penunjuk untuk meningkatkan ketepatan keputusan perdagangan, terdapat risiko utama:

  1. Pengaturan parameter risiko. Parameter untuk purata bergerak, Brin dan RSI perlu disesuaikan dengan keadaan sebenar, jika parameter tidak ditetapkan dengan betul, ia akan menjejaskan prestasi perdagangan.

  2. Dalam pasaran beruang, harga saham jatuh lebih cepat, dan langkah-langkah hentikan kerugian strategi ini mungkin tidak berkesan.

  3. Risiko saham tunggal. Strategi ini lebih sesuai untuk portfolio, risiko saham tunggal masih wujud dan memerlukan pelaburan yang disebarluaskan.

  4. Frekuensi dagangan mungkin terlalu tinggi. Jika parameter ditetapkan dengan betul, strategi ini mungkin sering berdagang. Ini akan meningkatkan kos transaksi dan cukai.

Penyelesaian:

  1. Parameter harus disesuaikan dengan data pengesanan semula untuk membuat frekuensi isyarat indikator lebih sesuai.

  2. Anda boleh menyesuaikan kitaran purata bergerak untuk mengurangkan frekuensi pembelian dan mengurangkan kerugian.

  3. Meningkatkan kepelbagaian pelaburan dan mengurangkan risiko saham tunggal melalui pelaburan yang terpelbagai.

  4. Mempermudahkan pembelian dan penangguhan dengan sewajarnya, mengurangkan kekerapan transaksi.

Arah pengoptimuman strategi

Strategi ini masih mempunyai ruang untuk dioptimumkan:

  1. Lebih banyak penapis petunjuk boleh diperkenalkan, seperti petunjuk jumlah transaksi, untuk memastikan jumlah transaksi meningkat semasa pembelian, meningkatkan ketepatan keputusan.

  2. Anda boleh menambah modul pengurusan kedudukan untuk menyesuaikan kedudukan secara dinamik mengikut keadaan pasaran.

  3. Ia boleh digabungkan dengan algoritma pembelajaran mendalam untuk mengoptimumkan parameter secara automatik dengan melatih banyak data.

  4. Anda boleh menambah lebih banyak penghakiman kitaran masa untuk memperluaskan aplikasi.

ringkaskan

Strategi ini secara keseluruhan logiknya jelas, mudah difahami, penilaian pelbagai indikator digunakan secara menyeluruh, sehingga mengurangkan isyarat palsu. Dengan mengoptimumkan parameter dan menambahkan lebih banyak indikator teknikal, anda dapat meningkatkan lagi ketepatan keputusan, meningkatkan kekuatan strategi. Strategi ini lebih sesuai untuk pelaburan jangka panjang dan menengah, dan juga boleh digunakan untuk perdagangan kuantitatif.

Kod sumber strategi
/*backtest
start: 2023-11-25 00:00:00
end: 2023-12-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//
//@author Alorse
//@version=4
strategy("MACD + BB + RSI [Alorse]", shorttitle="BB + MACD + RSI [Alorse]", overlay=true, pyramiding=0, currency=currency.USD, default_qty_type=strategy.percent_of_equity, initial_capital=1000, default_qty_value=20, commission_type=strategy.commission.percent, commission_value=0.01) 

txtVer = "1.0.1"
version = input(title="Version", type=input.string, defval=txtVer, options=[txtVer], tooltip="This is informational only, nothing will change.")
src = input(title="Source", type=input.source, defval=close)

// MACD
fast_length = input(title="Fast Length", type=input.integer, defval=12, group="MACD")
slow_length = input(title="Slow Length", type=input.integer, defval=26, group="MACD")
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9, group="MACD")
sma_source = input(title="Oscillator MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"], group="MACD")
sma_signal = input(title="Signal Line MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"], group="MACD")
fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length)

// Bollinger Bands
bbGroup = "Bollindger Bands"
length = input(20, title="Length", group=bbGroup)
mult = input(2.0, title="StdDev", minval=0.001, maxval=5, group=bbGroup)

basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev

// RSI
rsiGroup = "RSI"
lenRSI = input(14, title="Length", minval=1, group=rsiGroup)
// lessThan = input(50, title="Less than", minval=1 , maxval=100, group=rsiGroup)
RSI = rsi(src, lenRSI)

// Strategy Conditions
buy = crossover(macd, signal) and RSI < 50 and close < basis
sell = RSI > 70 and close > upper


// Stop Loss
slGroup = "Stop Loss"
useSL = input(false, title="╔══════   Enable   ══════╗", group=slGroup, tooltip="If you are using this strategy for Scalping or Futures market, we do not recommend using Stop Loss.")
SLbased = input(title="Based on", type=input.string, defval="Percent", options=["ATR", "Percent"], group=slGroup, tooltip="ATR: Average True Range\nPercent: eg. 5%.")
multiATR = input(10.0, title="ATR   Mult", type=input.float, group=slGroup, inline="atr")
lengthATR = input(14, title="Length", type=input.integer, group=slGroup, inline="atr")
SLPercent = input(10, title="Percent", type=input.float, group=slGroup) * 0.01

longStop = 0.0
shortStop = 0.0

if SLbased == "ATR"
    longStop := valuewhen(buy, low, 0) - (valuewhen(buy, rma(tr(true), lengthATR), 0) * multiATR)
    longStopPrev = nz(longStop[1], longStop)
    longStop := close[1] > longStopPrev ? max(longStop, longStopPrev) : longStop

    shortStop := (valuewhen(sell, rma(tr(true), lengthATR), 0) * multiATR) + valuewhen(sell, high, 0)
    shortStopPrev = nz(shortStop[1], shortStop)
    shortStop := close[1] > shortStopPrev ? max(shortStop, shortStopPrev) : shortStop
if SLbased == "Percent"
    longStop  := strategy.position_avg_price * (1 - SLPercent)
    shortStop := strategy.position_avg_price * (1 + SLPercent)

strategy.entry("Long", true, when=buy)
strategy.close("Long", when=sell, comment="Exit")

if useSL
    strategy.exit("Stop Loss", "Long", stop=longStop)