この戦略は,技術分析のマスターであるジョン・エラーズによって設計されたフィッシャー・トランスフォーム指標をベースに,ロング/ショート取引の価格傾向逆転点を自動的に識別する.その最大の利点は,価格逆転の正確性とタイミングです.
この戦略は,フィッシャー変換式を使用して価格を標準化し,ガウス分布に近い価格配列を生成する.フィッシャー変換式は: y = 0.5 * ln ((((1+x) / (((1-x)).この変換を通じて,価格極端は比較的希少なイベントに変換される.最新のフィッシャー変換値が前期よりも高く/低いとき,それは潜在的な価格逆転を示唆する.この戦略は,この指標のターニングポイントに基づいて取引信号を生成する.
具体的には,戦略のステップは以下のとおりです.
この戦略の最大の利点は,取引信号の正確性とタイミングである.フィッシャー変換価格配列がガウス分布に近似しているため,フィッシャー指標によって価格逆転が迅速に識別され,反応することができる. これにより,逆転機会の間に合う把握が保証される.さらに,エラーズ・フィッシャー変換自体も高度に信頼性の高い逆転信号のために広く検証されている.
この戦略の最大のリスクは,フィッシャー変換価格配列が理論的なガウス分布に完全に適合しない可能性があることです.ギャップのような異常な市場変動は,フィッシャー指標が誤った信号を生成させる可能性があります.これらの信号を盲目的に取引すると大きな損失を引き起こす可能性があります.
このリスクを軽減するために,他の指標を組み合わせてシグナルをフィルタリングし,異常な市場での取引を避けます.また,取引頻度とサイズを減らすためにパラメータを微調整することができます.
この戦略は,次の側面で最適化できます.
この戦略は,タイムリーなトレードエントリのための価格逆転点を迅速かつ正確に特定するために,エラーズ
/*backtest start: 2023-12-08 00:00:00 end: 2024-01-07 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version = 2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 15/12/2016 // Market prices do not have a Gaussian probability density function // as many traders think. Their probability curve is not bell-shaped. // But trader can create a nearly Gaussian PDF for prices by normalizing // them or creating a normalized indicator such as the relative strength // index and applying the Fisher transform. Such a transformed output // creates the peak swings as relatively rare events. // Fisher transform formula is: y = 0.5 * ln ((1+x)/(1-x)) // The sharp turning points of these peak swings clearly and unambiguously // identify price reversals in a timely manner. // // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. Do not for real trading. //////////////////////////////////////////////////////////// strategy(title="Fisher Transform Indicator by Ehlers Backtest", shorttitle="Fisher Transform Indicator by Ehlers") Length = input(10, minval=1) reverse = input(false, title="Trade reverse") xHL2 = hl2 xMaxH = highest(xHL2, Length) xMinL = lowest(xHL2,Length) nValue1 = 0.33 * 2 * ((xHL2 - xMinL) / (xMaxH - xMinL) - 0.5) + 0.67 * nz(nValue1[1]) nValue2 = iff(nValue1 > .99, .999, iff(nValue1 < -.99, -.999, nValue1)) nFish = 0.5 * log((1 + nValue2) / (1 - nValue2)) + 0.5 * nz(nFish[1]) pos = iff(nFish > nz(nFish[1]), 1, iff(nFish < nz(nFish[1]), -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(nFish, color=green, title="Fisher") plot(nz(nFish[1]), color=red, title="Trigger")