허스트 퓨처 분할선 전략

SMA
생성 날짜: 2024-04-29 13:58:06 마지막으로 수정됨: 2024-04-29 13:58:06
복사: 2 클릭수: 903
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

허스트 퓨처 분할선 전략

개요

허스트 미래 경계선 전략은 J.M. 허스트가 1970년대에 제안한 미래 경계선 (Future Line of Demarcation, FLD) 개념을 기반으로 한 거래 전략이다. 이 전략은 금융 차트에서 간단하지만 의미있는 선을 그리는 것으로, 즉 가격 데이터를 시간 축에서 반주기를 앞으로 이동시키는 것으로 미래의 가격 움직임을 예측한다. 구체적으로 이 전략은 주로 세 개의 허스트 주기의 상호 작용을 고려한다. 신호 주기, 거래 주기 및 트렌드 주기.

전략 원칙

허스트의 미래 분계선 전략의 핵심은 가격 데이터를 시간축에서 반주기를 전진시켜 미래 분계선을 구축하는 것이다. 예를 들어, 40 일 주기에서, FLD는 현재 가격 데이터를 차트에 20 일 전진하여 나타낸다. 이 전략은 주로 세 개의 허스트 주기에 초점을 맞추고 있다. 신호주기 (20 일), 거래주기 (20 일) 및 트렌드주기 (80 일). 가격과 이 세 가지 FLD 선의 교차 및 반향 모형을 관찰함으로써 거래자는 시장의 추세를 판단하거나 정리할 수 있다.

전략적 이점

허스트의 미래 경계선 전략의 주요 장점은 다음과 같습니다.

  1. 단순하고 이해하기 쉬운: 이 전략은 간단한 FLD 개념에 기반하여 이해하기 쉽고 적용하기 쉽다.
  2. 전향성: 가격 데이터를 앞으로 이동시켜, FLD는 미래의 가격 움직임을 예측한다.
  3. 다주기 분석: 이 전략은 세 개의 다른 허스트 주기를 결합하여 더 포괄적인 시장 분석을 제공합니다.
  4. 트렌드 및 정렬 식별: 가격과 FLD 라인의 상호 작용 패턴을 관찰하여 거래자는 시장의 추세 또는 정렬을 판단 할 수 있습니다.
  5. 사용자 정의: 이 전략은 조정 가능한 평점 트리거를 제공하며, 거래자는 자신의 취향에 따라 퇴출 지점을 설정할 수 있다.

전략적 위험

허스트의 미래 경계선 전략에는 장점이 있지만, 몇 가지 잠재적인 위험도 있습니다.

  1. 매개 변수 감수성: 이 전략의 성능은 주기 길이와 같은 매개 변수에 민감할 수 있으며, 다른 매개 변수 설정은 다른 결과를 초래할 수 있다.
  2. 시장 적응성: 이 전략은 추세가 명확하지 않거나 급격하게 변동하는 시장과 같은 특정 시장 조건에서 좋지 않을 수 있습니다.
  3. 미지수: FLD는 역사적인 데이터에 기반하여 계산되기 때문에 미지수가 있을 수 있다.
  4. 과도한 거래: 만약 평점 트리거를 잘못 설정하면 과도한 거래와 높은 거래 비용을 초래할 수 있다.

이러한 위험을 완화하기 위해, 거래자는 변수 최적화를 고려할 수 있으며, 다양한 시장 조건에 맞게 전략을 조정하고, 적절한 스톱 로즈 및 위험 관리 조치를 설정할 수 있습니다.

전략 최적화 방향

허스트의 미래 경계선 전략은 다음과 같은 부분에서 최적화 될 수 있습니다.

  1. 매개 변수 최적화: 전략의 성능을 향상시키기 위해 주기 길이나 평점 트리거와 같은 매개 변수를 최적화한다.
  2. 다중 시간 프레임 분석: 이 전략을 다양한 시간 프레임에 적용하여 더 포괄적인 시장 관점을 얻습니다.
  3. 다른 지표와 결합:FLD를 다른 기술 지표와 결합하여 신호의 신뢰성을 높인다.
  4. 위험 관리: 위험을 통제하고 수익을 최적화하기 위해 스톱 손실 및 포지션 관리 장치를 도입하십시오.
  5. 시장 적응성: 다양한 시장 조건 (예: 트렌드, 변동 등) 에 맞게 타겟화된 최적화 계획을 개발한다.

이러한 최적화를 통해, 허스트의 미래 분계선 전략은 다양한 시장 환경에 더 잘 적응할 수 있으며, 안정성과 수익성을 향상시킬 수 있습니다.

요약하다

허스트 미래 경계선 전략은 J.M. 허스트의 미래 경계선 개념에 기반한 혁신적인 거래 전략이다. 가격 데이터를 반주기를 앞당겨서 미래 경계선을 구성하고 세 가지 다른 허스트 주기를 결합하여 미래 가격 움직임을 예측한다. 신호 주기, 거래 주기 및 트렌드 주기. 거래자는 가격과 FLD 선의 교차 및 오차 패턴을 관찰하여 시장 추세를 판단하거나 종결하고 진출 지점을 결정할 수 있다. 이 전략은 단순하고 예측 가능하며 다주기 분석과 같은 장점이 있지만, 파라미터 민감성, 시장 적응성 및 지연과 같은 잠재적인 위험도 있습니다.

전략 소스 코드
/*backtest
start: 2024-04-27 00:00:00
end: 2024-04-28 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © BarefootJoey

//@version=5
strategy("Hurst Future Lines of Demarcation Strategy", overlay=true)

// FLD Settings
source      = input(ohlc4, 'Source')
smoothFLD   = input.bool(false, 'Smooth FLD')
FLDtransp   = input(33, 'FLD transparency')
FLDsmooth   = input.int(5, "FLD Smoothing", minval=1, tooltip="Number of trading days to smooth the FLD")   
FLD_out = ta.sma(source , smoothFLD ? FLDsmooth : 1)

close_buy_in_1 = input.string('Price', 'Input Close Trigger 1', options=['Price', 'Signal', 'Trade', 'Trend', 'None'])
close_buy_in_2 = input.string('Trade', 'Input Close Trigger 2', options=['Price', 'Signal', 'Trade', 'Trend', 'None'])

// Quarter Cycle (Default: 20 day) Length Pivot Cycle
col_q = input.color(#da00ff, "Quarter Cycle Color")
cyc_q = input.int(5, "Signal Cycle Length")
plot(FLD_out, color=color.new(col_q, FLDtransp), title='Signal FLD', offset = math.round(cyc_q/2) )

// Trade Cycle (Default: 20 day) Length Pivot Cycle
col = input.color(#ff9800, "Trade Cycle Color")
cyc = input.int(20, "Trade Cycle Length")
plot(FLD_out, color=color.new(col, FLDtransp), title='Trade FLD', offset = math.round(cyc/2) )

// Double Cycle (Default: 80 day) Length Pivot Cycle
col_d = input.color(color.aqua, "Double Cycle Color")
cyc_d = input.int(80, "Trend Cycle Length")
plot(FLD_out, color=color.new(col_d, FLDtransp), title='Trend FLD', offset = math.round(cyc_d/2) )

// Strategy Plots
price = source
signal = FLD_out[math.round(cyc_q/2)]
trade = FLD_out[math.round(cyc/2)]
trend = FLD_out[math.round(cyc_d/2)]

// Trend State
var state = 0
if signal > trade and trade > trend 
    state := 1 // (A)
    state
if state == 1 and price < signal
    state := 2 // (B)
    state
if signal < trade and trade > trend 
    state := 3 // (C)
    state
if state == 3 and price < signal 
    state := 4 // (D)
    state
if signal < trade and trade < trend 
    state := 5 // (E)
    state
if state == 5 and price < signal
    state := 6 // (F)
    state
if signal > trade and trade < trend
    state := 7 // (G)
    state
if state == 7 and price < signal
    state := 8 // (H)
    state
state := state

// Strategy Definitions
close_buy_out_1 = close_buy_in_1 == 'Price' ? price : close_buy_in_1 == 'Signal' ? signal : close_buy_in_1 == 'Trade' ? trade : close_buy_in_1 == 'Trend' ? trend : na
close_buy_out_2 = close_buy_in_2 == 'Price' ? price : close_buy_in_2 == 'Signal' ? signal : close_buy_in_2 == 'Trade' ? trade : close_buy_in_2 == 'Trend' ? trend : na
buy = ta.crossover(price, signal) and state == 1
close_buy = strategy.position_size>0 and ta.crossunder(close_buy_out_1, close_buy_out_2)
sell = ta.crossunder(price, signal) and state == 6
close_sell = strategy.position_size<0 and ta.crossover(close_buy_out_1, close_buy_out_2)

// FLD Interaction State Background
interaction_color = state == 1 ? color.green : // A
  state == 2 ? color.aqua : // B
  state == 3 ? color.blue : // C
  state == 4 ? color.purple : // D
  state == 5 ? color.white : // E
  state == 6 ? color.red :// F
  state == 7 ? color.orange : // G
  state == 8 ? color.yellow : na // H

bgcolor(color.new(interaction_color, 90), title= "A-H Background")

bar_color = strategy.position_size>0 ? #00ff0a : strategy.position_size<0 ? #FF0000 : na
barcolor(bar_color)

if buy
    strategy.entry("Buy", strategy.long)
if close_buy
    strategy.close("Buy", qty_percent=100)

if sell
    strategy.entry("Sell", strategy.short)
if close_sell
    strategy.close("Sell", qty_percent=100)

// EoS made w/ ❤ by @BarefootJoey ✌💗📈