손절매 및 손절매 최적화 시스템과 결합된 다중 지표 교차 모멘텀 추세 추적 전략

SMA AO AC
생성 날짜: 2024-12-05 16:21:07 마지막으로 수정됨: 2024-12-05 16:21:07
복사: 1 클릭수: 364
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

손절매 및 손절매 최적화 시스템과 결합된 다중 지표 교차 모멘텀 추세 추적 전략

개요

이 전략은 종합적인 트렌드 추적 거래 시스템으로, 연어 지표 ((Alligator), 동력 흔들림 지표 ((AO) 및 가속 흔들림 지표 ((AC) 의 여러 신호 확인 메커니즘을 결합한다. 시스템은 여러 지표의 교차와 트렌드 확인을 통해 시장의 흐름을 식별하고, 동적 스톱 로즈와 함께 위험을 관리하여 제어 가능한 거래 효과를 달성한다.

전략 원칙

전략의 핵심 논리는 세 가지 주요 구성 요소에 기반합니다.

  1. ?? 어 지표 시스템: 다른 주기 ((13/8/5) 의 이동 평균을 사용하여, 입술선 ((Lips) 과 치아선 ((Teeth) 의 교차로 트렌드 방향을 확인한다.
  2. 동력 확인 시스템: AO와 AC 지표와 결합하여 두 지표의 양과 음값을 판단하여 트렌드 강도를 확인한다.
  3. 위험 관리 시스템: 역동적인 스톱 로드 설정을 사용하여, 지난 5 K 선의 최고/최저 지점을 기반으로 스톱 로드를 설정하고, 1: 2의 위험 수익 비율을 사용하여 스톱 로드 설정을 사용합니다.

다중 신호 발동 조건:

  • 다중 입문: 입술선에 치아줄을 착용 + AO가 긍정 + AC가 긍정
  • 빈 머리 입학: 입술선 아래로 치아줄을 착용 + AO는 마이너스 + AC는 마이너스

전략적 이점

  1. 여러 신호 확인 메커니즘은 가짜 침입의 위험을 낮춘다.
  2. 동적 중지 손실 설정은 시장의 변동성에 적응한다.
  3. 고정된 리스크/이익 비율은 장기적으로 안정적인 수익을 도모한다.
  4. 지표 포트폴리오는 트렌드를 고려하면서 동력을 고려하여 거래의 정확도를 높였습니다.
  5. 시스템 자동화도 높고, 주관적인 판단의 방해를 줄여줍니다.

전략적 위험

  1. 여러 지표로 인해 신호가 지연되어 최적의 출전 시간을 놓칠 수 있습니다.
  2. 이 경우, 시장의 불안정 상태에서 종종 잘못된 신호가 발생할 수 있습니다.
  3. 고정된 리스크/이익 비율은 모든 시장 환경에 적합하지 않을 수 있습니다.
  4. 동적 상실은 변동이 심해지면 조기 발생될 수 있다.

전략 최적화 방향

  1. 변동률 자조 메커니즘을 도입하고, 동적으로 정지 손실 비율을 조정한다.
  2. 트렌드 강도 필터를 추가하여 약한 트렌드 환경에서 거래하는 것을 피하십시오.
  3. 시장 환경 분류 시스템을 개발하여 다른 시장 상태에서 다른 파라미터 조합을 사용합니다.
  4. 거래량 확인 메커니즘에 참여하여 신호의 신뢰성을 높여줍니다.
  5. 시간 필터를 도입하는 것을 고려하여 비효율적인 거래 시기를 피하십시오.

요약하다

이 전략은 여러 가지 기술 지표를 통합하여 전체적인 거래 시스템을 구축한다. 시스템은 신호의 정확성에만 신경쓰지 않고, 엄격한 위험 관리로 자금을 보호한다. 약간의 지연 위험이 있음에도 불구하고, 제안된 최적화 방향을 통해 전략은 더 나은 성능을 얻을 것으로 예상된다. 안정적인 수익을 추구하는 투자자의 사용에 적합하다.

전략 소스 코드
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Alligator with AO and AC Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// ---------------------------- Индикатор Аллигатор ----------------------------

// Параметры Аллигатора
jawLength = input.int(13, title="Jaw Length")
teethLength = input.int(8, title="Teeth Length")
lipsLength = input.int(5, title="Lips Length")

jawOffset = input.int(8, title="Jaw Offset")
teethOffset = input.int(5, title="Teeth Offset")
lipsOffset = input.int(3, title="Lips Offset")

// Расчёт скользящих средних
jawLine = ta.sma(close, jawLength)
teethLine = ta.sma(close, teethLength)
lipsLine = ta.sma(close, lipsLength)

// Сдвиг линий
jaw = jawLine[jawOffset]
teeth = teethLine[teethOffset]
lips = lipsLine[lipsOffset]

// Отображение линий Аллигатора
plot(jaw, color=color.blue, linewidth=2, title="Jaw (13,8)")
plot(teeth, color=color.red, linewidth=2, title="Teeth (8,5)")
plot(lips, color=color.green, linewidth=2, title="Lips (5,3)")

// ---------------------------- Awesome Oscillator (AO) ----------------------------

// Расчёт AO
medianPrice = (high + low) / 2
ao = ta.sma(medianPrice, 5) - ta.sma(medianPrice, 34)

// Отображение AO
hline(0, "Zero Line", color=color.gray)
plot(ao, title="Awesome Oscillator", color=(ao >= 0 ? color.green : color.red), style=plot.style_histogram, linewidth=2)

// ---------------------------- Accelerator Oscillator (AC) ----------------------------

// Расчёт AC
ac = ao - ta.sma(ao, 5)

// Отображение AC
plot(ac, title="Accelerator Oscillator", color=(ac >= 0 ? color.green : color.red), style=plot.style_histogram, linewidth=2)

// ---------------------------- Логика сигналов и управление позицией ----------------------------

// Условия для открытия длинной позиции
longCondition = ta.crossover(lips, teeth) and ao > 0 and ac > 0
if (longCondition)
    // Определение уровней stop-loss и take-profit
    stopLevel = ta.lowest(low, 5) // Минимум за последние 5 свечей
    takeProfit = close + (close - stopLevel) * 2 // Соотношение риска к прибыли 1:2

    // Открытие длинной позиции
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit", "Long", limit=takeProfit, stop=stopLevel)

// Условия для открытия короткой позиции
shortCondition = ta.crossunder(lips, teeth) and ao < 0 and ac < 0
if (shortCondition)
    // Определение уровней stop-loss и take-profit
    stopLevelShort = ta.highest(high, 5) // Максимум за последние 5 свечей
    takeProfitShort = close - (stopLevelShort - close) * 2 // Соотношение риска к прибыли 1:2

    // Открытие короткой позиции
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit Short", "Short", limit=takeProfitShort, stop=stopLevelShort)

// Отображение уровней на графике
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")