높은/저하 자동 예측 및 거래 전략

저자:차오장날짜: 2024-03-15 17:22:36
태그:

img

전반적인 설명

이 전략은 아침 세션에서 9시 15분에 높은 점과 낮은 점을 식별하고, 장기 및 단기 포지션의 목표 가격과 스톱 로스 가격을 자동으로 계산하고, 조건이 충족되면 자동으로 포지션을 개척합니다. 전략은 상대 강도 지수 (RSI) 를 사용하여 과소매 및 과소매 상태를 결정하며, 출입 기회를 결정하기 위해 9:15 높은 점과 낮은 점의 브레이크와 결합합니다.

전략 원칙

  1. 9시부터 9시 15분까지의 높은 점과 낮은 점 형성 간격을 결정합니다.
  2. 가장 높은 가격과 가장 낮은 가격을 각각 9시 15분에 세션High과 세션Low로 기록합니다.
  3. 긴 목표 가격 (세션High+200), 짧은 목표 가격 (세션Low-200) 및 대응 스톱 로스 가격을 계산합니다.
  4. 현재 종료 가격과 RSI 인디케이터를 얻으십시오.
  5. 긴 진입 조건: 닫기 가격은 세션High보다 높고 RSI는 과잉 매수 수준보다 높습니다.
  6. 짧은 입상 조건: 종료 가격은 세션Low 아래로 떨어지고 RSI는 과잉 판매 수준보다 낮습니다.
  7. 관련 가격 수준을 그래프화하고 입상 조건에 따라 자동으로 긴 또는 짧은 포지션을 개척합니다.

이점 분석

  1. 간단하고 사용하기 쉬운 전략: 전략은 명확한 9:15 높은/저하점과 RSI 지표에 기초하고 있으며, 이해하기 쉽고 구현하기 쉬운 명확한 논리를 가지고 있습니다.
  2. 높은 수준의 자동화: 전략에는 목표 가격과 스톱 로스 가격에 대한 내장 계산과 자동 거래 실행을 허용하는 입시 조건 판단이 포함되어 있습니다.
  3. 적시에 스톱 로스: 스톱 로스 가격은 9:15의 최고/하위점을 기준으로 설정되며, 포지션이 열리면 명확한 스톱 로스 수준을 제공하여 위험을 효과적으로 제어합니다.
  4. 트렌드 추적: RSI 인디케이터를 사용하여 과잉 구매 및 과잉 판매 조건을 판단함으로써 전략은 트렌드 형성의 시작에 들어가 트렌드를 추적하는 데 도움이됩니다.

위험 분석

  1. 매개 변수 최적화 위험: RSI 길이와 과잉 매수/ 과잉 매수 기준과 같은 전략 매개 변수들은 시장 특성에 따라 최적화되어야 하며, 다른 매개 변수들은 다른 결과로 이어질 수 있습니다.
  2. 단일 지표 위험: 전략은 주로 RSI 지표에 의존하며 특정 시장 조건에서 효과가 없을 수 있습니다.
  3. 내일 변동성 위험: 9:15 이후 가격 변동은 스톱 로스를 유발하고 트렌드 움직임을 놓칠 수 있습니다.
  4. 포지션 관리의 부족: 전략은 포지션 크기와 자금 관리에 대한 통제가 부족하며 너무 자주 포지션 오픈이 추가 위험을 초래할 수 있습니다.

최적화 방향

  1. 동적 스톱 로스: 가격 변동성 또는 평균 진정한 범위 (ATR) 와 같은 지표에 기초하여 스톱 로스 수준을 동적으로 조정하여 가격 변화를 추적합니다.
  2. 다른 지표와 결합: 트렌드 판단을 확인하고 입력 정확성을 향상시키기 위해 MACD 및 이동 평균 시스템과 같은 다른 지표를 도입하십시오.
  3. 진입 조건을 최적화하십시오. 고정된 임계값의 제한을 피하기 위해 RSI 과잉 구매/ 과잉 판매 임계값을 적응적으로 조정하십시오.
  4. 포지션 관리 도입: 시장 변동성 조건에 기초한 포지션 크기를 제어합니다.

요약

이 전략은 9:15의 높은/저하점을 기반으로 하고, 트렌드 판단을 위해 RSI 지표를 사용하며, 목표 가격과 스톱 로스 가격을 자동으로 계산하고, 엔트리 조건에 따라 자동으로 롱 또는 쇼트 포지션을 개설한다. 전략 논리는 간단하고 명확하며, 높은 수준의 자동화로 트렌드 움직임을 빠르게 파악할 수 있다. 그러나, 전략에는 매개 변수 최적화, 단일 지표에 의존, 내일 변동성, 포지션 관리의 부족 등의 위험도 있다. 향후, 전략은 더 탄탄한 거래 성과를 얻기 위해 동적 스톱 로스, 다른 지표와 결합, 엔트리 조건을 최적화하고 포지션 관리를 도입하는 등의 측면에서 최적화 및 개선될 수 있다.


/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("9:15 AM High/Low with Automatic Forecasting", overlay=true)

// Parameters
showSignals = input(true, title="Show Signals")

// Define session time
sessionStartHour = input(9, title="Session Start Hour")
sessionStartMinute = input(0, title="Session Start Minute")
sessionEndHour = input(9, title="Session End Hour")
sessionEndMinute = input(15, title="Session End Minute")

// Calculate session high and low
var float sessionHigh = na
var float sessionLow = na
if (hour == sessionStartHour and minute == sessionStartMinute)
    sessionHigh := high
    sessionLow := low

// Update session high and low if within session time
if (hour == sessionStartHour and minute >= sessionStartMinute and minute < sessionEndMinute)
    sessionHigh := high > sessionHigh or na(sessionHigh) ? high : sessionHigh
    sessionLow := low < sessionLow or na(sessionLow) ? low : sessionLow

// Plot horizontal lines for session high and low
plot(sessionHigh, color=color.green, title="9:00 AM High", style=plot.style_stepline, linewidth=1)
plot(sessionLow, color=color.red, title="9:00 AM Low", style=plot.style_stepline, linewidth=1)

// Calculate targets and stop loss
longTarget = sessionHigh + 200
longStopLoss = sessionLow
shortTarget = sessionLow - 200
shortStopLoss = sessionHigh

// Plot targets and stop loss
plot(longTarget, color=color.blue, title="Long Target", style=plot.style_cross, linewidth=1)
plot(longStopLoss, color=color.red, title="Long Stop Loss", style=plot.style_cross, linewidth=1)
plot(shortTarget, color=color.blue, title="Short Target", style=plot.style_cross, linewidth=1)
plot(shortStopLoss, color=color.red, title="Short Stop Loss", style=plot.style_cross, linewidth=1)

// RSI
rsiLength = input(14, title="RSI Length")
overboughtLevel = input(60, title="Overbought Level")
oversoldLevel = input(40, title="Oversold Level")
rsi = ta.rsi(close, rsiLength)

// Entry conditions
longCondition = close > sessionHigh and rsi > overboughtLevel
shortCondition = close < sessionLow and rsi < oversoldLevel

// Long entry
if (showSignals and longCondition)
    strategy.entry("Long", strategy.long)

// Short entry
if (showSignals and shortCondition)
    strategy.entry("Short", strategy.short)


더 많은