다중 요인 전략 조합


생성 날짜: 2023-10-26 15:18:34 마지막으로 수정됨: 2023-10-26 15:18:34
복사: 0 클릭수: 429
1
집중하다
1178
수행원

다중 요인 전략 조합

여기 당신이 제공한 거래 전략 코드에 기초하여 작성한 상세한 전략 분석 기사가 있습니다.

개요

이 전략은 여러 요소의 조합으로 이루어져 있으며, 다양한 요소의 장점을 활용하여 통합적인 거래 전략을 구축하는 것을 목표로 한다. 주요한 조합은 다음과 같은 몇 가지 요소이다:

  1. Stoch.RSI - 무작위 지수 평면 이동 평균
  2. RSI - 상대적으로 약한 지수
  3. 이중 전략 - RSI와 무작위 지표의 이중 전략
  4. CM Williams Vix Fix - 윌리엄스 변동률 수리, 시장 바닥을 찾아
  5. DMI - 트렌드 지표

여러 요소를 조합하여 각 요소의 장점을 발휘하여 더 많은 거래 기회를 얻을 수 있으며 단일 요소 의존의 위험을 줄일 수 있습니다.

전략 원칙

이 전략은 다음과 같은 몇 가지 기술적인 지표들을 주로 사용합니다.

  1. Stoch.RSI- RSI와 무작위 지표의 장점을 결합한 무작위 RSI 지표. RSI 값을 무작위 지표의 입력값으로 사용하여 시장이 과매매 또는 과매매 상태에 있는지 판단합니다. %K 선이 과매구역 아래에서 %D 선을 통과하면 더 많이; %K 선이 과매구역 위에서 %D 선을 통과하면 공백합니다.

  2. RSI- 상대적으로 강한 지수, 시장의 오버 바이 오버 셀 상태를 판단한다. RSI는 70보다 크면 오버 바이 지역이며, 30보다 작으면 오버 셀 지역이다. RSI는 30-70 영역에서 흔들리며, 시장이 가로 수직 정리 상태를 나타냅니다.

  3. Double Strategy- 무작위 지표와 RSI를 이용한 이중 전략. 무작위 지표 %K가 오버셀 영역에서 %D선을 통과하고 RSI가 오버셀 영역에서 %D선을 통과하면 더 많이 하고, 무작위 지표%K가 오버빌 영역에서 %D선을 통과하고 RSI가 오버빌 영역에서 %D선을 통과하면 더 많이 한다.

  4. CM Williams Vix Fix- 윌리엄스 변동률 수리 지표, 최근 기간 동안의 가격 변동률의 백분율 범위를 계산하여 시장이 역전 지점에 있는지 판단합니다. 경계를 초과하면 역전 신호입니다.

  5. DMI- 트렌드 지표, +DI와 -DI의 차이를 계산하여 시장의 트렌드 방향을 판단하기 위해. ADX 지수는 트렌드의 강도를 판단하기 위해 사용될 수 있다.

이러한 지표들의 각각의 장점을 종합적으로 활용하여 시장의 추세와 매매점을 다양한 관점에서 판단하면 전략의 안정성과 성공률을 높일 수 있다.

전략적 이점

  • 이 모든 것이 다중 요소의 조합으로 이루어져 있고, 다양한 요소들이 더 길어지고, 더 짧아지고, 더 포괄적입니다.
  • 트렌드, 역전 등 다양한 종류의 거래 신호를 포함하고, 더 많은 기회를 제공합니다.
  • 과매매 지역을 판단하고, 극단적 상황의 발생과 역전을 적시에 발견할 수 있도록 한다.
  • 다른 시장 환경에 더 잘 적응할 수 있도록 파라미터를 최적화한 지표 설정;
  • 트렌드 지표와 함께 트렌드 강도를 판단하여 역동적인 거래를 피하십시오.

위험 분석

  • 다중 요소의 조합, 전체적인 전략의 강도가 검증되어야 합니다.
  • 일부 지표의 동질화 문제로 인해 조합을 더 최적화할 수 있습니다.
  • 다공간 신호가 동시에 발생했을 때, 전략적 방향의 선택 원칙을 명확히 해야 한다.
  • 매개 변수 설정은 엄격한 재측정 최적화를 필요로 하며, 매개 변수를 임의로 변경하는 것은 적합하지 않다.
  • 장기적인 효과는 좋지 않을 수 있으며, 적절한 시기에 퇴출해야 한다.

최적화 방향

  • 포트폴리오에 포함된 지표들을 추가적으로 필터링하여 고유한 요소들을 유지합니다.
  • 각 지표의 파라미터 설정을 최적화하여 목표 시장에 더 적합하게 만듭니다.
    • 명확한 출입 및 출입 원칙을 구축하고,
  • 위험을 통제하기 위해 스톱로스, 이윤 회수와 같은 방법을 사용한다.
  • 다른 포지션 보유 시간에 대한 성과에 대한 영향을 테스트하십시오.

요약하다

이 전략은 여러 가지 기술 지표의 장점을 통합하여 Stoch.RSI, RSI, Double Strategy, CM Williams Vix Fix 및 DMI와 같은 요소를 통해 거래 신호를 형성합니다. 그것은 더 포괄적이고 안정적인 판단 근거를 제공하며 전략 파라미터를 최적화하는 것도 더 복잡합니다.

전략 소스 코드
/*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")