듀얼 타임 프레임 추세 추종 전략 기반


생성 날짜: 2024-02-27 16:01:41 마지막으로 수정됨: 2024-02-27 16:01:41
복사: 0 클릭수: 585
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

듀얼 타임 프레임 추세 추종 전략 기반

개요

주식 기반의 쌍 시간 프레임 트렌드 추적 전략은 2023년 한 개의 인기 있는 주식의 추세를 포착하고 추적하기 위한 고급 알고리즘 거래 전략이다. 이 전략은 일선과 1 시간선의 지표 조합을 사용하여 거래 신호를 식별하고, 위험 관리에 최적화된 동적 스톱 로스를 구현하며, 위험을 통제한 조건에서 안정적인 수익을 얻으려고 노력하고 있다.

전략 원칙

이 전략은 20주기 및 50주기 지수 이동 평균 ((EMA) 을 사용하여 일선 및 1시간 선의 트렌드 방향을 판단한다. 일선 및 1시간 선의 20일 EMA가 모두 50일 EMA를 통과하면 구매 신호를 발생시킨다. 일선 및 1시간 선의 20일 EMA가 모두 50일 EMA를 통과하면 판매 신호를 발생시킨다. 이러한 조합 필터는 중장선 트렌드의 시동을 효과적으로 식별할 수 있다.

한편, 이 전략은 평균 실제 파장 ((ATR) 지표를 사용하여 동적으로 손실의 지점과 중지 지점을 계산한다. 중지 지점은 ATR의 1.5배, 중지 지점은 3배로 설정한다. 이것은 시장의 변동으로 인한 위험 수준에 따라 실시간으로 중지 손실 중지 매개 변수를 조정하여 위험 관리를 최적화 할 수 있다.

우위 분석

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

  1. 다중 시간 프레임 지표 조합 필터링으로 트렌드를 효과적으로 식별할 수 있습니다.

  2. 다이내믹 스톱 설정은 위험 관리를 더욱 지능화하여 스톱 매개 변수의 정적 설정으로 인한 문제를 방지합니다.

  3. 구매 및 판매 지점을 명확하게 파악하면 트렌드 기회를 더 명확하게 파악할 수 있습니다.

  4. 단편 거래의 위험을 엄격히 통제하여 지속적인 안정적인 투자 수익을 얻을 수 있습니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 2023 년 한 주식에만 최적화 된 것은 다른 주식 또는 다른 해에는 적용되지 않을 수 있습니다.

  2. 극도로 큰 변동으로 인한 손실 위험을 완전히 피할 수 없습니다.

  3. 여러 시간 프레임 판단 신호는 오해의 위험이 있습니다.

  4. 시장의 시스템적 위험도 전략에 영향을 미칩니다.

최적화 방향

이 전략은 다음과 같은 부분에서 더욱 개선될 수 있습니다.

  1. 대장도 지수에 대한 참조를 늘리고, 체계적인 위험이 높은 시기에 포지션을 구축하는 것을 피한다.

  2. 주식 기본 사항과 중요한 사건의 위험을 결합하여 상쇄 손실을 고려하십시오.

  3. 전략 효과에 대한 EMA 변수의 영향을 테스트한다.

  4. 구매 및 판매 신호를 판단하는 기계 학습 알고리즘을 추가합니다.

요약하다

이 전략은 종합적으로 추세 판단, 위험 관리, 변수 최적화 등 여러 차원을 고려하고 있으며, 위험을 통제하는 전제 하에, 경험이 풍부한 투자자는 뜨거운 주식의 긴 흐름을 추격하여 안정적인 투자 수익을 얻을 수 있습니다. 이 전략을 사용하는 투자자는 일정 수준의 프로그래밍 능력과 정량 거래 지식을 갖추고 있으며, 일정 수준의 손실 위험을 감수할 준비가되어 있습니다.

전략 소스 코드
/*backtest
start: 2023-02-26 00:00:00
end: 2024-02-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("TSLA Enhanced Trend Master 2023", overlay=true)

// Daily timeframe indicators
ema20_daily = ta.ema(close, 20)
ema50_daily = ta.ema(close, 50)

// 1-hour timeframe indicators
ema20_hourly = request.security(syminfo.tickerid, "60", ta.ema(close, 20))
ema50_hourly = request.security(syminfo.tickerid, "60", ta.ema(close, 50))

// Check if the year is 2023
is_2023 = year(time) == 2023

// Counter for short trades
var shortTradeCount = 0

// Entry Conditions
buySignal = is_2023 and (ema20_daily > ema50_daily) and (ema20_hourly > ema50_hourly)
sellSignal = is_2023 and (ema20_daily < ema50_daily) and (ema20_hourly < ema50_hourly) and (shortTradeCount < 0.5 * ta.highest(close, 14))

// Dynamic Stop Loss and Take Profit
atr_value = ta.atr(14)
stopLoss = atr_value * 1.5
takeProfit = atr_value * 3

// Calculate Position Size based on Volatility-Adjusted Risk
riskPercent = 2
positionSize = strategy.equity * riskPercent / close

// Strategy
if (buySignal)
    strategy.entry("Buy", strategy.long, qty=positionSize)
    strategy.exit("Take Profit/Stop Loss", "Buy", stop=close - stopLoss, limit=close + takeProfit)

if (sellSignal)
    strategy.entry("Sell", strategy.short, qty=positionSize)
    strategy.exit("Take Profit/Stop Loss", "Sell", stop=close + stopLoss, limit=close - takeProfit)
    shortTradeCount := shortTradeCount + 1