이 전략은 피보나치 연속을 기반으로 평균 촛불과 이동 평균을 구성하여 장기 포지션과 짧은 포지션으로만 양적 거래를 구현합니다. 초기 테스트는이 전략이 더 큰 시간 프레임에서 더 잘 수행된다는 것을 보여줍니다.
이 전략의 주요 단계는 다음과 같습니다.
평균 촛불을 만들기 위해 가장 최근의 10개의 피보나치 사이클의 평균 폐쇄, 최고, 최저 및 오픈 가격을 계산합니다.
평균 닫기 가격의 1-, 2-, 3-, 5-, 8-, 13-, 21-, 34- 및 55 기간 지수 이동 평균 (EMA) 을 계산하고 평균 EMA를 얻기 위해 그 평균을 취합니다.
긴 및 닫는 조건을 설정하십시오: 평균 촛불이 상승 패턴을 표시할 때 긴 포지션을 열고 (열기보다 높게 닫고, 상승 포진) 평균 EMA보다 높게 닫습니다. 평균 촛불이 하락 패턴을 표시할 때 긴 포지션을 닫고 (열기보다 낮게 닫고, 하락 포진) 평균 EMA보다 낮습니다.
평균 촛불을 계산하여 가격 변동을 필터링하고 이동 평균 지표와 결합하여 거래 신호를 생성함으로써이 전략은 트렌드를 효과적으로 식별하고 거래 위험을 제어 할 수 있습니다.
피보나치 계열에 기반한 평균 촛불은 무작위 가격 소음을 효과적으로 필터하고 트렌드 신호를 식별할 수 있습니다.
여러 EMA의 평균은 지지/저항 수준의 안정성을 향상시키고 신호 품질을 향상시킵니다.
단지 긴 포지션만이 거래의 수를 줄이고 거래 비용과 미끄러짐 영향을 줄입니다.
중장기 거래에 적합한 더 큰 시간 프레임에서 잘 수행됩니다.
단장 전략은 하락 시장에서 상당한 손실을 초래할 수 있습니다.
EMA 라인은 지연이 있고, 가장 좋은 입구 지점을 놓칠 가능성이 있습니다.
너무 큰 시간 프레임을 추구하면 짧은 시간 프레임에서 기회를 놓칠 수 있습니다.
제한된 매개 변수 최적화 공간은 실제 거래 성과가 백테스트 결과를 저하시킬 수 있음을 의미합니다.
손실이 증가할 때 출구 포지션에 적절한 스톱 로스를 추가하는 것을 테스트 할 수 있습니다.
ATR와 같은 변동성 측정법을 결합하여 포지션 크기를 동적으로 조정할 수 있습니다.
수익을 높이기 위해 하락 추세에서 적절한 단편 포지션을 테스트 할 수 있습니다.
가장 좋은 조합을 찾기 위해 EMA 기간 매개 변수를 최적화 할 수 있습니다.
이 전략은 피보나치 평균 촛불과 이동 평균 지표를 구성하여 양적 거래의 트렌드 신호를 식별합니다. 평균 촛불으로 가격 소음을 필터링하고 단지 장기간으로 거래 비용을 줄이는 것을 장점으로합니다. 또한 단 장기 포지션과 EMA 지체 이슈에 대한 하락 시장의 위험이 있습니다. 전반적으로이 전략은 여러 측면에서 거래 위험을 제어하고 중장기 거래에 적합한 더 큰 시간 프레임에서 잘 수행합니다. 추가 최적화는 안정성과 수익성을 향상시킬 수 있습니다.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m 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/ // © SoftKill21 //@version=4 strategy("Fibonacci candle", overlay=false ) //plot of our fibonacci candle // Fibonacci // Fn = Fn-1 + Fn-2 // F10 = 55 // 0 1 2 3 5 8 13 21 34 55 avg_close = (close[0] + close[1] + close[2] + close[3] +close[5] + close[8] + close[13]+ close[21] + close[34] + close[55]) / 10 avg_high = (high[0] + high[1] + high[2] + high[3] +high[5] + high[8] + high[13]+ high[21] + high[34] + high[55]) / 10 avg_low = (low[0] + low[1] + low[2] + low[3] +low[5] + low[8] + low[13]+ low[21] + low[34] + low[55]) / 10 avg_open = (open[0] + open[1] + open[2] + open[3] +open[5] + open[8] + open[13]+ open[21] + open[34] + open[55]) / 10 src = avg_close//input(avg_close, title="Source") out55 = ema(src, 55) out1 = ema(src, 1) out2 = ema(src, 2) out3 = ema(src, 3) out5 = ema(src, 5) out8 = ema(src, 8) out13 = ema(src, 13) out21 = ema(src, 21) out34 = ema(src, 34) avg_ema = (out55 + out1 + out2 + out3+ out5 + out8 + out13 + out21 + out34)/9 plot(avg_ema) plotcandle(avg_open, avg_high, avg_low, avg_close, title='Title', color = avg_open < avg_close ? color.green : color.red, wickcolor=color.white) long = avg_open < avg_close and avg_close > avg_close[1] and avg_high > avg_high[1] and avg_close[1] > avg_close[2] and avg_high[1] > avg_high[2] short = avg_open > avg_close and avg_close < avg_close[1] and avg_low < avg_low[1] and avg_close[1] < avg_close[2] and avg_low[1] < avg_low[2] strategy.entry("long",1,when=long and avg_close > avg_ema) strategy.close('long',when=short and avg_close < avg_ema)