フィッシャー変換指標バックテスト戦略


作成日: 2023-12-04 13:43:05 最終変更日: 2023-12-04 13:43:05
コピー: 2 クリック数: 937
1
フォロー
1619
フォロワー

フィッシャー変換指標バックテスト戦略

概要

フィッシャー変換指数反測策は,価格のフィッシャー変換を計算し,価格の逆転点をインデティフィーし,それに応じて取引シグナルを生成する.この策はフィッシャー変換公式を用いて価格を処理し,価格の非高士分布特性を除去し,高士分布に近い標準化指数を生成する.この策は,フィッシャー変換曲線のターニングポイントに基づいて価格の逆転を判断し,買入と売り出しシグナルを生成する.

戦略原則

この戦略の核心は,フィッシャー変換公式を使用して価格を処理し,価格の自然分布の非高ステル特征を除去することです.フィッシャー変換公式は次のとおりです.

y = 0.5 * ln((1+x)/(1-x))

ここで,xは処理された価格で,Length周期内の最も最近の最高値と最低値を最高値と最低値の関数で見つけ,標準化します.公式は以下の通りです.

x = (価格 - 最低価格) / (最大価格 - 最低価格) - 0.5

このように処理された価格は,高氏分布に近似的に適合する.そして,それをフィッシャー変換公式に代入して,フィッシャー変換曲線が得られる.フィッシャー変換曲線のターニングポイントは,価格反転の信号である.

フィッシャー変換曲線が正から負に変化すると,売り信号が生じ,負から正に変化すると,買い信号が生じます.

優位分析

  1. フィッシャー変換指数は,価格の非高氏分布特性を取り除き,価格をより規範化し,偽信号を減らす

  2. 価格の逆転を捉え,上昇と下落を回避する

  3. 参数調整の柔軟性,回転感度調整可能

  4. 複数の市場環境に対応するカスタマイズ可能な方向

  5. 戦略の論理はシンプルで理解しやすい.

リスク分析

  1. パラメータを正しく設定しない場合,価格の逆転点が逃れ,または偽信号が発生する可能性があります.

  2. 固形ディスクは滑点の影響を受けやすいため,信号を完璧に実行できない可能性があります.

  3. 価格が急激に波動する時には,フィッシャー曲線は反転点を判断するのが難しい.

  4. 裏返し後,再入場確認が必要で,実機操作が困難である.

解決策は

  1. Lengthのパラメータのサイズを調整し,最適化パラメータ

  2. 信号の実行を確実にするための適正な開放条件

  3. 偽信号をフィルターする他の指標と組み合わせる

  4. 戦略のルールに厳格に従い,リスクをコントロールする

最適化の方向

  1. Lengthのパラメータのサイズを最適化して,最適のパラメータの組み合わせを見つける

  2. フィルタリング条件を追加し,平均線,波動率指標などの偽信号を回避する.

  3. 単一損失を抑えるための止損機構の増強

  4. 継続的なトレンドを追跡するために再入学メカニズムに加入

要約する

フィッシャー変換指数反射策は,価格の非高斯特特性を除去し,価格反転点を特定することで,容易に実現可能な価値策である.この策の優点は,パラメータ調整の柔軟性であり,反転を捕捉しやすいことにある.この策の劣点は,実況操作の難しさであり,入場規則を厳格に遵守する必要があることにある.この策は,将来,複数の手段によって最適化され,実況アプリケーションに適している.

ストラテジーソースコード
/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version = 2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v2.0 22/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. 
//
//  For signal used zero. 
// 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")
hline(0, color=blue)
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 > 0, 1,
	   iff(nFish < 0, -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")