
이 전략의 이름은 RSI 지표와 ZigZag 지표에 기반한 암호화폐 15분 트렌드 추적 전략이다. 이 전략은 15분 시간 주기 암호화폐 시장 (예: ETHUSD/T, BTCUSD/T 등) 을 위해 특별히 설계되었다. 전략은 RSI 지표와 ZigZag 지표의 결합을 통해 과매 과매를 판단하여 가격 변동을 판단하여 트렌드 방향을 결정하는 전형적인 트렌드 추적 전략에 속한다.
이 전략의 핵심 논리는 RSI 지표와 ZigZag 지표를 동시에 사용하여 가격 추세를 판단하는 것입니다. 구체적으로, RSI 지표는 가격이 과매매되거나 과매매되었는지 판단하고 ZigZag 지표는 가격이 지정된 비율의 큰 변동이 발생했는지 판단합니다. 둘 다 동시에 거래 신호를 발산하면, 우리는 추세가 전환되었다고 판단하여 역전 작업을 수행 할 수 있습니다.
RSI에 대해 우리는 75의 오버 바이 라인을 설정하고, 25의 오버 세일 라인을 설정합니다. RSI가 아래에서 위쪽으로 25을 통과하면, 오버 세일에서 상대로 전환되는 것으로 간주되며, RSI가 위쪽에서 아래로 75을 통과하면, 상대로 전환되는 것으로 간주됩니다.
지그자그 지표의 경우, 우리는 가격 변동의 폭을 1%로 설정했습니다. 가격이 1% 이상의 큰 변동이있을 때 지그자그 지표선은 신호를 냅니다. 추세 판단과 함께, 우리는 가격 트렌드의 전환점을 볼 수 있습니다.
쌍 지표가 신호를 발산할 때, 만약 이전 트렌드 방향이 호불호가 있고, 현재 RSI가 오버 바이를 하고 ZigZag가 점프 빈틈을 표시한다면, 우리는 상점을 판단할 수 있고, 이 때 공백을 고려할 수 있다. 반대로, 만약 이전 트렌드 방향이 하락을 하고, 현재 RSI가 오버 바이를 하고 ZigZag가 점프 빈틈을 표시하면, 이 때 더 많은 것을 고려할 수 있다. 이런 논리를 통해, 우리는 트렌드 추적 작업을 할 수 있다.
이 전략의 가장 큰 장점은 이중 지표 판단과 결합하여 가짜 신호를 효과적으로 필터링하여 신호 품질을 향상시킬 수 있다는 것입니다. 단일 지표에만 의존하면 가짜 신호가 발생할 수 있으며, 이 전략은 RSI 지표와 ZigZag 지표의 검증을 통해 유효하지 않은 신호를 필터링하여 거래의 승률을 높일 수 있습니다.
또 다른 장점은 매개 변수 설정의 유연성입니다. 이 전략의 RSI 매개 변수와 ZigZag 매개 변수는 모두 사용자 정의 할 수 있으며, 우리는 다른 시장의 특성에 따라 매개 변수를 조정하여 최적의 효과를 얻을 수 있습니다. 이것은 전략에 큰 유연성을 제공합니다.
이 전략의 주요 위험은 지표가 잘못된 신호를 보내는 확률에 있다. 쌍 지표 조합 검증을 사용했음에도 불구하고, 시장의 급격한 변동이 있을 때 지표가 실패하여 거래 실패가 발생할 수 있다. 또한, 매개 변수 설정이 적절하지 않으면 전략의 효과에도 영향을 줄 수 있다.
위험을 줄이기 위해 포지션 보유 시간을 적절히 단축하고 적시에 손실을 막을 수 있습니다. 동시에 최적화 매개 변수 설정은 매우 중요하며 시장 특성을 충분히 고려해야합니다. 비정상적인 시장에 직면했을 때 수동 개입을 중단하는 것도 필요합니다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
KDJ, MACD 등과 같은 더 많은 지표를 도입하여 통합 판단을 할 수 있도록 지표 포지션을 추가하여 신호를 더욱 필터링 할 수 있습니다.
기계 학습 알고리즘을 도입하고, AI 기술을 통해 자동으로 최적화 파라미터 설정을 적용하여 시장 변화에 적응한다.
시장의 변동에 따라 손해배상 거리를 동적으로 조정할 수 있는 적응형 손해배상 메커니즘을 추가한다.
포지션 관리를 최적화하는 방법, 예를 들어, 강도와 약도에 따라 자금을 배분하는 방법
비정상적인 시장에서 자동으로 전환하는 대안 전략을 설정하십시오.
이 전략은 전체적으로 전형적인 트렌드 추적 전략이며, 핵심 아이디어는 RSI 지표와 ZigZag 지표를 결합하여 가격 트렌드 전환점을 판단하는 것입니다. 전략의 장점은 두 지표 조합이 잘못된 신호를 필터링하여 거래 효율성을 높이는 것입니다. 지표 실패의 위험을 충분히 고려하고 매개 변수 최적화, 중지 손실 최적화, 포지션 최적화 등의 방법으로 전략을 계속 개선해야합니다.
/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
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/
// © SoftKill21
//@version=4
strategy("Crypto ZigZag RSI strategy 15min",overlay=true)
length =input(5, title="RSI Length")
overSold = input(25)
overBought= input(75)
p =close
vrsi = rsi(p, length)
var bool long = na
var bool short = na
long :=crossover(vrsi,overSold)
short := crossunder(vrsi,overBought)
var float last_open_long = na
var float last_open_short = na
last_open_long := long ? close : nz(last_open_long[1])
last_open_short := short ? close : nz(last_open_short[1])
entry_value =last_open_long
entry_value1=last_open_short
//
ZZPercent = input(1, title="Minimum % Change", type=input.float)
r1Level=entry_value
s1Level=entry_value1
trend = 0
trend := na(trend[1]) ? 1 : trend[1]
LL = 0.0
LL := na(LL[1]) ? s1Level : LL[1]
HH = 0.0
HH := na(HH[1]) ?r1Level : HH[1]
Pi = ZZPercent * 0.01
zigzag = float(na)
if trend > 0
if r1Level >= HH
HH := r1Level
HH
else
if s1Level < HH * (1 - Pi)
zigzag :=r1Level[1]
trend := -1
LL := s1Level
LL
else
if s1Level <= LL
LL := s1Level
LL
else
if r1Level > LL * (1 + Pi)
zigzag := s1Level[1]
trend := 1
HH := s1Level
HH
shortc=crossunder(trend,0)
longc=crossover(trend,0)
longa =input(true)
shorta=input(false)
if(longa)
strategy.entry("long",1,when=longc)
strategy.close("long",when=shortc)
if(shorta)
strategy.entry("short",0,when=shortc)
strategy.close("long",when=longc)