3분 단기 전문가 자문자 전략

저자:차오장, 날짜: 2023-11-24 15:58:01
태그:

img

전반적인 설명

이것은 E-미니 S&P500 선물 (ES) 에 대한 3 분 단기 전문가 자문자 전략입니다. 그것은 기하급수적인 이동 평균의 일련을 계산하고 특정 패턴 조건을 결합하여 거래 신호를 생성합니다.

원칙

이 전략의 핵심 지표는 T3 평균 라인이다. T3는 먼저 사용자 정의 T3 매개 변수를 기반으로 기하급수적인 이동 평균 xe1~xe6의 집합을 계산한다. 그 다음 최종 T3 평균 라인으로 특정 계수를 사용하여 이러한 EMA의 가중 평균을 계산한다.

클로즈 가격이 T3 평균 라인 아래로 떨어지면 구매 신호가 생성됩니다. 클로즈 가격이 T3 평균 라인 위에 있을 때 판매 신호가 생성됩니다. 또한 전략은 특정 촛불 패턴을 보충 입시 조건으로 판단합니다. 패턴 조건과 T3 신호가 동시에 나타날 때만 거래 주문이 전송됩니다.

강점

이 전략의 가장 큰 강점은 멀티 필터 디자인과 매개 변수 최적화입니다. 한편으로는 가격 액션과 차트 패턴 필터를 결합하면 노이즈 트레이드를 줄일 수 있습니다. 다른 한편으로는 T3 및 패턴 판단 규칙과 같은 주요 매개 변수가 다른 시장에 적응하고 진입 정확도를 향상시키기 위해 최적화 될 수 있습니다.

간단한 이동 평균에 비해 T3 지표의 세 배 평형 메커니즘은 시장 소음을 필터링하고 트렌드 반전 지점을 식별하는 데 효과적입니다. 3 분 시간 프레임은 단기 기회를 포착하기 위해 빠른 주문 실행을 허용합니다.

위험 과 해결책

이 전략의 주요 위험은 부적절한 매개 변수 조정 및 과도한 보유 기간에서 비롯됩니다. T3 매개 변수가 너무 커 설정되면 지표가 시장에 뒤떨어질 것입니다. 너무 작게 설정되면 소음 거래의 확률이 증가합니다. 또한 3 분 거래는 적시에 중지 손실없이 큰 손실을 입을 수 있습니다.

위험을 제어하기 위해, 첫 번째 것은 다양한 제품에 대한 최적의 매개 변수 범위를 결정하기 위해 반복적으로 백테스트하는 것입니다. 둘째, 거래 당 허용 가능한 손실 비율로 출구 포지션을 위해 엄격한 스톱 로스 전략을 실행해야합니다.

개선

이 전략을 개선하기 위한 몇 가지 방향이 있습니다.

  1. 다양한 거래 도구에 최적의 범위를 찾기 위해 T3 매개 변수를 최적화

  2. 패턴 인식의 정확성을 높이기 위해 패턴 판단 논리를 개선

  3. 후속 스톱 손실과 같은 더 고급 스톱 손실 메커니즘을 추가

  4. 이윤 요인 또는 최대 유출을 기반으로 돈 관리 모듈을 추가

  5. 기계 학습 지원 입력 모듈을 추가

이러한 개선으로 전략의 안정성과 수익성이 단계적으로 향상될 수 있습니다.

결론

단기적 인트라데이 거래 전략으로서이 전략은 거대한 최적화 공간, 여러 필터 및 빠른 주문 실행과 같은 장점을 가지고 있습니다. 매개 변수 조정, 스톱 손실 최적화, 돈 관리와 같은 일련의 최적화 방법과 함께 고 주파수 거래에 적합한 효과적인 전략으로 조정 될 수 있습니다.


/*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)


더 많은