フィボナッチ・リトレースメントに基づく定量的取引戦略


作成日: 2023-11-21 15:57:11 最終変更日: 2023-11-21 15:57:11
コピー: 1 クリック数: 661
1
フォロー
1617
フォロワー

フィボナッチ・リトレースメントに基づく定量的取引戦略

概要

この戦略は,フィボナッチ逆戻り原理に基づいて設計されている.価格が上昇または下落し,重要なフィボナッチ逆戻り位置に近づいているときに,買ったり売ったりする.この戦略は,フィボナッチ理論を利用して,価格の逆転の重要なポイントを判断し,トレンドが逆転する前に適切に入場し,大手市場を超えた余剰利益を得ることを目的としている.

原則

戦略は,まず,過去50日の最高値と最低値を計算し,価格の上昇と下落を得ます. そして,フィボナッチの3つの重要なレベルである0.236,0.382,0.618に基づいて,価格の引き戻しの位置を計算します. 価格が上昇し,0.618のレベル ((ゴールドの分割点) に近づくと,多めにします. 価格が低下し,0.236のレベルに近づくと,平仓します.

この策略はフィボナッチ回帰理論に基づいている.フィボナッチ序列の任意の数は,前2桁の比率にほぼ等しく,この比率は0.618に近い.フィボナッチ回帰理論は,価格が0.382または0.618のレベルに接近すると,反転が起こる可能性が高いと考えている.この策略は,この法則を使用して操作のタイミングを判断する.

利点

これは,より典型的な横断取引戦略である.最大の利点は,価格の逆転を事前に判断できる重要なポイントであり,トレンドが転じ始める前に適切な入場である.また,フィボナッチ理論は,技術分析で広く使用されているため,この戦略には一定の学術的根拠がある.

リスク

この戦略の主なリスクは,価格がフィボナッチ逆戻り位置を突破した後に継続して稼働し,その結果,損失の拡大のリスクが生じることにある.また,経験的判断に基づくいかなる取引戦略も,誤った判断による損失を完全に回避することはできません.

リスクをコントロールするために,ストップ・ロスのポジションを設定し,損失が一定程度に拡大したときにストップ・ロスを退出することができる.また,市場状況に応じてフィボナッチ・リトールの位置を適切に調整して,取引信号をより信頼できることができる.

最適化の方向

この戦略は以下の点で最適化できます.

  1. 動的にフィボナッチの引き下げを調整し,異なる市場段階で異なるパラメータを設定し,取引を柔軟にすることができます.

  2. 他の指標と組み合わせたフィルタリング,例えば取引量増加の判断,均等線の使用などにより,信号がより信頼性があるようにする.

  3. ストップ・ストップ戦略の最適化,ストップ・トラッキング,ストップ・ストップ・区間等によりよいリスク管理

  4. より長いデータサイクルをテストし,戦略の安定性を検証し,利益の最大化のためにポジション保持時間を調整する.

要約する

この戦略は,フィボナッチ理論に基づいて価格の逆転点を判断し,典型的な横断型の取引戦略である.特定の技術分析の根拠があり,価格転換の機会を早期に捉えることができる.しかし,一定確率の損失のリスクもある.動的にパラメータを調整し,ストップロスを設定し,フィルター条件を増加させるなどの方法で継続的に最適化することができ,戦略をより安定して収益性のあるものにする.

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

//@version=5
strategy("斐波那契回撤交易策略", overlay=true, initial_capital=10000)

// 参数
length = input(50, title="斐波那契周期长度")
fib1 = input(0.236, title="斐波那契水平1")
fib2 = input(0.382, title="斐波那契水平2")
fib3 = input(0.618, title="斐波那契水平3")

// 计算斐波那契水平
highLevel = ta.highest(high, length)
lowLevel = ta.lowest(low, length)
range1 = highLevel - lowLevel
fibLevel1 = highLevel - range1 * fib1
fibLevel2 = highLevel - range1 * fib2
fibLevel3 = highLevel - range1 * fib3

// 条件
longCondition = ta.crossover(close, fibLevel3)
shortCondition = ta.crossunder(close, fibLevel1)

// 下单
strategy.entry("Buy", strategy.long, when=longCondition)
strategy.close("Buy", when=shortCondition)

// 图表标记
plot(fibLevel1, title="Fib 0.236", color=color.red)
plot(fibLevel2, title="Fib 0.382", color=color.orange)
plot(fibLevel3, title="Fib 0.618", color=color.green)