
다중 시간 프레임 트렌드 식별 및 패턴 거래 전략은 장기 단기 시장 분석을 결합한 양적 거래 방법이다. 이 전략은 총시장 트렌드를 15분 시간 프레임에 확인하고 1분 시간 프레임에 특정 형태를 식별하여 현장 진입 시기를 결정하는 다중 시간 프레임 분석 기술을 교묘하게 결합한다. 또한, 이 전략은 엄격한 시간 필터링 장치를 통합하여 시장 개시 초반과 폐지 전 기간의 높은 파동 기간에 거래를 피하고, 상장 위험을 효과적으로 관리하기 위해 상장 위험을 관리합니다.
이 양적 거래 전략의 핵심 논리는 다중 시간 프레임 분석과 엄격한 거래 시간 관리에 기반을 두고 있다. 구체적으로:
트렌드 식별통과:request.security함수는 15분 시간 프레임의 가격 데이터를 얻고, 중·장기 트렌드 방향을 판단한다. 전략은 현재 종결 가격과 이전 종결 가격의 관계를 비교함으로써 수행된다.trend_15m > trend_15m[1]ᄋ) 상승세를 확인하기 위한 자료
형상 인식1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간 프레임에서, 전략은 1분 시간bullish_engulfing = close > open and open[1] > close[1] and close > open[1]성취하다.
시간 필터이 전략은 두 가지 중요한 시간 필터 조건을 설정합니다.
위험 관리전략: 입력 신호가 확인된 후, 자동으로 K 선의 최저 지점에 있는 스톱로드를 설정합니다.stop_loss := low[1]2:1의 리스크/이익 비율에 따라 수익 목표를 계산합니다.take_profit := close + 2 * (close - stop_loss))。
일일 거래 제한전략: 매 거래일 끝에는 모든 포지션을 강제적으로 닫고, 밤새 포지션을 유지하지 않도록 합니다.strategy.close_all()함수 구현.
다단계 시장 분석15분 및 1분 시간 프레임 분석을 결합하여 전략은 중기 추세와 단기 출입 기회를 동시에 파악할 수 있으며 거래의 정확도를 크게 향상시킵니다. 중기 추세는 전체 시장 방향에 대한 지침을 제공하지만 단기 형태는 정확한 출입 시간을 제공합니다.
효과적인 시간 필터링: 시장 개시와 종결 전의 높은 변동과 낮은 유동성의 시기를 피합니다. 이러한 시기는 일반적으로 더 많은 소음과 더 낮은 신호 품질로 인해 가짜 돌파구 또는 슬라이드 포인트가 확장 될 수 있습니다.
자동화된 위험 관리이 전략은 명확한 스톱로스 및 수익 목표 설정을 내장하고 있으며, 전문 거래자가 일반적으로 사용하는 위험 제어 기준인 2:1의 위험 수익 비율을 사용하며, 장기적인 수익을 도모합니다.
데이 트레이딩 전략: 강제적으로 상장하기 전에 상장하는 것으로, 전략은 갑작스러운 사건, 야간 폭파 등으로 인한 통제 불가능한 손실을 포함하여 야간 상장 위험을 피할 수 있습니다.
코드는 간결하고 효율적입니다.정책 코드 구조는 명확하고, 논리적으로 밀착되어 있으며, 파이네스크립트 언어의 내장 함수는 다음과 같습니다.request.security그리고strategy.exit그리고 그 결과, 집행의 효율성이 향상되었습니다.
다중 시간 프레임의 뒤처짐사용:request.security함수가 더 큰 시간 프레임 데이터를 얻는 것은 약간의 지연을 가져올 수 있으며, 빠르게 변하는 시장에서 진입 지점을 놓치거나 퇴출을 지연시킬 수 있습니다. 해결책은 동적 시간 프레임을 사용하거나 즉각적인 트렌드 확인 지표를 추가하는 것입니다.
단일 형태 의존: 전략은 오리 삼키기 형태만을 입시 신호로 사용하며, 이는 다른 유효한 거래 기회를 놓치게 할 수 있다. 다른 높은 확률 형태를 확장하여 식별하는 것은 거래 횟수를 증가시킬 수 있다.
고정된 리스크 리너드 설정: 고정된 2:1 리스크/이익 비율을 사용하는 것은 다양한 변동률 환경에서 충분히 유연하지 않을 수 있다. 해결책은 ATR (Average True Range) 에 기반한 역동적으로 조정되는 스톱로즈와 수익 레벨을 고려하는 것이다.
시간 필터 제한: 시간 필터는 높은 리스크 시기를 피할 수 있지만, 특히 오픈 시기가 상승하는 강력한 트렌드 날에 발생하는 몇 가지 고품질 거래 기회를 놓칠 수 있습니다.
시장 상황에 대한 적응력이 부족함전략은 다른 시장 상태를 구분하지 않으며, 특정 시장 환경에서 좋지 않은 성능을 발휘할 수 있다. 시장 상태를 식별하는 메커니즘을 도입하면 전략의 적응성을 높일 수 있다.
추세 확인 지표 강화15분 프레임에 MACD, RSI 또는 이동 평균 시스템과 같은 기술 지표를 추가하여 더 신뢰할 수있는 트렌드 확인을 제공 할 수 있습니다. 예를 들어 MACD 지표 교차 또는 RSI 방향 확인을 추가하면 잘못된 신호를 줄일 수 있습니다.
동적 위험 관리: 시장의 변동율 (ATR과 같은) 에 따라 동적으로 중지 및 수익 목표를 조정하고, 고정된 위험-수익률을 사용하지 않습니다. 높은 변동율의 시장에서 더 느슨한 중지, 낮은 변동율의 시장에서 더 엄격한 중지 설정합니다.
더 많은 입학 모드보 삼킨 형태 이외에, 다른 높은 확률의 보 도형 형태를 인식할 수 있습니다. 보 별선 형태, 오리선 등이 거래 빈도와 다양성을 높이기 위해 추가될 수 있습니다.
수량확인 도입: 거래량 분석을 전략 논리에 포함시켜 거래량이 커지면만 삼킨 형태를 확인하여 신호 품질을 향상시킬 수 있다.
시장 환경 적응: 시장 환경 식별 기능을 추가하여, 예를 들어 변동률 지표 (ATR와 같은) 또는 트렌드 강도 지표 (ADX와 같은) 를 통해 트렌드 시장과 충격 시장을 구분하고, 그에 따라 전략 파라미터를 조정한다.
시간 필터를 최적화합니다.: 더 정교한 시간 필터링 메커니즘을 사용하는 것을 고려할 수 있습니다. 예를 들어, 고정된 시간대를 단순히 배제하는 대신, 역사 데이터 분석을 기반으로 최적의 거래 시간을 결정합니다.
다중 시간 프레임 트렌드 인식 및 도표 모드 거래 전략은 중·장기 트렌드 분석과 단기 입시 기술을 결합한 종합 거래 시스템이다. 큰 시간 프레임 ((15분) 에서 전체 시장 트렌드 방향을 확인하고, 작은 시간 프레임 ((1분) 에서 높은 확률의 투기 포식 형태를 식별하여 거래를 수행함으로써, 이 전략은 입시 정확성을 효과적으로 향상시킬 수 있다.
이 전략의 또 다른 큰 특징은 엄격한 시간 필터링 메커니즘과 위험 관리 시스템을 통합하여 시장의 높은 변동성을 피하고 고정된 리스크 수익률과 종결 전의 평형 포지션을 강제하여 위험을 제어하는 것입니다. 이러한 기능은 이 전략을 특히 안정적인 수익을 추구하는 하루 거래자에게 적합하게 만듭니다.
이 전략은 명확한 논리와 엄격한 위험 통제를 가지고 있지만, 트렌드 확인 메커니즘을 강화하고, 동적 위험 관리를 도입하고, 더 많은 입시 형태를 인식하고, 거래량 분석을 통합하고, 시장 환경에 적응하는 기능을 개발하는 등 여러 가지 최적화 공간이 남아 있습니다. 이러한 최적화를 통해 이 전략은 다양한 시장 환경에서 더 안정적인 성능을 얻을 수 있습니다.
/*backtest
start: 2024-03-07 00:00:00
end: 2025-03-05 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Multi-Timeframe Strategy with Time Filters", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// Define the 15-minute trend (long-term trend)
trend_15m = request.security(syminfo.tickerid, "15", close)
// Identify Bullish Engulfing pattern on the 1-minute chart
bullish_engulfing = close > open and open[1] > close[1] and close > open[1]
// Define the entry condition: Bullish Engulfing on the 1-minute chart and uptrend on the 15-minute chart
long_condition = bullish_engulfing and trend_15m > trend_15m[1]
// Define the current time
current_hour = hour
current_minute = minute
// Check if it's within the first 45 minutes or last 60 minutes of the trading day
first_45_minutes = (current_hour == 9 and current_minute < 45) // First 45 minutes of the day (9:00 - 9:45 AM)
last_60_minutes = (current_hour == 15 and current_minute >= 0) or (current_hour == 16 and current_minute < 60) // Last 60 minutes (3:00 - 4:00 PM)
// Block trades if within the restricted time windows
time_restricted = first_45_minutes or last_60_minutes
// Execute the strategy logic for long entry only if not within restricted time window
if (long_condition and not time_restricted)
strategy.entry("Long", strategy.long)
// Initialize stop loss and take profit variables
var float stop_loss = na
var float take_profit = na
// Update stop loss and take profit values when a long entry is triggered
if (long_condition and not time_restricted)
stop_loss := low[1] // Set stop loss to the low of the previous candle
take_profit := close + 2 * (close - stop_loss) // Set take profit to 2:1 risk-to-reward ratio
// Set stop loss and take profit for the trade using strategy.exit
strategy.exit("Exit Long", "Long", stop=stop_loss, limit=take_profit)
// Close all positions at the end of the trading day (for example, at 16:00 EST)
end_of_day = (hour == 16 and minute == 0) // 16:00 EST is the end of the day for most US markets
if (end_of_day)
strategy.close_all() // Close all open positions at the end of the day