피보나치 리트레이싱 양적 거래 전략

저자:차오장, 날짜: 2023-11-21 15:57:11
태그:

img

전반적인 설명

이 전략은 피보나치 리트레이스먼트 원리에 기초하여 설계되었습니다. 가격이 상승하거나 하락하고 주요 피보나치 리트레이스먼트 수준에 접근 할 때 긴 또는 짧은 포지션을 입력합니다. 이 전략은 피보나치 이론을 사용하여 가격의 중요한 역전 지점을 식별하고 트렌드 역전보다 앞서 적절한 포지션을 입력하여 광범위한 시장에서 과도한 수익을 목표로합니다.

원칙

이 전략은 먼저 지난 50일 동안의 최고와 최저 가격을 계산하여 가격 이동 범위를 결정한다. 그 다음 3개의 주요 피보나치 비율인 0.236, 0.382 및 0.618을 사용하여 해당 리트레이싱 수준을 계산한다. 가격이 상승하고 0.618 수준 (황금 비율) 에 접근할 때 긴 포지션을 하고, 가격이 0.236 수준으로 떨어질 때 긴 포지션을 닫는다.

이 전략은 피보나치 회귀 이론을 활용하여, 피보나치 연속에서, 어떤 숫자는 전 두 숫자의 비율에 대략 같으며, 이 비율은 0.618에 가깝다고 관찰한다. 이 이론은 상승 또는 하락 후 0.382 또는 0.618 수준으로 회귀할 때 가격이 반전되는 경향이 있음을 시사한다. 이 전략은 따라서 이 패턴을 사용하여 입출 신호를 결정한다.

장점

이것은 전형적인 브레이크아웃 거래 전략이다. 가장 큰 이점은 트렌드 반전 전에 주요 반전 지점을 사전에 파악하고 적절하게 포지션을 입력하는 능력이다. 또한, 피보나치 이론은 기술 분석에서 널리 적용되며, 이 전략에 학술적 장점을 부여한다.

위험성

주요 위험은 피보나치 리트랙시 레벨을 뚫고도 가격이 계속 추세로 이어지고 손실을 증폭시키는 것입니다. 게다가 경험적 거래 전략은 잘못된 신호로 인한 손실을 완전히 피할 수 없습니다.

리스크를 완화하기 위해, 손실이 특정 임계치를 초과하면 Stop Loss를 출구 포지션으로 설정할 수 있습니다. 또한 더 신뢰할 수 있는 신호를 생성하기 위해 변화하는 시장 조건에 따라 피보나치 레벨을 동적으로 조정할 수 있습니다.

개선 영역

전략은 다음과 같은 방법으로 최적화 될 수 있습니다.

  1. 다른 시장 단계에 따라 피보나치 수준을 동적으로 조정하여 더 많은 유연성을 허용합니다.

  2. 신호 필터링을 위한 다른 지표, 예를 들어 부피, 이동 평균 등을 추가하여 신호를 더 신뢰할 수 있습니다.

  3. 더 나은 위험을 제어하기 위해 후속 중지, 구역 중지 등으로 손실을 중지 메커니즘을 최적화하십시오.

  4. 안정성을 확인하기 위해 더 긴 시간 프레임에서 테스트; 최대 수익을 얻기 위해 보유 기간을 조정하십시오.

결론

이 전략은 브레이크아웃 거래 범주에 속하는 피보나치 이론에 기반한 가격 반전 지점을 식별합니다. 시장보다 앞선 전환점 기회를 포착하는 학술적 장점이 있지만 손실의 특정 확률도 있습니다. 적응 매개 변수, 스톱 손실, 추가 신호 필터링 등을 중심으로 지속적인 최적화는 수익성과 안정성을 향상시킬 수 있습니다.


/*backtest
start: 2023-10-21 00:00:00
end: 2023-11-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("斐波那契回撤交易策略", overlay=true, initial_capital=10000)

// 参数
length = input(50, title="斐波那契周期长度")
fib1 = input(0.236, title="斐波那契水平1")
fib2 = input(0.382, title="斐波那契水平2")
fib3 = input(0.618, title="斐波那契水平3")

// 计算斐波那契水平
highLevel = ta.highest(high, length)
lowLevel = ta.lowest(low, length)
range1 = highLevel - lowLevel
fibLevel1 = highLevel - range1 * fib1
fibLevel2 = highLevel - range1 * fib2
fibLevel3 = highLevel - range1 * fib3

// 条件
longCondition = ta.crossover(close, fibLevel3)
shortCondition = ta.crossunder(close, fibLevel1)

// 下单
strategy.entry("Buy", strategy.long, when=longCondition)
strategy.close("Buy", when=shortCondition)

// 图表标记
plot(fibLevel1, title="Fib 0.236", color=color.red)
plot(fibLevel2, title="Fib 0.382", color=color.orange)
plot(fibLevel3, title="Fib 0.618", color=color.green)


더 많은