0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

📈そろそろ来るかも?株&投資信託の“兆し”を分析して自動ポストする仕組みを作った話 - その14(エンベロープ)

0
Last updated at Posted at 2026-02-22

1.はじめに

どうも、趣味でデータ分析している猫背なエンジニアです。
今回は、前回に引き続き兆しシリーズのロジックについて考えたので記録していきます。

2. エンベロープ(移動平均乖離率バンド)

■ 概要
以前の記事で以下のように投稿ロジックを加えましたが、今回は1号機の粒度をさらに濃くするために「エンベロープ」というロジックも試しに入れてみようと思っています。

■ エンベロープ(移動平均乖離率バンド)
エンベロープ(移動平均乖離率バンド)は、移動平均線に対して一定の乖離を持つ伴線を引いてバンド(帯域)を表示したもの。
エンベロープは単純移動平均線(SMA)の上下に、一定幅で乖離させた複数の線を表示させたもので、価格が基本的に移動平均線に絡みつくように動き、上下バンドの範囲内に収まる習性に着目し、「順張り」「逆張り」それぞれの投資に利用することができます。
ボリジャーバンドとも似ているようですが、エンベロープは、ある期間の移動平均値から任意の幅をその上下に帯域として描くが、ボリンジャーバンドはこのエンベロープに標準偏差などの統計的な要素を盛り込んだ応用型の指標という手法になっているみたいです。

$$ Upper_n = 中心線(移動平均)* (1 + percent) $$

$$ Lower_n = 中心線(移動平均) * (1 - percent) $$

■ コーディング
以下のようにエンベロープを実装しました。

エンペローブ
def screen_envelope(df, period=20, percent=0.05):
    df = df.copy()
    # 中心線(SMA)
    df["MA"] = df["Close"].rolling(period).mean()
    # バンド
    df["Upper"] = df["MA"] * (1 + percent)
    df["Lower"] = df["MA"] * (1 - percent)
    # 最新足判定例
    last = df.iloc[-1]
    envelope_flag = False
    if last["Close"] > last["Upper"]:
        envelope_flag = True
    return envelope_flag

■ 実行結果
記事執筆時点での結果では残念ながらエンペローブを通過する銘柄がいなかったようです。残念...果たしてスペシャル枠として今後出るのでしょうかね...

4.おわりに

今回は兆しシリーズのKK-FinancialEaterの一号機を進めていきました。今回のエンペロープで一旦1号機の開発は終わります。追加で1号機に追加すべきロジックがあったら追加しようと思います。

📈 KK-FinancialEater

■ 原点(KK-Adam)
■ その1:プロトタイプ編
■ その2:収集器強化編
■ その3-番外編:グランビルの法則 - 設計編
■ その3:グランビルの法則
■ その4:移動平均乖離率
■ その5:ボリンジャーバンド
■ その6:RSI
■ その7:Stochastic
■ その8:Volume ratio
■ その9:DMI
■ その10 -番外編:ロジック変更
■ その10 -投稿編
■ その11:MACD
■ その12:一目均衡表
■ その13:パラボリック

参考文献

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?