
피셔 전환 교차 전략 (Fisher conversion cross strategy) 은 존 엘러스 (John Ehlers) 가 개발한 피셔 전환 지표에 기반한 기술 거래 방법이다. 이 전략은 수학적 변환을 사용하여 가격 데이터를 정형 가우스 분포로 변환하여 시장의 전환점을 더 명확하고 더 쉽게 식별한다. 전략의 핵심은 두 줄의 교차 신호를 기반으로 한다. 피셔 라인 ((주류 전환 가격값) 과 트리거 라인 ((피셔 라인 한 번의 사이클 지연 후)). 피셔 라인이 트리거 라인을 상향으로 통과하고 피셔 값이 1보다 작으면 구매 신호가 발생하여 시가 상승을 시작할 수 있음을 나타냅니다.
피셔 변환 교차 전략의 핵심 원칙은 피셔 변환을 사용하여 가격 데이터를 정형 분포로 변환하는 것이다. 구체적인 구현 과정은 다음과 같다:
이 디자인은 전략이 시장 동력의 변화를, 특히 가격 반전의 초기 단계에서 포착할 수 있도록 한다. 피셔 변환의 수학적 특성은 시장의 전환점을 더욱 두드러지게 만들고, 거래자가 잠재적인 반전 기회를 미리 식별할 수 있도록 돕는다.
피셔 전환 교차 전략은 다음과 같은 중요한 장점을 가지고 있다:
피셔의 교차 전환 전략은 장점이 많지만 몇 가지 잠재적인 위험도 있습니다.
이러한 위험을 줄이기 위해, 거래자는 지원 및 저항 수준, 거래량 분석 또는 이동 평균과 같은 다른 기술 도구와 결합하여 적절한 중단 및 중단 수준을 적용하는 것을 고려할 수 있습니다.
피셔의 전환 교차 전략에 대해 몇 가지 가능한 최적화 방향은 다음과 같습니다.
이러한 최적화는 다양한 시장 조건에 대한 전략의 적응성을 높이고, 가짜 신호를 줄이고, 전반적인 리스크-이익 특성을 개선할 수 있다.
피셔 변환 교차 전략은 수학 변환에 기반한 동적 거래 시스템으로, 가격 데이터를 정형 분포로 변환하여 시장의 전환점을 보다 명확하게 식별할 수 있다. 전략은 피셔 라인과 트리거 라인의 교차점을 거래 신호로 이용하고, 피셔 라인에 트리거 라인을 통과하여 피셔 값이 1보다 작을 때 구매하고, 피셔 라인에 트리거 라인을 통과하여 피셔 값이 1보다 크면 판매한다. 전략의 주요 장점은 시장의 반전을 조기에 식별하고, 명확한 거래 규칙을 제공하며, 가짜 신호를 줄이고, 다양한 시장에 적용된다. 그러나横盘 시장에서 가짜 신호가 발생할 수 있으며, 파라미터의 민감성이 존재하며, 하나의 지표에 지나치게 의존하는 것은 다른 시장 요소를 무시할 수 있다.
/*backtest
start: 2024-08-05 00:00:00
end: 2025-08-03 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Fisher Crossover Strategy",
overlay=true,
default_qty_type=strategy.cash,
default_qty_value=20000,
calc_on_every_tick=false)
// Fisher Transform parameters
length = input.int(9, "Fisher Length")
// Calculate the raw value
value = 0.33 * 2 * ((close - ta.lowest(low, length)) / (ta.highest(high, length) - ta.lowest(low, length)) - 0.5)
value := value + 0.67 * nz(value[1])
// Fisher transform
fisher = 0.5 * math.log((1 + value) / (1 - value))
fisher := fisher + 0.5 * nz(fisher[1])
// Trigger line is previous Fisher value
trigger = nz(fisher[1])
// Conditions
longCondition = ta.crossover(fisher, trigger) and fisher < 1
exitCondition = ta.crossunder(fisher, trigger) and fisher > 1
// Ensure one trade at a time
inTrade = strategy.position_size != 0
// Entry and exit only at candle close
if barstate.isconfirmed
if (longCondition and not inTrade)
strategy.entry("Long", strategy.long, comment="Buy")
if (exitCondition and inTrade)
strategy.close("Long", comment="Exit")
// Plot Fisher & Trigger
plot(fisher, color=color.new(color.green, 0), title="Fisher")
plot(trigger, color=color.new(color.red, 0), title="Trigger")
// Reference line at 1 for clarity
hline(1, "Level 1", color=color.red)