정지 이익 최적화 방법과 결합된 패턴 돌파 모멘텀 거래 전략

TP SL
생성 날짜: 2024-12-11 17:20:09 마지막으로 수정됨: 2024-12-11 17:20:09
복사: 1 클릭수: 370
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

정지 이익 최적화 방법과 결합된 패턴 돌파 모멘텀 거래 전략

개요

이 전략은 가격 분기 이론에 기반한 트렌드 추적 거래 시스템으로, 시장의 상위 하위 분기 구조를 식별하여 고정 점수의 트리거 조건과 정지 설정을 결합하여 거래를 자동화합니다. 전략의 핵심은 하위 분기 상단에 여러 개의 입시점을 설정하고, 상위 분기 하단에 빈 입시점을 설정하며, 그에 따른 정지 점수 설정을 통해 위험을 제어합니다.

전략 원칙

이 전략의 핵심 논리는 다음과 같은 몇 가지 핵심 단계를 포함합니다.

  1. 종류 식별: 연속한 3개의 K선의 높고 낮은 점을 비교하여 꼭지하 분류를 식별한다. 중간 K선의 낮은 점이 양쪽 K선보다 낮을 때 바닥 분류가 형성된다. 중간 K선의 높은 점이 양쪽 K선보다 높을 때 꼭지하 분류가 형성된다.
  2. 입시 조건: 인식이 바닥으로 분류된 후, 상위 107 지점에서 여러 개의 단일 촉발 가격을 설정합니다. 인식이 꼭대기 분류된 후, 하위 107 지점에서 공백 촉발 가격을 설정합니다.
  3. 정지 설정: 입점 가격에 따라 같은 점수를 설정하는 정지 설정.
  4. 포지션 관리: 시스템은 최신 분식 위치를 지속적으로 추적하고 그에 따라 입점 촉발 가격을 업데이트합니다.

전략적 이점

  1. 객관성이 강하다: 전략은 명확한 수학 정의에 기반하여 시장 구조를 식별하고 주관적 판단으로 인한 편향을 피한다.
  2. 위험 조절: 고정된 점수를 가진 막대기 설정으로 거래당 수익 목표가 명확하고 위험도 조절할 수 있다.
  3. 적응성: 전략은 다양한 시장 환경에서 작동할 수 있으며 특히 변동성이 높은 시장에 적합하다.
  4. 높은 수준의 자동화: 신호 인식에서 실행에 이르기까지 거래의 전체 프로세스는 자동화되어 인간의 개입이 줄어들었습니다.

전략적 위험

  1. 가짜 브레이크 위험: 시장이 단기간의 브레이크 이후 즉각적으로 반전되어 손실을 막는 경우.
  2. 흔들림 시장의 위험: 수평적으로 흔들리는 시장에서, 자주 상위 하위 분류는 과도한 거래 신호를 유발할 수 있다.
  3. 고정 점수 위험: 고정 입점과 종료 점수를 사용하는 것은 모든 시장 환경에 적합하지 않을 수 있다.
  4. 슬라이드 위험: 높은 변동성 시장에서 심각한 슬라이드 문제가 발생할 수 있습니다.

전략 최적화 방향

  1. 동적 점수 최적화: 시장 변동률에 따라 동적으로 조정할 수 있는 입점 트리거 포인트 및 정지 포인트 번호.
  2. 트렌드 필터: 트렌드 판단 지표를 추가하고, 주 트렌드 방향으로만 포지션을 다.
  3. 시장 환경 인식: 시장 환경 판단 메커니즘을 추가하여 다른 시장 상태에서 다른 파라미터 설정을 사용합니다.
  4. 포지션 관리 최적화: 다이내믹 포지션 관리 시스템을 도입하여 계좌의 순가치와 시장의 위험도에 따라 포지션 개수를 조정한다.

요약하다

이 전략은 분형 이론과 동력 돌파구 생각을 결합하여 완전한 거래 시스템을 구축한다. 전략의 장점은 객관성과 자동화 수준이 높지만 시장 환경 적응성에 대한 문제가 있다. 동적 매개 변수 조정 및 시장 환경 식별과 같은 최적화 조치를 추가함으로써 전략의 안정성과 수익성을 더욱 향상시킬 수 있다. 실물 거래에서는 투자자가 자신의 위험 용도와 자금 규모에 따라 매개 변수 설정을 조정하는 것이 좋습니다.

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

//@version=5
strategy("Fractal Buy/Sell Strategy with 107 Pips Target", overlay=true)

// 输入参数
trigger_pips = input.int(107, title="Entry Distance (Pips)")  // 入场点距离底分型或顶分型的距离
take_profit_pips = input.int(107, title="Take Profit (Pips)") // 止盈点数

pip_value = syminfo.mintick * 10 // 点值(每点等于多少价格单位)

// 计算分型
is_bottom_fractal = low[1] < low[2] and low[1] < low[0] // 判断是否为底分型
is_top_fractal = high[1] > high[2] and high[1] > high[0] // 判断是否为顶分型

// 存储分型位置
var float last_bottom_fractal = na
var float last_top_fractal = na

// 更新分型值
if is_bottom_fractal
    last_bottom_fractal := low[1]
    
if is_top_fractal
    last_top_fractal := high[1]

// 计算开盘价格
bottom_trigger_price = na(last_bottom_fractal) ? na : last_bottom_fractal + trigger_pips * pip_value
top_trigger_price = na(last_top_fractal) ? na : last_top_fractal - trigger_pips * pip_value

// 交易逻辑:底分型多单和顶分型空单
if not na(last_bottom_fractal)
    if close <= bottom_trigger_price
        strategy.entry("Buy", strategy.long)
        strategy.exit("Take Profit", from_entry="Buy", limit=bottom_trigger_price + take_profit_pips * pip_value)
        
if not na(last_top_fractal)
    if close >= top_trigger_price
        strategy.entry("Sell", strategy.short)
        strategy.exit("Take Profit", from_entry="Sell", limit=top_trigger_price - take_profit_pips * pip_value)

// 绘制分型和触发价格
plotshape(series=is_bottom_fractal, style=shape.triangleup, location=location.belowbar, color=color.green, title="Bottom Fractal")
plotshape(series=is_top_fractal, style=shape.triangledown, location=location.abovebar, color=color.red, title="Top Fractal")
plot(bottom_trigger_price, title="Buy Trigger", color=color.green, linewidth=1)
plot(top_trigger_price, title="Sell Trigger", color=color.red, linewidth=1)