Portfolio strategi pelbagai faktor


Tarikh penciptaan: 2023-10-26 15:18:34 Akhirnya diubah suai: 2023-10-26 15:18:34
Salin: 0 Bilangan klik: 429
1
fokus pada
1178
Pengikut

Portfolio strategi pelbagai faktor

Ini adalah analisis strategi terperinci yang saya buat berdasarkan kod strategi dagangan yang anda sediakan:

Gambaran keseluruhan

Strategi ini terdiri daripada beberapa kombinasi faktor yang bertujuan untuk memanfaatkan kelebihan faktor yang berbeza untuk membina strategi perdagangan yang komprehensif. Ia terdiri daripada beberapa faktor berikut:

  1. Stoch.RSI - purata bergerak rata-rata indeks rawak
  2. RSI - Indeks Kekuatan Relatif
  3. Double Strategy - Strategi berganda untuk penunjuk rawak dan RSI
  4. CM Williams Vix Fix - Pembaikan kadar turun naik Williams, mencari bahagian bawah pasaran
  5. DMI - Penunjuk Trend

Dengan menggabungkan pelbagai faktor, anda boleh memanfaatkan kelebihan setiap faktor, mendapatkan lebih banyak peluang perdagangan, dan mengurangkan risiko bergantung pada faktor tunggal.

Prinsip Strategi

Strategi ini menggunakan beberapa indikator teknikal:

  1. Stoch.RSI- RSI acak, yang menggabungkan kelebihan RSI dan acak. Ia menggunakan nilai RSI sebagai input acak untuk menentukan sama ada pasaran berada dalam keadaan overbought atau oversold. Apabila garis% K melintasi garis% D dari bawah kawasan overbought, buat lebih banyak; apabila garis% K melintasi garis% D dari atas kawasan oversold, buat kosong.

  2. RSI- Indeks yang agak kuat, menilai keadaan pasaran yang terlalu banyak dibeli dan dijual. RSI lebih besar daripada 70 adalah kawasan yang terlalu banyak dibeli, dan lebih kecil daripada 30 adalah kawasan yang terlalu banyak dijual. RSI bergoyang di antara 30-70, yang mewakili pasaran dalam keadaan menyusun di sebelah kiri.

  3. Double Strategy- Strategi ganda yang digabungkan dengan penggunaan penunjuk rawak dan RSI. Apabila penunjuk rawak% K melintasi garis% D dari bawah kawasan oversold, dan RSI melintasi dari bawah kawasan oversold, buat lebih banyak; Apabila penunjuk rawak% K melintasi garis% D dari atas kawasan oversold, dan RSI melintasi dari kawasan oversold, buat kosong.

  4. CM Williams Vix Fix- Penunjuk pemulihan kadar turun naik Williams, yang menilai sama ada pasaran berada di titik pembalikan dengan mengira julat peratusan kadar turun naik harga dalam tempoh yang baru-baru ini. Apabila melebihi paras paras paras, ia memberi isyarat pembalikan.

  5. DMI- Indikator trend, untuk menilai arah trend pasaran dengan mengira perbezaan + DI dan - DI. Indeks ADX boleh digunakan untuk menentukan kekuatan trend.

Dengan menggunakan kelebihan masing-masing indikator ini secara bersepadu, anda dapat menilai trend pasaran dan titik jual beli dari sudut yang berbeza, yang dapat meningkatkan kestabilan dan kadar kejayaan strategi.

Kelebihan Strategik

  • Ia adalah gabungan pelbagai faktor, yang merangkumi faktor-faktor yang berbeza, dan lebih komprehensif.
  • Ini adalah satu-satunya cara untuk meningkatkan peluang perdagangan yang lebih besar dengan menggunakan pelbagai jenis isyarat perdagangan seperti trend, reversal dan sebagainya.
  • Pada masa yang sama, menilai kawasan overbought dan oversold, serta mengesan pembentukan dan pembalikan keadaan melampau dalam masa yang tepat;
  • Menerapkan parameter yang dioptimumkan untuk menetapkan penunjuk yang lebih sesuai dengan keadaan pasaran yang berbeza;
  • Menggunakan indikator trend untuk menilai kekuatan trend dan mengelakkan dagangan berlawanan arah.

Analisis risiko

  • Ia adalah gabungan pelbagai faktor, dan strategi yang perlu disahkan secara keseluruhan.
  • Terdapat beberapa masalah yang berkaitan dengan pengiktirafan, yang boleh mengoptimumkan lagi kombinasi.
  • Apabila terdapat isyarat berbilang ruang pada masa yang sama, anda perlu menentukan prinsip untuk memilih arah strategi.
  • Tetapan parameter memerlukan pengoptimuman pengemasan semula yang ketat, tidak sesuai untuk mengubah parameter secara bebas;
  • Ia mungkin tidak berkesan dalam jangka masa panjang, dan perlu dihentikan pada masa yang tepat.

Arah pengoptimuman

  • Menyaring lebih lanjut kepada petunjuk dalam portfolio, mengekalkan faktor-faktor yang unik;
  • Mengoptimumkan parameter untuk setiap indikator supaya lebih sesuai dengan pasaran sasaran;
    • Menubuhkan dasar kemasukan dan keluar yang jelas;
  • Kaedah-kaedah seperti penangguhan kerugian dan penarikan semula keuntungan untuk mengawal risiko;
  • Uji pengaruh tempoh pegangan yang berbeza terhadap prestasi.

ringkaskan

Strategi ini menggabungkan kelebihan pelbagai petunjuk teknikal untuk membentuk isyarat perdagangan melalui faktor-faktor seperti Stoch.RSI, RSI, Double Strategy, CM Williams Vix Fix dan DMI. Ia menyediakan asas penghakiman yang lebih komprehensif dan stabil, tetapi juga menjadikan pengoptimuman parameter strategi lebih rumit.

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


     //////////////////////////////////////////////////////////////////////
    ////  STOCHASTIC_RSI+RSI+DOUBLE_STRATEGY+CM_WILLIAMS_VIX_FIX+DMI  ////
   //////////////////////////////////////////////////////////////////////


//  This is a simple combination of integrated and published scripts, useful 
//  if you don't have a PRO account and want to bypass the 3 indicator limit. 
//  It includes:
//  1) Stoch.RSI
//  2) Relative strenght index
//  3) Stochastic + RSI, Double Strategy (by ChartArt)
//  4) CM_Williams_Vix_Fix Finds Market Bottoms (by ChrisMoody)
//  5) Directional Movement Index (DMI)
//  For more details about 3) and 4) check the original scripts.


//@version=3

strategy(title="Stoch.RSI+RSI+DoubleStrategy+CMWilliamsVixFix+DMI", shorttitle="Stoch.RSI+RSI+DoubleStrategy+CMWilliamsVixFix+DMI")


///STOCH.RSI///
smoothK = input(3, minval=1, title="Stochastic %K Smoothing")
smoothD = input(3, minval=1, title="Stochastic %K Moving Average")
lengthRSI = input(14, minval=1, title="RSI Lenght")
lengthStoch = input(14, minval=1, title="Stochastic Lenght")
RSIprice = close
rsi1 = rsi(RSIprice, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
plot(k, color=blue, linewidth=2)
plot(d, color=silver, linewidth=2)
h0 = hline(80)
h1 = hline(20)
fill(h0, h1, color=purple, transp=78)


///RSI///
up = rma(max(change(RSIprice), 0), lengthRSI)
down = rma(-min(change(RSIprice), 0), lengthRSI)
rsi2 = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi2, color=fuchsia, linewidth=2)
// band0 = hline(70, linestyle=dotted)
// band1 = hline(30, linestyle=dotted)
// fill(band0, band1, color=purple, transp=100)


///OVERBOUGHT-OVERSOLD STRATEGY///
StochOverBought = input(80, title="Stochastic overbought condition")
StochOverSold = input(20, title="Stochastic oversold condition")
ks = sma(stoch(close, high, low, lengthStoch), smoothK)
ds = sma(k, smoothD)
RSIOverBought = input( 70  , title="RSI overbought condition")
RSIOverSold = input( 30  , title="RSI oversold condition")
vrsi = rsi(RSIprice, lengthRSI)
if (not na(ks) and not na(ds))
    if (crossover(ks,ds) and k < StochOverSold)
        if (not na(vrsi)) and (crossover(vrsi, RSIOverSold))
            strategy.entry("LONG", strategy.long, comment="LONG")
if (crossunder(ks,ds) and ks > StochOverBought)
    if (crossunder(vrsi, RSIOverBought))
        strategy.entry("SHORT", strategy.short, comment="SHORT")
 
 
///CM WILLIAMS VIX FIX///
pd = input(22, title="LookBack Period Standard Deviation High")
bbl = input(20, title="Bollinger Band Length")
mult = input(2.0    , minval=1, maxval=5, title="Bollinger Band Standard Devaition Up")
lb = input(50  , title="Look Back Period Percentile High")
ph = input(.85, title="Highest Percentile - 0.90=90%, 0.95=95%, 0.99=99%")
pl = input(1.01, title="Lowest Percentile - 1.10=90%, 1.05=95%, 1.01=99%")
hp = input(false, title="Show High Range (Based on Percentile and LookBack Period)?")
sd = input(false, title="Show Standard Deviation Line?")
wvf = ((highest(close, pd)-low)/(highest(close, pd)))*100
sDev = mult * stdev(wvf, bbl)
midLine = sma(wvf, bbl)
lowerBand = midLine - sDev
upperBand = midLine + sDev
rangeHigh = (highest(wvf, lb)) * ph
rangeLow = (lowest(wvf, lb)) * pl
col = wvf >= upperBand or wvf >= rangeHigh ? lime : gray
plot(hp and rangeHigh ? rangeHigh : na, title="Range High Percentile", style=line, linewidth=4, color=orange)
plot(hp and rangeLow ? rangeLow : na, title="Range High Percentile", style=line, linewidth=4, color=orange)
plot(wvf, title="Williams Vix Fix", style=columns, linewidth = 4, color=col, transp=85)
plot(sd and upperBand ? upperBand : na, title="Upper Band", style=line, linewidth = 3, color=aqua)


///DIRECTIONAL MOVEMENT INDEX///
len3 = input(14, minval=1, title="DI Length")
lensig3 = input(14, title="ADX Smoothing", minval=1, maxval=50)
up3 = change(high)
down3 = -change(low)
plusDM3 = na(up3) ? na : (up3 > down3 and up3 > 0 ? up3 : 0)
minusDM3 = na(down3) ? na : (down3 > up3 and down3 > 0 ? down3 : 0)
trur3 = rma(tr, len3)
plus3 = fixnan(100 * rma(plusDM3, len3) / trur3)
minus3 = fixnan(100 * rma(minusDM3, len3) / trur3)
sum3 = plus3 + minus3
adx3 = 100 * rma(abs(plus3 - minus3) / (sum3 == 0 ? 1 : sum3), lensig3)
plot(plus3, color=green, style=circles, linewidth=2, title="+DI")
plot(minus3, color=red, style=circles, linewidth=2, title="-DI")
plot(adx3, color=aqua, style=circles, linewidth=3, title="ADX")