트렌드 기반 사이클 트레이딩 전략


생성 날짜: 2023-11-17 17:05:11 마지막으로 수정됨: 2023-11-17 17:05:11
복사: 0 클릭수: 551
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

트렌드 기반 사이클 트레이딩 전략

개요

트렌드 기반의 순환 거래 전략은 200일 간소 이동 평균을 기반으로 트렌드 방향을 판단하는 양적 거래 전략이다. 이 전략은 두 가지 모드 “상향 추세”와 “하향 추세”를 제공하며 상인의 선호도에 따라 선택할 수 있다. 이 전략은 상인이 사용자 정의한 중지 손실 및 중지 위치를 허용하여 더 큰 유연성을 제공합니다.

전략 원칙

이 전략의 핵심 지표는 200일 간소 이동 평균이다. 전략은 두 가지 모드로 나다:

  1. 상승 추세 패턴을 추적합니다: 종식 가격이 200일 이동 평균보다 높을 때 더 많이; 정지 또는 정지 트리거가 발생했을 때 평소합니다.

  2. 하향 트렌드 패턴을 추적합니다: 종결 가격이 200일 이동 평균 이하일 때 더 많이; 정지 또는 정지 트리거가 있을 때 평점.

다중 조건 통과longCondition변수 정의, 종전 가격과 200일 이동 평균의 관계에 기초한다. 평점 조건이 통과closeCondition변수 정의는, 중지, 중지 가격 및 이동 평균의 관계에 기반한다.

그리고, 만약 다중 조건이 충족된다면,strategy.entry상장을 더 많이 열고, 상장 조건이 충족되면 통과합니다.strategy.exit평상지

전략적 이점

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 간단한 거래 논리, 이해하기 쉬운 구현.

  2. 두 가지 선택 가능한 모드를 제공하여 다양한 시장 환경에 따라 적절한 모드를 선택할 수 있습니다.

  3. 사용자 정의한 스톱로스 및 스톱 포스트를 통해 전략을 조정할 수 있는 리스크-이익 특성이 있다.

  4. 널리 알려진 기술 지표인 200일 이동 평균을 사용하여 트렌드 방향을 판단하십시오.

  5. 자동으로 트레이딩 신호를 생성하고, 인적 개입 없이, 운영 위험을 줄인다.

전략적 위험

이 전략에는 다음과 같은 위험도 있습니다.

  1. 단일 기술 지표에 너무 의존하면 잘못된 신호가 발생하기 쉽다. MACD, KDJ 등과 같은 다른 지표를 추가하여 검증하는 것을 고려할 수 있습니다.

  2. 스톱 및 스톱이 너무 작아서 시장의 변동에 의해 스톱될 수 있다. 너무 커서 이상적인 탈퇴 지점을 놓칠 수 있다. 적절한 테스트와 최적화 매개 변수이다.

  3. 종식 가격에 따라 판단하는 신호 방식을 채택하고, 보이스/하향 편차가 존재한다. K선에 따라 개체 판단으로 변경하거나 신호 생성 후 다음 K선 확인을 고려할 수 있다.

  4. 거래 비용의 영향은 고려되지 않는다.

전략 최적화

이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.

  1. 다른 기술 지표 검증 신호를 추가하여 오류 신호를 피하십시오. 예를 들어 MACD 지표입니다.

  2. 스톱로스 스 변수를 최적화하여 최적의 변수 조합을 찾습니다. 여러 그룹의 변수를 재검토하여 비교할 수 있습니다.

  3. 트렌드 필터를 추가하여 트렌드가 명확한 경우에만 거래한다. 예를 들어 ADX 지표를 도입한다.

  4. K선 엔티티 관계를 고려하거나 확인 메커니즘에 참여하는 방식으로 변경하십시오.

  5. 거래량에 대한 영향을 고려한다. 대량 발생시 신호의 신뢰성을 검증한다.

  6. 다양한 이동 평균 변수를 테스트하여 최적의 변수를 찾습니다.

요약하다

요약하자면, 이 전략의 전체적인 아이디어는 명확하고 이해하기 쉽고, 실용적인 가치가 있다. 그러나 단 하나의 지표에 의존하는 특정 맹 영역이 존재하고, 더 많은 판단 조건을 추가하여 검증해야 하며, 또한 매개 변수를 테스트하여 최적화해야 함으로써 실판에서 더 나은 효과를 얻을 수 있다. 또한 실판에서의 슬라이드, 수료 등 거래 비용의 영향을 고려해야 한다.

전략 소스 코드
/*backtest
start: 2022-11-10 00:00:00
end: 2023-11-16 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/
// © I11L

//@version=5
strategy("Cycle Position Trading", overlay=true, pyramiding=1, default_qty_value=100000, initial_capital=100000, default_qty_type=strategy.cash, process_orders_on_close=false, calc_on_every_tick=false)

// Input for selecting the mode
mode = input.string("Buy Uptrend", options = ["Buy Uptrend", "Buy Downtrend"])

// Input for customizing stop loss and take profit levels
stopLoss = input.float(0.9, title="Stop Loss (SL) level", step=0.01)
takeProfit = input.float(1.1, title="Take Profit (TP) level", step=0.01)

// Calculate the 200-day Simple Moving Average (SMA)
sma = ta.sma(close, 200)

// Plot the SMA on the chart
plot(sma)

// Define the conditions for entering a long position based on the selected mode
longCondition = mode == "Buy Uptrend" ? close > sma and close[5] > sma : close < sma

// Define the conditions for closing a position based on the selected mode
closeCondition = mode == "Buy Uptrend" ? (strategy.position_avg_price * stopLoss > close or strategy.position_avg_price * takeProfit < close or close < sma * 0.95) : (strategy.position_avg_price * stopLoss > close or strategy.position_avg_price * takeProfit < close or close > sma * 1.05)

// Execute a long position if the longCondition is met
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

// Close the position if the closeCondition is met
if (closeCondition)
    strategy.exit("Exit", limit = close)