이 전략은
이 전략은 주로 다음과 같은 원칙에 기초합니다.
지난 6개월 동안 가장 높은 RSI 지수가 90%를 넘어서 65%를 넘으면 판매 신호가 생성됩니다.
지난 6개월 동안 가장 낮은 RSI 인덱스가 50% 이하로 떨어지고 그 다음 가장 낮은 지점에서 2% 이상 반등하면 구매 신호가 생성됩니다.
구체적으로, 판매 논리는 다음과 같습니다:
If (Highest RSI in past 6 months > 90% AND Current RSI < 65%)
Then Sell
구매 논리는 다음과 같습니다.
If (Lowest RSI in past 6 months < 50% AND RSI bounces >2% from lowest point)
Then Buy
위 판매 및 구매 규칙은 잘 알려진 양성 전략가인 PlanB의 기사에서 왔습니다. 전략은 더 많은 거래자가이 거래 전략의 효과를 검증하기 위해 그의 연구 결과를 복제하는 것을 목표로합니다.
이 거래 전략은 다음과 같은 주요 장점을 가지고 있습니다.
유일한 기술 지표로 RSI를 사용하는 것은 복잡성을 줄입니다.
라이브 거래 검증을 위해 이해하기 쉬운 명확한 구매 및 판매 규칙.
구매 및 판매 신호는 장기적인 최고/최하위 및 단기적인 반등/파괴 시장 정보를 모두 포함합니다.
이 전략은 유명한 quant PlanB의 연구를 참조하여 그의 결론을 독립적으로 확인할 수 있습니다.
비교적 간단한 규칙의 초보 전략으로서 양자 거래 기술을 배양하는 데 도움이 됩니다.
이 거래 전략에는 몇 가지 주요 위험도 있습니다.
RSI에만 의존하면 더 복잡한 시장 체제를 처리 할 수 없습니다. RSI 자체는 또한 잘못된 신호를 제공합니다.
고정 매개 변수 설정은 거래를 놓칠 수 있거나 지연된 신호를 줄 수 있습니다. 시장 주기에 적응하기 위해 최적화가 필요합니다.
독립적인 최적화 없이 PlanB를 맹목적으로 따르는 것은 실전 성능이 떨어질 위험이 있습니다.
스톱 로스 (stop loss) 또는 이윤을 취하지 않는 원시 구매/판매 규칙은 라이브 거래에서 큰 손실을 초래할 수 있습니다.
아래의 최적화는 위험을 줄이고 라이브 성능을 향상시키는 데 도움이 될 수 있습니다:
부차 지표를 추가하여 잘못된 RSI 신호를 피합니다.
다른 사이클 특성에 대한 매개 변수를 최적화합니다.
위험 통제를 위한 스톱 로스/프로피트 메커니즘을 추가합니다.
안정성을 보장하기 위해 전략 매개 변수를 독립적으로 훈련하십시오.
라이브 성능을 향상시키기 위해 다음과 같은 차원에서 최적화를 수행 할 수 있습니다.
2차 지표를 추가합니다.: RSI에만 의존하면 잘못된 신호가 발생할 수 있습니다. 복합 판단을 위해 KD, MACD와 같은 지표를 포함하고 정확도를 향상시킵니다.
동적 매개 변수 최적화: 현재 매개 변수 값은 고정되어 있으며 시장 주기에 적응하지 못합니다. 파동적 최적화 모듈을 도입하여 실질적으로 향상된 성능을 위해 매개 변수를 조정합니다.
손해 중지/이익 취득: 현재 리스크 관리 기능이 부족합니다. 후속 스톱 손실을 추가하고, 수익점을 이동하면 단일 거래 손실을 효과적으로 제어하고 이익을 잠금 할 수 있습니다.
독립적인 매개 변수 훈련: 확인 없이 PlanB 문서 매개 변수를 직접 사용합니다. 기계 학습을 적용하여 역사 데이터를 기반으로 최적의 매개 변수 조합을 찾습니다.
포트폴리오 최적화: 여러 가지 간단한 전략을 결합하면 전반적인 안정성과 위험 조정 수익률이 향상됩니다.
/*backtest start: 2022-11-20 00:00:00 end: 2023-11-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © fillippone //@version=4 strategy("PlanB Quant Investing 101", shorttitle="PlanB RSI Strategy", overlay=true,calc_on_every_tick=false,pyramiding=0, default_qty_type=strategy.cash,default_qty_value=1000, currency=currency.USD, initial_capital=1000,commission_type=strategy.commission.percent, commission_value=0.0) r=rsi(close,14) //SELL CONDITION //RSI was above 90% last six months AND drops below 65% //RSI above 90% last six month selllevel = input(90) maxrsi = highest(rsi(close,14),6)[1] rsisell = maxrsi > selllevel //RSIdrops below 65% drop = input(65) rsidrop= r < drop //sellsignal sellsignal = rsisell and rsidrop //BUY CONDITION //IF (RSI was below 50% last six months AND jumps +2% from the low) THEN buy, ELSE hold. //RSI was below 50% last six months buylevel = input(50) minrsi = lowest(rsi(close,14),6)[1] rsibuy = minrsi < buylevel //IF (RSI jumps +2% from the low) THEN buy, ELSE hold. rsibounce= r > (minrsi + 2) //buysignal=buyrsi AND rsidrop //buysignal buysignal = rsibuy and rsibounce //Strategy strategy.entry("Buy Signal",strategy.long, when = buysignal) strategy.entry("Sell Signal",strategy.short, when = sellsignal)