다중 지표 결합 정량 거래 전략

저자:차오장, 날짜: 2024-01-24 15:10:41
태그:

img

전반적인 설명

이 전략은 주식 가격의 세 가지 기술 지표인 RSI, StochRSI 및 볼링거 밴드를 사용하며, 양적 거래 전략에 대한 구매 및 판매 신호를 결정하기 위해 거래 시간과 방향 조건을 결합합니다.

원칙

RSI 지표가 하위 영역보다 작고 StochRSI K 라인이 D 라인의 위를 넘으면 구매 신호로 간주됩니다. 동시에 주가가 볼링거 밴드의 하위 라인보다 저렴하거나 볼링거 밴드의 하위 라인 아래를 넘으면 구매 기준으로 사용됩니다.

RSI 지표가 상위 영역을 초과하고 StochRSI K 라인이 D 라인 아래를 넘으면 판매 신호로 간주됩니다. 동시에 주가가 볼링거 밴드의 상위 라인보다 높거나 볼링거 밴드의 상위 라인을 뚫는 경우도 판매 기준으로 사용됩니다.

RSI 지표는 주가가 과잉 구매되거나 과잉 판매되었는지 판단하고, StochRSI는 주가 동력을 판단하고, 볼링거 밴드는 주가가 높은 수준과 저렴하게 실행되고 있는지 판단합니다. 여러 지표가 결합하여 구매 및 판매를 결정합니다.

이점 분석

이것은 지표의 폭이 넓고 포괄적 인 판단 기반을 가진 다중 지표 결합 전략입니다. 신호를 판단하기 전에 현재 주식 가격 또는 지표와 그 문턱 사이의 교차가 필요합니다. 이는 잘못된 신호에 특정 필터링 효과를 가지고 있습니다.

시간 조건 제한은 특정 기간 동안 더 큰 위험을 피하기 위해 명령을 내리기 전에 추가됩니다.

여러 지표의 판단을 결합함으로써 전략의 효과를 높이기 위해 더 많은 유형의 트렌드를 일치시킬 수 있습니다.

위험 분석

전략은 주로 세 가지 유형의 지표에 의존합니다. 지표가 잘못된 신호를 내면 전략은 손실을 초래합니다. 지표는 서로 확인해야하며 특정 지표에 완전히 의존 할 수 없습니다. 예를 들어, 특정 기간 동안 RSI 오스칠레이션은 잘못된 신호를 발산 할 가능성을 증가시킵니다.

전략에 추가된 시간 판단 조건도 유리한 시장 조건을 놓칠 수 있습니다.

예를 들어 심각한 과장 효과를 가진 조류를 선택하는 것이 부적절하다면 이러한 지표의 유효성이 크게 감소 할 것입니다. 이러한 지표에 대한 조류의 적용 여부는 연구되어야합니다.

최적화

  1. 손실을 제한하기 위해 최대 유출과 같은 위험 통제 조치를 강화하십시오.

  2. 선택 된 주식과 더 잘 일치하도록 지표의 매개 변수를 조정하십시오. 예를 들어 더 빠른 가격 변화를 감지하기 위해 RSI 매개 변수를 가속화하십시오.

  3. 필터링 메커니즘을 강화하고, 시장 조건의 변동을 피하기 위해 주가가 볼링거 밴드 중간에 있을 때 거래를 중단하는 것과 같은 것입니다. 그리고 격차 위험을 피하기 위해 오픈과 클로저 근처에서 주문을 중단하십시오.

  4. 주식 선택은 심각한 금융 사기 주식을 피하기 위해 기본 요소를 참조 할 수 있습니다. 산업 및 시장 가치 판단 또한 대액 주식을 선택하기 위해 추가 될 수 있습니다.

요약

이는 전형적인 다변수 기술 지표 전략으로 지표의 균형 잡힌 혼합과 광범위한 커버리지를 갖는다. 동시에, 주문 조건은 엄격하여 수익을 달성하기 위해 주식을 효과적으로 선택할 수 있으며, 마감량은 특정 범위 내에서 제어 될 것입니다. 지표와 매개 변수 최적화를 통해 시장에 더 잘 적응 할 수 있습니다. 동시에 전략의 안정성과 신뢰성을 더욱 향상시키기 위해 위험을 최소화하기 위해 위험 통제 메커니즘을 높일 수 있습니다.


/*backtest
start: 2023-12-24 00:00:00
end: 2024-01-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version= 2
strategy("RSI+STOCHRSI+BB Strategy", overlay=true)
lengthrsi = input(6)
overSold = input( 20 )
overBought = input( 70 )
price = close
vrsi = rsi(price, lengthrsi)

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)

bblength = input(50)
bbupmult =input(1.5,title="Multiplier for BB Upper Band")
bblowmult = input(1.5,title="Multiplier for BB Lower Band")

basis =  sma(close,bblength)

devup = bbupmult * stdev(close, bblength)
devlow = bblowmult * stdev(close, bblength)

upper = basis + devup
lower = basis - devlow
plot(basis, color=red)
p1 = plot(upper, color=blue)
p2 = plot(lower, color=blue)
fill(p1, p2)


yearfrom = input(2018)
yearuntil =input(2019)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  ( crossover(k,d)) and ( crossover(vrsi,overSold) or vrsi<overSold)  and (  (price<lower) or crossover(price,lower) ) ) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( ( crossunder(k,d) ) and ( (vrsi >overBought) or crossunder(vrsi,overBought) ) and  ( (price>upper) or crossunder(price,upper) )) 

    strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND",  comment="SELL")
else
    strategy.cancel(id="SELL")
    
    
    

더 많은