
이 전략은 장기간 지속된 암호화폐 트렌드 추적 전략으로, 이동 평균, 상대적으로 강한 지표 (RSI) 와 시장 관련성의 개념을 결합하여, 중장선 가격 트렌드를 식별하고, 트렌드 시작과 함께 포지션을 구축하고, 트렌드가 진행됨에 따라 점진적으로 포지션을 높이고, 트렌드 역전 신호를 발견하고, 정지한다.
이 전략은 크게 세 가지 지표로 판단됩니다.
상대적으로 약한 지표 ((RSI): 과매매 현상을 식별하기 위해, RSI가 51보다 높으면 과매매 신호이며, 49보다 낮으면 과매매 신호이다.
이동 평균 ((SMA): 클로즈 가격의 9일 간단한 이동 평균을 계산하여 트렌드 방향을 판단하는 지표로 사용한다.
시장 관련성: 암호화폐의 총시장 가치를 기준 시장을 선택하여 거래 품종과의 관련성을 계산하고 거래 품종 자체의 K선 시장을 관련성 시대로 대체하여 거래 신호의 효과를 높인다.
거래 규칙은 다음과 같습니다.
다중 입시: RSI가 51을 넘어서 9일 SMA보다 클로즈가 높을 때 더 많이 입시합니다.
공짜 입시: RSI 아래 49을 통과하고 9일 SMA보다 낮은 가격으로 닫을 때 공짜;
정지 손실 원칙: 다중 머리 정지 설정은 1%, 정지 손실 설정은 0.1%; 공허 머리 정지 설정은 0.05%, 정지 손실 설정은 0.03%
이 전략은 동시에 시간 조건을 설정하여 지정된 날짜 범위 내에서만 거래한다.
트렌드와 오버 바이 오버 셀 지표의 결합으로 중·장기 트렌드를 효과적으로 추적할 수 있습니다.
시장 관련성을 활용하여 신호의 질을 높이고, 단일 품종의 잘못된 추세에 의해 오해받지 않도록 한다.
자동으로 중지하는 것은 손실이 커지는 것을 막기 위해 합리적인 설정입니다.
다양한 시기의 시장 상황에 맞게 시간 범위를 사용자 정의 할 수 있습니다.
중장기선 트렌드 전략은 단장기선 시장의 큰 변동에 대처할 수 없습니다.
관련 시장은 기준 시장으로, 기준 시장이 변할 때 거래 품종이 지연되어 적시에 손실을 막을 수 없습니다.
“이런 일이 벌어질 때, 우리가 할 수 있는 모든 것을 할 수 있다.
대책:
KC, BOLL 등과 같은 다른 단기적 인 지표와 결합하여 시장 단계를 결정하여 손실을 막는 것을 강화할 수 있습니다.
지수행동에 대한 분석을 늘리고, 지수변동이 발생했을 때 적시에 평준화되는 지수를 발견하는 것;
양방향 품종을 거래하여 다공간 기회를 최대한 활용하십시오.
변수 최적화: RSI 변수, 이동 평균 변수, 스톱 스톱 손실 폭을 최적화하여 전략이 시장의 통계적 특성에 더 잘 맞도록합니다.
거래 종류 최적화: 더 많은 가능한 기준 시장과 거래 종류를 평가하여 더 높은 관련성, 더 나은 유동성 조합을 선택하십시오.
전략 포트폴리오: 다른 전략 포트폴리오와 함께 사용되며, 큰 주기 시장 추세 방향을 판단하는 동시에, 이 전략을 사용하여 중장선 지위를 유지한다.
이 전략은 전반적으로 최적화된 공간 규모와 적용 범위가 넓은 중장기선 암호화폐 트렌드 추적 전략이다. 트렌드, 오버 바이 오버 세일과 연관성 판단을 효과적으로 결합하여 거래 의사결정의 질을 향상시키고, 파라미터 조정과 조합을 통해 전략의 안정성과 수익률을 크게 향상시킬 수 있다. 중장기선 보유 거래 방식은 암호화폐의 변동성이 크고, 짧은 선이 정확한 트렌드를 포착하기 어려운 품종에도 적합하다.
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 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/
// © exlux99
//@version=4
strategy(title = "Crypto swing correlation", overlay = true, pyramiding=1,initial_capital = 1, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.03)
//time
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2010, title = "From Year", minval = 1970)
//monday and session
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
useCorrelation = input(true, title="Use Correlation candles?")
symbol = input("BTC_USDT:swap", type=input.symbol)
haClose = useCorrelation ? security(symbol, timeframe.period, close) : close
haOpen = useCorrelation ? security(symbol, timeframe.period, open) : open
haHigh = useCorrelation ? security(symbol, timeframe.period, high) : high
haLow = useCorrelation ? security(symbol, timeframe.period, low) : low
length = input( 50 )
overSold = input( 51 )
overBought = input( 49 )
s = input(title="Source", defval="haClose", options=["haClose", "haOpen", "haHigh", "haLow"])
price = s == "haClose" ? haClose: s == "haOpen" ? haOpen : s == "haHigh" ? haHigh : s == "haLow" ? haLow : na
len = input(8, "Length Moving average", minval=1)
src = price
ma = sma(src, len)
vrsi = rsi(price, length)
long = crossover(vrsi, overSold) and time_cond and price > ma
short = crossunder(vrsi, overBought) and time_cond and price < ma
takeProfit_long=input(1.0, step=0.005)
stopLoss_long=input(0.1, step=0.005)
takeProfit_short=input(0.05, step=0.005)
stopLoss_short=input(0.03, step=0.005)
strategy.entry("long",1,when=long)
strategy.entry("short",0,when=short)
strategy.exit("short_tp/sl", "long", profit=close * takeProfit_long / syminfo.mintick, loss=close * stopLoss_long / syminfo.mintick, comment='LONG EXIT', alert_message = 'closeshort')
strategy.exit("short_tp/sl", "short", profit=close * takeProfit_short / syminfo.mintick, loss=close * stopLoss_short / syminfo.mintick, comment='SHORT EXIT', alert_message = 'closeshort')