2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

2
Posted at

1.はじめに

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

2. stochastics(ストキャスティクス)

■ 概要
以前の記事で以下のような画像のスクリーニング1号機を作り内部ロジックで「RSI」を入れましたが、今回は「Stochastics」というロジックも試しに入れてみようと思っています。

■ ストキャスティクス
stochastics(ストキャスティクス)は、RSI同様で相場の買われ過ぎ・売られ過ぎを判断する分析手法。
「%K」と「%D」の2本のラインを利用した、ファーストストキャスティックスと、「Slow%K」と「Slow%D」の2本のラインを利用したスローストキャスティクスの2種類がありますが、ファーストストキャスティックスは、相場の動きに素早く反応するため、短期売買向きでダマシも多いのが欠点です。それを補う役割を果たすのがスローストキャスティクスで、一般的にはこちらを利用することが多いです。
※ 今回はファーストストキャスティックスを実装しています。

Fast %Kの式:
$$
%K = \frac{C - L_n}{H_n - L_n} \times 100
$$
C:直近の終値 / Hn:過去n期間の最高値 / Ln:過去n期間の最低値 / n:期間(14日)

Fast %Dの式:
$$
%D = \mathrm{SMA}(%K, m)
$$
m:移動平均期間(3日) / SMA:単純移動平均

■ コーディング
以下のようにファーストストキャスティックスを実装しました。買いシグナルがあるものをピックアップする式にしているので、一般的なソースとは別かもしれません。

ファーストストキャスティックス
def screen_stochastic(df):
    df = df.copy()
    low_min = df["Low"].rolling(14).min()
    high_max = df["High"].rolling(14).max()
    df["%K"] = (df["Close"] - low_min) / (high_max - low_min) * 100
    df["%D"] = df["%K"].rolling(3).mean()

    # 最新足で判定
    last = df.iloc[-1]
    # --- 買いシグナル ---
    stochastic_flag = False
    if last["%K"] < 20 and last["%D"] < 20:
        stochastic_flag = True

    return stochastic_flag

■ 実行結果
RSIまでにスクリーニングが進んでおり、2銘柄しか削れていないことがわかります。

4.おわりに

今回は兆しシリーズのKK-FinancialEaterの一号機を進めていきました。前回に引き続きスクリーニングできていることが確認できますね。
ですが、結果からも読み取れるようにスクリーニングできる銘柄も限られてきたので、さらに質の高いスクリーニング方法を模索する必要がありそうです。

📈 KK-FinancialEater

■ 原点(KK-Adam)
■ その1:プロトタイプ編
■ その2:収集器強化編
■ その3-番外編:グランビルの法則 - 設計編
■ その3:グランビルの法則
■ その4:移動平均乖離率
■ その5:ボリンジャーバンド
■ その6:RSI

参考文献

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?