리소스 로딩... 로딩...

다중 지표 크로스오버 모멘텀 트렌드 최적화 된 영업 및 중단 손실 시스템으로 전략을 따르는 것

저자:차오장, 날짜: 2024-12-05 16:21:07
태그:SMAAOAC

img

전반적인 설명

이 전략은 알리거터 지표, 멋진 오시일레이터 (Awesome Oscillator, AO) 및 가속기 오시일레이터 (Accelerator Oscillator, AC) 를 포함한 여러 신호 확인 메커니즘을 결합한 포괄적인 트렌드 추적 거래 시스템입니다. 이 시스템은 다중 지표 크로스 오버 및 트렌드 확인을 통해 시장 추세를 식별하며, 리스크 관리를 위한 동적 인 수익 및 스톱 로스 메커니즘과 결합됩니다.

전략 원칙

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

  1. 알리거터 시스템: 다른 기간의 이동 평균 (13/8/5), 입술 및 치아 라인 교차를 통해 트렌드 방향을 확인합니다.
  2. 모멘텀 확인 시스템: AO와 AC 지표를 결합하여 긍정적/부적 값을 통해 트렌드 강도를 확인합니다.
  3. 리스크 관리 시스템: 5개 기간의 최고/하위점에 기초한 동적 스톱 로스 설정을 사용하며, 리스크/이익 비율은 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")


관련

더 많은