하이 로우 조건부 브레이크아웃 거래 시스템을 갖춘 고급 시간 프레임 피보나치 수정

HTF FIBO HL MA BB RSI
생성 날짜: 2024-11-28 15:01:25 마지막으로 수정됨: 2024-11-28 15:01:25
복사: 0 클릭수: 456
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

하이 로우 조건부 브레이크아웃 거래 시스템을 갖춘 고급 시간 프레임 피보나치 수정

개요

이 전략은 여러 기술 분석 도구를 결합한 고급 거래 시스템으로, 주로 높은 시간 프레임의 피보나치 리트랙트 레벨과 가격 고저점 돌파 조건에 기반하여 거래 신호를 생성한다. 전략은 더 높은 시간 프레임의 가격 데이터를 동적으로 계산하여 피보나치 리트랙트 레벨과 사용자 정의 된 가격 돌파 조건을 결합하여 완전한 거래 의사 결정 시스템을 형성한다. 이 방법은 시장의 전반적인 추세를 고려하면서도 단기 가격 돌파에 초점을 맞추고 있으며 시장의 전환점에서 잠재적인 거래 기회를 잡을 수 있다.

전략 원칙

전략의 핵심 논리는 세 가지 주요 기둥 위에 세워져 있다. 첫째는 더 높은 시간 프레임의 가격 분석, 일선과 같은 더 높은 시간 주기의 개시 하위 하위 가격을 계산하여 더 거시적인 시장 관점을 구축한다. 둘째는 피보나치 회수 레벨의 동적 계산, 높은 시간 프레임의 가격 영역을 기반으로 중요한 지지부진의 지점을 설정한다. 마지막으로 가격 돌파구를 결정하며, 회수 기간의 최고 가격과 최저 가격을 돌파구 참조로 설정한다.

전략적 이점

  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)