
フィッシャー変換交差策略は,ジョン・エラーズが開発したフィッシャー変換指数に基づく技術的な取引方法である.この策略は,数学的な変換を使用して価格データを正規の高氏分布に変換し,市場の転換点をより明確で容易に識別する.策略の核心は,2つの線の交差信号に基づいている.フィッシャー線 ((主要変換価格値) とトリガーライン ((フィッシャー線の一周期遅れの後に).フィッシャー線がトリガーラインを上方から通過し,フィッシャー値が1未満の場合は,買入シグナルは発生し,看板の動きが始まる可能性があることを示している.フィッシャー線がタッチラインを下方から通過し,フィッシャー値が1より大きい場合は,買出シグナルは発生し,看板の逆転が起こる可能性があることを示している.この策は,毎回1つの取引のみを実行し,K線が確認され,取引が開始されるときに,偽の取引を減らすために,偽のシグナルは使用されます.
フィッシャー変換交差策の核心原則は,フィッシャー変換を利用して価格データを正規分布に変換することである.具体的には,以下のように実行される.
この設計は,特に価格逆転の初期の段階で,市場の動力の変化を捉えるように戦略を可能にします.フィッシャー変数の数学的な特性は,市場の転換点をより顕著に示し,トレーダーが潜在的な逆転機会を早期に識別するのに役立ちます.
フィッシャー変換交差策には以下の顕著な利点がある.
ファイシャーのクロス変換戦略には多くの利点がありますが,いくつかの潜在的なリスクがあります.
これらのリスクを軽減するために,トレーダーは,サポートとレジスタンスレベル,取引量分析,または移動平均などの他の技術的ツールと組み合わせることを検討し,適切な止損と止まりのレベルを実施することができます.
Fischerの変換交差策のいくつかの可能性のある最適化方向は以下の通りです.
これらの最適化により,異なる市場条件における戦略の適応性が向上し,偽信号が減少し,全体的なリスク・リターン特性が改善される.
フィッシャー変換交差策略は,数学変換に基づく動的取引システムで,価格データを正規分布に変換することで,市場の転換点をより明確に識別することができる. 策略はフィッシャーラインとトリガーラインの交差を取引信号として利用し,トリガーラインをフィッシャーラインで通過し,フィッシャー値が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)