리버설 트래킹 전략 (Reversal Tracking strategy) 은 유동평균을 시장 필터로 결합한 트렌드 추적 전략이다. 가격 반전 신호가 발생했을 때 포지션을 설정하여 낮은 가격으로 구매하고 높은 가격으로 판매하여 가격 반전 후 트렌드를 추적하여 과도한 수익을 얻는다.
이 전략의 핵심 논리는: 폐쇄가 N 일 전의 낮은 가격보다 낮을 때 긴 포지션을 설정; 폐쇄가 N 일 전의 높은 가격보다 높을 때 긴 포지션을 폐쇄합니다. 또한 200 일 간 간단한 이동 평균을 시장 필터로 결합합니다. 가격이 200 일 이동 평균보다 높을 때만 긴 포지션을 설정합니다.
이 전략은 가격 역전 이론에 기반하고 있으며, 주식 가격의 추세는 반복적으로 상승과 하락을 나타낼 것이라고 믿습니다. 가격이 N 일 전에 형성 된 낮은 수준 아래로 넘어갈 때, 긴 포지션을 설정 할 때입니다. 가격이 N 일 전에 높은 수준을 넘을 때, 역전 상승 추세가 끝났고 이익을 취할 때임을 나타냅니다.
특히 이 전략의 핵심 모듈은 다음과 같습니다.
시장 필터
시장 추세를 판단하기 위해 200일 간직 이동 평균을 사용하십시오. 주식 가격이 200일 라인을 넘으면만 지위를 설정할 수 있습니다. 이것은 황소 시장에서 단위 지위를 설정하거나 곰 시장에서 긴 지위를 설정하는 것을 피합니다.
반전 신호 판단
논리: 닫기 < 최저 가격 N 일 전
만약 클로즈가 N일 전에 가장 낮은 가격보다 낮다면 (디폴트 5일), 이것은 하향 가격 분할을 나타내고 구매 신호를 유발합니다.
이윤 신호 판단
논리: 닫기 > N일 전 최고 가격
만약 클로즈가 N일 전에 가장 높은 가격보다 높다면 (디폴트 5일), 이는 반전 상승 추세가 끝났다는 것을 나타내고 이윤을 취하는 신호를 유발합니다.
5% 스톱 로스
과도한 손실을 피하기 위해 엔트리 가격에서 5%의 스톱 로스 라인을 설정합니다.
이 전략의 주요 장점은 다음과 같습니다.
이 전략에는 몇 가지 위험도 있습니다.
이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
리버설 추적 전략 (Reversal Tracking Strategy) 은 이동 평균 지표를 결합하여 시장 조건을 결정하고 진입 시기를 선택하기 위해 리버설 이론을 활용합니다. 수익을 취하고 손실을 멈추는 위험 제어 메커니즘은 낮은 가격으로 구매하고 높은 가격으로 판매하여 과도한 수익을 목표로합니다. 이 전략은 매개 변수 최적화, 보조 필터 추가 등으로 개선 될 수 있습니다. 트렌딩 시장에서 좋은 수익을 얻을 수 있습니다.
/*backtest start: 2024-01-06 00:00:00 end: 2024-02-05 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // @version=4 // © HermanBrummer // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // BUYS WHEN THE CLOSE IS SMALLER THAN THE LOW OF 5 DAYS AGO // SELLS WHEN THE CLOSE IS HIGHER THEN THE HIGH OF 5 DAYS AGO // USES A 200 MOVING AVERGE AS A FILTER, AND DOESN'T TAKE TRADES IF THE MARKET IS BELOW IT'S 200 MA // USES A 5% STOP LOSS FROM ENTRIES strategy("REVERSALS", overlay=true) StopLoss = input(.95, step=0.01) HowManyBars = input( 5 ) /// EXITS if close > sma(high,HowManyBars)[1] strategy.close_all() /// ENTRIES MarketFilter = sma(close, 200) F1 = close < sma(low,HowManyBars)[1] F2 = close > MarketFilter plot(MarketFilter, "MarketFilter", color.yellow) strategy.entry("Long", true, 1, when=F1 and F2) /// STOP LOSS StopLossLine = strategy.position_avg_price * StopLoss plot(StopLossLine, "StopLossLine", #FF0000) strategy.exit("Exit", stop=StopLossLine)