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

높은 낮은 브레이크아웃 거래 시스템으로 고급 타임프레임 피보나치 리트레이싱

저자:차오장, 날짜: 2024-11-28 15:01:25
태그:HTFFIBOHLMABBRSI

img

전반적인 설명

이 전략은 상거래 신호를 생성하기 위해 주로 높은 시간 프레임 피보나치 리트레이싱 레벨과 가격 높은-저한 브레이크 아웃 조건을 기반으로 한 여러 기술적 분석 도구를 결합한 고급 거래 시스템입니다. 이 전략은 더 높은 시간 프레임 가격 데이터를 동적으로 계산하여 피보나치 리트레이싱 레벨과 사용자 정의 가격 브레이크 아웃 조건을 결합하여 완전한 거래 결정 시스템을 형성합니다. 이 접근법은 전체 시장 추세와 단기 가격 브레이크 아웃 모두를 고려하여 시장 전환점에 잠재적 인 거래 기회를 포착 할 수 있습니다.

전략 원칙

이 전략의 핵심 논리는 세 가지 주요 기둥에 기반하고 있다. 첫째는 더 높은 시간 프레임 가격 분석이며, 일일 또는 더 높은 시간 프레임 OHLC 가격을 계산함으로써 보다 거시 시장 관점을 확립한다. 둘째는 피보나치 리트레이션 레벨의 동적 계산이며, 더 높은 시간 프레임 가격 범위를 기반으로 주요 지원 및 저항 수준을 설정한다. 마지막으로, 브레이크 오브 레퍼런스로서 룩백 기간 동안 가장 높고 가장 낮은 가격을 설정함으로써 가격 브레이크 오브 결정이다. 가격이 최근 최저치를 넘어서 50% 피보나치 리트레이션 수준을 넘어서면 구매 신호가 발생하고, 가격이 최근 최고치를 넘어서 50% 피보나치 리트레이션 수준을 넘어서면 판매 신호가 발생한다.

전략적 장점

  1. 다차원 분석: 가격 행동, 트렌드 추적 및 지원/저항을 포함한 기술 분석에서 가장 존경받는 요소를 결합합니다.
  2. 높은 적응력: 매개 변수는 시간 기간, 뷰백 기간 및 피보나치 레벨을 포함하여 다른 시장 조건에 따라 조정 할 수 있습니다.
  3. 포괄적 인 위험 관리: 여러 확인 메커니즘을 통해 거짓 유출 위험을 줄입니다.
  4. 높은 시각화: 모든 주요 가격 레벨은 차트에서 명확하게 표시되며 거래 결정을 용이하게합니다.
  5. 높은 유연성: 다양한 거래 도구와 기간에 적용됩니다.

전략 위험

  1. 매개 변수 민감도: 다른 뷰백 기간 설정은 신호 품질의 상당한 차이로 이어질 수 있습니다.
  2. 시장 조건 의존성: 시장 범위에서 과도한 잘못된 신호를 생성 할 수 있습니다.
  3. 지연 위험: 룩백 기간 데이터의 사용으로 인해 빠르게 변화하는 시장에서 최적의 입구 지점을 놓칠 수 있습니다.
  4. 과도한 최적화 위험: 과도한 매개 변수 최적화는 미래의 저성능으로 이어질 수 있습니다.

전략 최적화 방향

  1. 변동성 필터링 추가: 낮은 변동성 기간을 필터링하기 위해 ATR 또는 볼링거 대역폭과 같은 지표를 추가하는 것이 좋습니다.
  2. 트렌드 필터링을 통합합니다. 전체 트렌드 방향을 확인하기 위해 이동 평균 시스템을 추가 할 수 있습니다.
  3. 출입 시기를 최적화하십시오. RSI와 같은 모멘텀 지표를 통합하여 출입 시기를 향상시킬 수 있습니다.
  4. 동적 매개 변수 조정: 시장 조건에 따라 매개 변수를 자동으로 조정하는 적응 메커니즘을 도입합니다.
  5. 강화된 리스크 제어: 동적 스톱 로스 및 수익 목표 설정을 추가합니다.

요약

이것은 여러 가지 고전 기술 분석 도구를 결합하여 이론적으로 건전하고 실용적인 거래 전략을 만드는 잘 설계 된 거래 시스템입니다. 전략의 가장 큰 특징은 다양한 시장 환경에 적응할 수있는 충분한 유연성을 유지하면서 다차원 분석을 통해 더 신뢰할 수있는 거래 신호를 제공하는 것입니다. 몇 가지 내재된 위험이 있지만 제안된 최적화 방향에 의해 전략의 안정성과 신뢰성이 더욱 향상 될 수 있습니다. 매개 변수 최적화 및 전략 개선에 시간을 투자하려는 거래자에게 이것은 훌륭한 기본 프레임워크입니다.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Fibonacci Levels Strategy with High/Low Criteria", overlay = true)

// Kullanıcıdan yüksek zaman dilimini ve mum bilgilerini al
timeframe = input.timeframe(defval = "D", title = "Higher Time Frame")
currentlast = input.string(defval = "Last", title = "Current or Last HTF Candle", options = ["Current", "Last"])

// Kullanıcıdan en düşük ve en yüksek fiyat bakış sürelerini al
lowestLookback = input(20, "Lowest Price Lookback", tooltip="The strategy will BUY when the price crosses over the lowest it has been in the last X amount of bars")
highestLookback = input(10, "Highest Price Lookback", tooltip="If Take-Profit is not checked, the strategy will SELL when the price crosses under the highest it has been in the last X amount of bars")

// Fibonacci seviyeleri ayarları
level0 = input.float(defval = 0.000, title = "Level 0")
level1 = input.float(defval = 0.236, title = "Level 1")
level2 = input.float(defval = 0.382, title = "Level 2")
level3 = input.float(defval = 0.500, title = "Level 3")
level4 = input.float(defval = 0.618, title = "Level 4")
level5 = input.float(defval = 0.786, title = "Level 5")
level100 = input.float(defval = 1.000, title = "Level 100")

// HTF mumlarını hesapla
newbar = ta.change(time(timeframe)) != 0 
var float htfhigh = high
var float htflow = low
var float htfopen = open
float htfclose = close
var counter = 0

if newbar
    htfhigh := high
    htflow := low
    htfopen := open
    counter := 0
else
    htfhigh := math.max(htfhigh, high)
    htflow := math.min(htflow, low)
    counter += 1

var float open_ = na
var float high_ = na
var float low_ = na
var float close_ = na
if currentlast == "Last" and newbar
    open_ := htfopen[1]
    high_ := htfhigh[1]
    low_ := htflow[1]
    close_ := htfclose[1]
else if currentlast == "Current"
    open_ := htfopen
    high_ := htfhigh
    low_ := htflow
    close_ := htfclose

// Fibonacci seviyelerini hesapla
var float[] fibLevels = array.new_float(6)
array.set(fibLevels, 0, open_ + (high_ - low_) * level0)
array.set(fibLevels, 1, open_ + (high_ - low_) * level1)
array.set(fibLevels, 2, open_ + (high_ - low_) * level2)
array.set(fibLevels, 3, open_ + (high_ - low_) * level3)
array.set(fibLevels, 4, open_ + (high_ - low_) * level4)
array.set(fibLevels, 5, open_ + (high_ - low_) * level5)

// Fibonacci seviyelerini grafik üzerine çiz
plot(array.get(fibLevels, 0), color=color.new(color.blue, 75), title="Fibonacci Level 0")
plot(array.get(fibLevels, 1), color=color.new(color.green, 75), title="Fibonacci Level 1")
plot(array.get(fibLevels, 2), color=color.new(color.red, 75), title="Fibonacci Level 2")
plot(array.get(fibLevels, 3), color=color.new(color.orange, 75), title="Fibonacci Level 3")
plot(array.get(fibLevels, 4), color=color.new(color.teal, 75), title="Fibonacci Level 4")
plot(array.get(fibLevels, 5), color=color.new(color.navy, 75), title="Fibonacci Level 5")

// En düşük ve en yüksek fiyat kriterlerini hesapla
lowcriteria = ta.lowest(low, lowestLookback)[1]
highcriteria = ta.highest(high, highestLookback)[1]

plot(highcriteria, color=color.green, title="Highest Price Criteria")
plot(lowcriteria, color=color.red, title="Lowest Price Criteria")

// Fibonacci seviyeleri ile ticaret sinyalleri oluştur
longCondition = close > lowcriteria and close > array.get(fibLevels, 3) // En düşük kriterin ve Fibonacci seviyesinin üstüne çıkarsa alım
shortCondition = close < highcriteria and close < array.get(fibLevels, 3) // En yüksek kriterin ve Fibonacci seviyesinin altına düşerse satış

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)


관련

더 많은