Strategi ini menggunakan RSI, MACD rata-rata, Bollinger Bands, dan Factor Stop, untuk melakukan perdagangan bergilir dengan pelbagai faktor. Strategi ini terlebih dahulu menilai sama ada beberapa petunjuk teknikal mengeluarkan isyarat membeli atau menjual pada masa yang sama, dan jika ya, melakukan pembelian atau penjualan yang sesuai.
Strategi ini terdiri daripada beberapa bahagian:
Faktor penghakiman
Masuk dan keluar
Pengoptimuman Strategi
Strategi ini tidak hanya mempertimbangkan satu petunjuk teknikal, tetapi menggabungkan pelbagai faktor seperti RSI, MACD, dan siri TD untuk mengurangkan isyarat palsu yang disebabkan oleh satu petunjuk dan meningkatkan ketepatan kemasukan.
Indikator seperti RSI, MACD mempunyai ciri-ciri dinamik yang lebih jelas, yang dapat menangkap perubahan trend dalam harga saham. Indikator ini lebih sensitif terhadap perubahan berbanding dengan indikator yang mengikuti trend seperti garis rata.
Hentian bergerak boleh berhenti dengan keadaan pergerakan, lebih baik untuk mengunci keuntungan. Tetapan berhenti kerugian boleh mengawal kerugian tunggal.
Kaedah ini menggabungkan petunjuk teknikal yang biasa digunakan dan mempunyai beberapa kepelbagaian. Peraturan relatif sederhana dan jelas, mudah difahami dan dikendalikan.
Strategi ini adalah strategi berbalik arah yang menggunakan pergerakan pasaran berbalik arah. Dalam pasaran lembu, penggunaan strategi ini mungkin sering mengalami kerugian dan tidak berkesan.
Jika parameter ditetapkan terlalu sensitif, frekuensi dagangan boleh menjadi terlalu tinggi, meningkatkan kos dagangan dan kehilangan titik slip.
Strategi ini bergantung kepada pelbagai petunjuk yang sama arah isyarat, tetapi kadang-kadang setiap petunjuk juga mungkin berbeza, sehingga menghantar isyarat yang salah.
Tetapan titik berhenti tetap mungkin akan ditembusi, anda boleh menetapkan berhenti dinamik atau mempertimbangkan pertukaran saham untuk mengelakkan risiko tersebut.
Anda boleh menguji parameter RSI dan parameter kitaran garis purata untuk mencari kombinasi yang lebih rendah daripada frekuensi perdagangan.
Ia boleh digabungkan dengan ciri-ciri statistik saham sendiri, seperti kadar turun naik, kecairan dan sebagainya untuk menetapkan parameter dan meningkatkan kecekapan strategi.
Parameter strategi boleh disesuaikan dengan indeks panik seluruh pasaran seperti VIX untuk mengurangkan frekuensi perdagangan semasa panik pasaran.
Anda boleh menguji kitaran pegangan yang berlainan untuk menilai kesan pegangan jangka panjang atau perubahan jangka pendek terhadap kesan strategi.
Kaedah yang lebih maju untuk menghalang kerosakan brek dinamik boleh dikaji untuk mengukur kesannya.
Strategi ini mengambil kira pelbagai petunjuk teknikal secara menyeluruh, menggunakan stop loss bergerak untuk mengunci keuntungan dan mengawal risiko, dengan memastikan ketepatan kemasukan yang lebih tinggi. Strategi ini ringkas, mudah difahami, dan dapat meningkatkan keberkesanan dengan mengoptimumkan parameter dan memilih indikator. Tetapi strategi ini lebih sesuai untuk keadaan pasaran berlawanan dan goyah, dan kesannya mungkin kurang baik dalam keadaan kenaikan yang berterusan.
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("RSI, TD Seq, MACD, BB Strategy - Calculation Trailing Profit",overlay=true)
RSIDifference = input(-7, minval=-50, maxval=50, title="RSI Difference")
TD = close > close[4] ?nz(TD[1])+1:0
TS = close < close[4] ?nz(TS[1])+1:0
TDUp = TD - valuewhen(TD < TD[1], TD , 1 )
TDDn = TS - valuewhen(TS < TS[1], TS , 1 )
TDcheckUP = iff(TD == 2, true, false)
TDCheckDOWN = iff(TS == 2, true, false)
[_, _, histLine] = macd(close, 12, 26, 9)
MACDCheckDown = iff(histLine > 0 and histLine[1] > 0 and histLine[2] > 0 and histLine[3] > 0 and histLine[4] > 0, true, false)
MACDCheckUp = iff(histLine < 0 and histLine[1] < 0 and histLine[2] < 0 and histLine[3] < 0 and histLine[4] < 0, true, false)
RSICal = rsi(close, 14)
RSICalNewUp = 50 + RSIDifference
RSICalNewDown = 50 - RSIDifference
RSICheckUp = iff(RSICal <= RSICalNewUp, true, false)
RSICheckDown = iff(RSICal >= RSICalNewDown, true, false)
basis = sma(close, 20)
dev = 2 * stdev(close, 20)
upperBB = basis + dev
lowerBB = basis - dev
BBCheckUp = iff(close > upperBB, true, false)
BBCheckDown = iff(close < lowerBB, true, false)
//BBCheckUp = false
//BBCheckDown = false
BuyCheck = iff(TDcheckUP == true and MACDCheckUp == true and RSICheckUp == true and BBCheckUp == false, true, false)
SellCheck = iff(TDCheckDOWN == true and MACDCheckDown == true and RSICheckDown == true and BBCheckDown == false, true, false)
ProfitStratA = input(50, minval=0, maxval=10000, title="Profit", step=0.5)
ProfitTrailingA = input(10, minval=0, maxval=10000, title="Profit", step=0.5)
useStopLoss = input(false, title="Use Stop Loss?")
LossstratA = input(145, minval=0, maxval=10000, title="Stop Loss", step=0.5)
colB = input(100, minval=0, maxval=100, title="0-show / 100-hide Strategy", step=100)
ProfitStrat = ProfitStratA * 10
ProfitTrailing = ProfitTrailingA * 10
Lossstrat = useStopLoss ? LossstratA * 10 : 1000000
if (strategy.position_size > 0)
strategy.exit("BuyClose", "Buy", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat)
if (strategy.position_size < 0)
strategy.exit("SellClose", "Sell", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat)
if (BuyCheck == true and strategy.position_size == 0)
strategy.entry("Buy", strategy.long, comment="Long Entry")
if (SellCheck == true and strategy.position_size == 0)
strategy.entry("Sell", strategy.short, comment="Short Entry")
plotshape(BuyCheck, color=blue, transp=colB, style=shape.arrowup, text="Buy\n", location=location.belowbar)
plotshape(SellCheck, color=orange, transp=colB, style=shape.arrowdown, text="Sell\n", location=location.abovebar)