4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Backtesting.py を使って FX の手法を実装してみた

Last updated at Posted at 2023-06-24

実装した手法の一覧と GitHub へのリンクだけを紹介する記事です。ひとつひとつの手法の実装は難しいものではありません。backtesting.py の実装経験がある方であれば、プログラムコードを見ていただくことで理解できると思っていますので、ひとつひとつのコード解説は行わないこととします。

環境認識(setup.py)

環境認識なし(StrategySetupNonクラス)

  • 0 - 環境認識なし

移動平均線(StrategySetupMavクラス)

  • 0 - 25SMA/75SMA パーフェクトオーダでのBUY判定
  • 1 - 25SMA/75SMA パーフェクトオーダでのSELL判定
  • 2 - 25SMA/75SMA パーフェクトオーダでのBUY判定(MTF)
  • 3 - 25SMA/75SMA パーフェクトオーダでのSELL判定(MTF)
  • 4 - 25SMA/75SMA/200SMA パーフェクトオーダでのBUY判定
  • 5 - 25SMA/75SMA/200SMA パーフェクトオーダでのSELL判定
  • 6 - 25SMA/75SMA/200SMA パーフェクトオーダでのBUY判定(MTF)
  • 7 - 25SMA/75SMA/200SMA パーフェクトオーダでのSELL判定(MTF)

ボリンジャーバンド(StrategySetupBbdクラス)

  • 0 - 終値3連続+2σ上回りでのBUY判定
  • 1 - 終値3連続-2σ下回りでのSELL判定
  • 2 - 終値3連続+2σ上回りでのBUY判定(MTF)
  • 3 - 終値3連続-2σ下回りでのSELL判定(MTF)

パラボリックSAR(StrategySetupSarクラス)

  • 0 - 安値がSAR(0.02)上回りでBUY判定
  • 1 - 高値がSAR(0.02)下回りでSSELL判定

ADX(StrategySetupAdxクラス)

  • 0 - 上昇トレンド優勢でBUY判定
  • 1 - 下降トレンド優勢でSELL判定
  • 2 - 上昇トレンド優勢でBUY判定(MTF)
  • 3 - 下降トレンド優勢でSELL判定(MTF)

エントリーポイント(trigger.py)

RSI(StrategyTriggerRsiクラス)

  • 0 売られすぎゾーンへの突入で買い
  • 1 買われすぎゾーンへの突入で売り

MACD(StrategyTriggerMacクラス)

  • 0 - MACDがシグナルを上抜けで買い
  • 1 - シグナルがMACDを上抜けで買い

ストキャスティクス(StrategyTriggerStcクラス)

  • 0 - %Kが%Dを上抜けで買い
  • 1 - %Dが%Kを上抜けで買い

RCI(StrategyTriggerRciクラス)

  • 0 - 売られすぎゾーンへの突入で買い
  • 1 - 買われすぎゾーンへの突入で売り

移動平均線(StrategyTriggerMavクラス)

  • 0 - 移動平均線が終値上抜けで買い
  • 1 - 終値が移動平均線上抜けで売り
  • 2 - 短期移動平均線が中期移動平均線上抜けで買い
  • 3 - 中期移動平均線が短期移動平均線上抜けで売り
  • 4 - 超短期移動平均線が短期移動平均線上抜けで買い
  • 5 - 短期移動平均線が超短期移動平均線上抜けで売り

ボリンジャーバンド(StrategyTriggerBbdクラス)

  • 0 - 終値が+2σを上抜けで買い
  • 1 - 終値が-2σを下抜けで売り
  • 2 - +2σが直近最高値を上抜けで買い
  • 3 - -2σが直近最安値を下抜けで売り
  • 4 - 終値が-3σを下抜けで買い(逆張り)
  • 5 - 終値が+3σを上抜けで売り(逆張り)
  • 6 - -3σが直近最安値を下抜けで買い(逆張り)
  • 7 - +3σが直近最高値を上抜けで売り(逆張り)

ブレイクアウト(StrategyTriggerBkoクラス)

  • 0 - 直近高値のブレイクアウト
  • 1 - 直近安値のブレイクアウト
  • 2 - 直近安値のブレイクアウト+終値連続上昇(逆張り)
  • 3 - 直近高値のブレイクアウト+終値連続下降(逆張り)

利確ポイント(profit.py)

固定(StrategyProfitFixクラス)

  • 0 - 150pips固定で決済
  • 1 - 100pips固定で決済
  • 2 - 時間足で可変pipsで決済
    • 1m: 150pips
    • 1w: 150pips
    • 1d: 150pips
    • 4h: 100pips
    • 1h: 100pips
    • 30min: 100pips
    • 15min: 50pips
    • 5min: 50pips
    • 1min: 50pips

RSI(StrategyProfitRsiクラス)

  • 0 - 買われすぎゾーンへの突入で決済
  • 1 - 売られすぎゾーンへの突入で決済

MACD(StrategyProfitMacクラス)

  • 0 - シグナルがMACDを上抜けで決済
  • 1 - MACDがシグナルを上抜けで決済

ストキャスティクス(StrategyProfitStcクラス)

  • 0 - %Dが%Kを上抜けで決済
  • 1 - %Kが%Dを上抜けで決済

RCI(StrategyProfitRciクラス)

  • 0 - 買われすぎゾーンへの突入で決済
  • 1 - 売られすぎゾーンへの突入で決済

移動平均線(StrategyProfitMavクラス)

  • 0 - 終値が20SMAを上抜けで決済
  • 1 - 20SMAが終値を上抜けで決済

ブレイクアウト(StrategyProfitBkoクラス)

  • 0 - 終値が20SMAを上抜けで決済
  • 1 - 20SMAが終値を上抜けで決済

損切りポイント(loss.py)

固定(StrategyLossFixクラス)

  • 0 - 150pips固定で損切り
  • 1 - 100pips固定で損切り
  • 2 - 時間足による可変pipsで損切り
    • 1m: 100pips
    • 1w: 100pips
    • 1d: 100pips
    • 4h: 75pips
    • 1h: 75pips
    • 30min: 75pips
    • 15min: 50pips
    • 5min: 50pips
    • 1min: 50pips

共通処理

戦略(strategy.py)

ユーティリティ(zun_util.py)

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?