이것은 E-미니 S&P500 선물 (ES) 에 대한 3 분 단기 전문가 자문자 전략입니다. 그것은 기하급수적인 이동 평균의 일련을 계산하고 특정 패턴 조건을 결합하여 거래 신호를 생성합니다.
이 전략의 핵심 지표는 T3 평균 라인이다. T3는 먼저 사용자 정의 T3 매개 변수를 기반으로 기하급수적인 이동 평균 xe1~xe6의 집합을 계산한다. 그 다음 최종 T3 평균 라인으로 특정 계수를 사용하여 이러한 EMA의 가중 평균을 계산한다.
클로즈 가격이 T3 평균 라인 아래로 떨어지면 구매 신호가 생성됩니다. 클로즈 가격이 T3 평균 라인 위에 있을 때 판매 신호가 생성됩니다. 또한 전략은 특정 촛불 패턴을 보충 입시 조건으로 판단합니다. 패턴 조건과 T3 신호가 동시에 나타날 때만 거래 주문이 전송됩니다.
이 전략의 가장 큰 강점은 멀티 필터 디자인과 매개 변수 최적화입니다. 한편으로는 가격 액션과 차트 패턴 필터를 결합하면 노이즈 트레이드를 줄일 수 있습니다. 다른 한편으로는 T3 및 패턴 판단 규칙과 같은 주요 매개 변수가 다른 시장에 적응하고 진입 정확도를 향상시키기 위해 최적화 될 수 있습니다.
간단한 이동 평균에 비해 T3 지표의 세 배 평형 메커니즘은 시장 소음을 필터링하고 트렌드 반전 지점을 식별하는 데 효과적입니다. 3 분 시간 프레임은 단기 기회를 포착하기 위해 빠른 주문 실행을 허용합니다.
이 전략의 주요 위험은 부적절한 매개 변수 조정 및 과도한 보유 기간에서 비롯됩니다. T3 매개 변수가 너무 커 설정되면 지표가 시장에 뒤떨어질 것입니다. 너무 작게 설정되면 소음 거래의 확률이 증가합니다. 또한 3 분 거래는 적시에 중지 손실없이 큰 손실을 입을 수 있습니다.
위험을 제어하기 위해, 첫 번째 것은 다양한 제품에 대한 최적의 매개 변수 범위를 결정하기 위해 반복적으로 백테스트하는 것입니다. 둘째, 거래 당 허용 가능한 손실 비율로 출구 포지션을 위해 엄격한 스톱 로스 전략을 실행해야합니다.
이 전략을 개선하기 위한 몇 가지 방향이 있습니다.
다양한 거래 도구에 최적의 범위를 찾기 위해 T3 매개 변수를 최적화
패턴 인식의 정확성을 높이기 위해 패턴 판단 논리를 개선
후속 스톱 손실과 같은 더 고급 스톱 손실 메커니즘을 추가
이윤 요인 또는 최대 유출을 기반으로 돈 관리 모듈을 추가
기계 학습 지원 입력 모듈을 추가
이러한 개선으로 전략의 안정성과 수익성이 단계적으로 향상될 수 있습니다.
단기적 인트라데이 거래 전략으로서이 전략은 거대한 최적화 공간, 여러 필터 및 빠른 주문 실행과 같은 장점을 가지고 있습니다. 매개 변수 조정, 스톱 손실 최적화, 돈 관리와 같은 일련의 최적화 방법과 함께 고 주파수 거래에 적합한 효과적인 전략으로 조정 될 수 있습니다.
/*backtest start: 2023-11-16 00:00:00 end: 2023-11-23 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("ES 3m Short Only (Triple RED)", overlay=true) // Alert Message '{{strategy.order.alert_message}}' //3min T3 = input(150)//to 600 xPrice3 = close xe1 = ta.ema(xPrice3, T3) xe2 = ta.ema(xe1, T3) xe3 = ta.ema(xe2, T3) xe4 = ta.ema(xe3, T3) xe5 = ta.ema(xe4, T3) xe6 = ta.ema(xe5, T3) b3 = 0.7 c1 = -b3*b3*b3 c2 = 3*b3*b3+3*b3*b3*b3 c3 = -6*b3*b3-3*b3-3*b3*b3*b3 c4 = 1+3*b3+b3*b3*b3+3*b3*b3 nT3Average = c1 * xe6 + c2 * xe5 + c3 * xe4 + c4 * xe3 // Buy Signal - Price is below T3 Average buySignal3 = xPrice3 < nT3Average sellSignal3 = xPrice3 > nT3Average //NinjaTrader Settings. acct = "Sim101" ticker = "ES 12-23" qty = 1 takeProfitTicks = 4 stopLossTicks = 16 tickSize = 0.25 takeProfitShort = close - takeProfitTicks * tickSize stopLossShort = close + stopLossTicks * tickSize OCOMarketShort = '{ "alert": "OCO Market Short", "account": "' + str.tostring(acct) + '", "ticker": "' + str.tostring(ticker) + '", "qty": "' + str.tostring(qty) + '", "take_profit_price": "' + str.tostring(takeProfitShort) + '", "stop_price": "' + str.tostring(stopLossShort) + '", "tif": "DAY" }' CloseAll = '{ "alert": "Close All", "account": "' + str.tostring(acct) + '", "ticker": "' + str.tostring(ticker) + '" }' IsUp = close > open IsDown = close < open PatternPlot = IsDown[2] and IsDown[1] and IsDown and close[1] <= high[0] and close[1] > close[0] and low[1] > low[0] and high[2] > high[1] and low[2] <= low[1] if (PatternPlot and sellSignal3) strategy.entry('Short', strategy.short, alert_message=OCOMarketShort) strategy.exit('Close Short', 'Short', profit=takeProfitTicks, loss=stopLossTicks, alert_message=CloseAll) //plotshape(PatternPlot, title="Custom Pattern", style=shape.circle, location=location.abovebar, color=color.red, size=size.small)