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

가격 패턴에 기반 한 이중 하위 및 상위 자동 거래 전략

저자:차오장, 날짜: 2024-12-12 17:29:41
태그:

img

전반적인 설명

이 전략은 차트 패턴 인식에 기반을 둔 자동화된 거래 전략이다. 이 전략은 주로 시장에서 이중 하위 및 이중 상위 형성을 식별하여 거래 결정을 내리고, 특정 기간 동안 가격 움직임을 모니터링하고, 자격 패턴이 나타날 때 자동으로 거래 명령을 실행한다. 이 전략은 이 주요 가격 패턴을 시각화하기 위해 지그재그 지표를 활용하여 거래자가 시장 추세를 직관적으로 이해하는 데 도움이됩니다.

전략 원칙

전략의 핵심 논리는 기술 분석을 통해 이중 하위 및 이중 상위 패턴을 식별하는 것입니다. 구체적인 구현은 다음의 주요 단계를 포함합니다.

  1. 모니터링 기간 (디폴트 100 기간) 및 룩백 기간 (디폴트 100 기간) 설정
  2. 기술 분석 기능을 사용하여 기간 최고와 최저를 계산합니다.
  3. 현재 가격과 역사적 가격을 비교하여 이중 바닥 또는 상단의 형성을 결정
  4. 패턴 확인 후 해당 트레이드 오더를 자동으로 실행
  5. 가격 돌파구 기반의 출구 조건을 정하여 적시에 스톱 로스 또는 수익을 취하기

전략적 장점

  1. 높은 자동화: 전략은 자동으로 시장 패턴을 식별하고 거래를 실행하여 수동 개입을 줄입니다.
  2. 좋은 시각화: 분석 및 검증을 위해 지그자그 라인을 통해 시장 패턴을 명확하게 표시합니다.
  3. 유연한 매개 변수: 모니터링 기간과 리크백 기간은 다른 시장 조건에 맞게 조정될 수 있습니다.
  4. 포괄적 위험 관리: 위험 관리에 대한 명확한 입출입 조건
  5. 강한 적응력: 특히 단기 시장에 적합합니다 (1분, 3분, 5분)

전략 위험

  1. 가짜 파업 위험: 시장은 잘못된 신호로 이어지는 잘못된 이중 하위/위 패턴을 나타낼 수 있습니다.
  2. 미끄러짐 위험: 빠르게 변화하는 시장에서 상당한 미끄러짐 손실에 직면 할 수 있습니다.
  3. 매개 변수 의존성: 전략 성능은 매개 변수 설정에 크게 의존합니다.
  4. 시장 환경 의존성: 유행 시장에서 좋은 성과를 거두지만 유행 시장에서 빈번한 잘못된 신호를 생성 할 수 있습니다.
  5. 기술적 제한: 지표 지연으로 인해 최적의 입구 지점을 놓칠 수 있습니다.

전략 최적화 방향

  1. 추가 기술 지표 도입: 거짓 신호를 필터하기 위해 RSI, MACD 등과 결합
  2. 매개 변수 선택 최적화: 백테스팅을 통해 모니터링 및 룩백 기간 최적화를 권장합니다.
  3. 리스크 제어 강화: 동적 스톱 손실 및 후속 스톱 이익 기능을 추가
  4. 시장 환경 인식 추가: 다른 시장에서 매개 변수를 조정하는 경향 식별을 포함
  5. 포지션 관리 최적화: 시장 변동성에 따라 거래 크기를 동적으로 조정합니다.

요약

이것은 잘 설계되고 실용적인 자동화 거래 전략입니다. 이중 하위 및 상위 패턴의 정확한 식별을 통해 유연한 매개 변수 설정 및 포괄적인 위험 통제와 결합하여 단기 시장 반전 기회를 효과적으로 포착합니다. 특정 위험이 존재하지만 지속적인 최적화 및 개선으로이 전략은 신뢰할 수있는 거래 도구가 될 가능성이 있습니다.


/*backtest
start: 2024-12-04 00:00:00
end: 2024-12-11 00:00:00
period: 3m
basePeriod: 3m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Double Bottom and Top Hunter", overlay=true)

// Parametreler
length = input.int(100, title="Dönem Uzunluğu", defval=100)
lookback = input.int(100, title="Geriye Dönük Kontrol Süresi", defval=100)

// İkili Dip ve Tepe Bulma
low1 = ta.lowest(low, length)
high1 = ta.highest(high, length)

low2 = ta.valuewhen(low == low1, low, 1)
high2 = ta.valuewhen(high == high1, high, 1)

doubleBottom = (low == low1 and ta.lowest(low, lookback) == low1 and low == low2)
doubleTop = (high == high1 and ta.highest(high, lookback) == high1 and high == high2)

// İşlem Açma Koşulları
longCondition = doubleBottom
shortCondition = doubleTop

// İşlem Kapatma Koşulları
closeLongCondition = ta.highest(high, length) > high1 and low < low1
closeShortCondition = ta.lowest(low, length) < low1 and high > high1

// İşlem Açma
if (longCondition)
    strategy.entry("Long", strategy.long, qty=1)

if (shortCondition)
    strategy.entry("Short", strategy.short, qty=1)

// İşlem Kapatma
if (closeLongCondition)
    strategy.close("Long")

if (closeShortCondition)
    strategy.close("Short")

// Grafik Üzerinde Göstergeler ve ZigZag Çizimi
plotshape(series=longCondition, title="İkili Dip Bulundu", location=location.belowbar, color=color.green, style=shape.labelup, text="LONG")
plotshape(series=shortCondition, title="İkili Tepe Bulundu", location=location.abovebar, color=color.red, style=shape.labeldown, text="SHORT")

// var line zigzagLine = na
// if (doubleBottom or doubleTop)
//     zigzagLine := line.new(x1=bar_index[1], y1=na, x2=bar_index, y2=doubleBottom ? low : high, color=doubleBottom ? color.green : color.red, width=2)

// Zigzag çizgisini sürekli güncelleme
// line.set_xy1(zigzagLine, bar_index[1], na)
// line.set_xy2(zigzagLine, bar_index, doubleBottom ? low : high)

더 많은