LoginSignup
2
0

More than 5 years have passed since last update.

CMOっていうオシレーター指標を使ってコード書いたよ(^^)

Last updated at Posted at 2019-01-24

CMO

CMO(Chande Momentum Oscillator)とは分析期間の上げ幅と下げ幅のうち、上げ幅が何%なのかを表したものです
今回CMOを選択したした理由としてはこのサイトのテクニカル分析辞典を眺めていてたまたま目に付いたからです笑

計算方法は以下のようなになります。
CMO-768x377.jpg
基本的なシグナルラインは9,14,20がオーソドックスとなり、今回は9を用いた。
出典:https://guide-fx.net/cmo-toha.html

コード

qiita.rb
import pandas as pd
import talib as ta
import numpy as np

def initialize(ctx):
    # 設定

    ctx.logger.debug("initialize() called")
    ctx.codes = [8840,7897,6138,3289,1847,9739,6345,7554,
                    2908,8860,6436,8011,8848,7433,3724]



    ctx.symbol_list = ["jp.stock.{}".format(code) for code in ctx.codes]
    ctx.configure(
      channels={          # 利用チャンネル
        "jp.stock": {
          "symbols": ctx.symbol_list,
          "columns": ["close_price","close_price_adj"],
        }
      }
    )

    def _CMO(data):
      cp = data["close_price_adj"].fillna(method="ffill")
      cmo_S = pd.DataFrame(data=0,columns=[], index=cp.index)

      for (sym,val) in cp.items():
        cmo_S[sym] = ta.CMO(cp[sym].values.astype(np.double), timeperiod=9)

        df_buy = cmo_S[(cmo_S < -55)]
        df_sell = cmo_S[(cmo_S > 60)]


      return {
        "cmo_S": cmo_S,
        "buy:sig": df_buy,
        "sell:sig": df_sell
      }


    # シグナル登録
    ctx.regist_signal("CMO", _CMO)

def handle_signals(ctx, date, current):
    '''
    current: pd.DataFrame
    '''

    done_syms = set([])
    df_buy = current["buy:sig"].dropna()
    df_sell = current["sell:sig"].dropna()
    for (sym,val) in df_buy.items():
        sec = ctx.getSecurity(sym)
        sec.order(sec.unit() * 1, comment="SIGNAL BUY")


    for (sym,val) in df_sell.items():
        sec = ctx.getSecurity(sym)
        sec.order_target_percent(0, comment="SIGNAL SELL")

タイトルに書いたよって書いているのですがこのQiita記事のコードを少し弄って書いただけです。。。。すみません。。。
@Ric418さんありがとうございます(m_ _m)

このコードをココで見れるようにしましたので見たい方は飛んで下さい。

結果

Screenshot from 2019-01-24 16-06-11.png

3年間で初期資金量が10万円で運用してみました。損益率が20%でした。。。。
株の本を一冊呼んで少しした自分がまさか2桁の損益が出るのは驚いたけど銘柄の選択や売り方の方法をもうちょっと損益率上げられると思い頑張って新しい本読んでみます!!(誰か教えて.....)
ちなみに一冊目の本は世界一やさしい 株の教科書 1年生と言う韓国人の著者が書いた本です。動画や初心者に心強いアイテムが載っているのでおすすめですよ(^^)

宣伝

勉強会でもっと理解深められるぞ〜(^^)

日時:毎週金曜日19時〜
場所:神田 千代田共同ビル4階 SmartTrade社オフィス
内容:初心者(プログラミングってものを知らなくてもOK)向けに初心者(私とか)がこんな内容をハンズオン(一緒にやる事)で解説しています
備考:猛者の方も是非御鞭撻にいらして下さい、そして開発・伝導者になりましょう
もくもく会もやってるよ〜

日時:毎週水曜日18時〜
場所:神田 千代田共同ビル4階 SmartTrade社オフィス
内容:基本黙々と自習しながら猛者の方に質問して強くなっていく会
備考:お菓子と終わりにお酒が出るらしいよ〜
詳細はこちらだよ

Pythonアルゴリズム勉強会HP:https://python-algo.connpass.com/
(conpassって言うイベントサイトに飛びます)

免責注意事項

実際の取引で生じた損益に関しては一切の責任を負いかねますので御了承下さい。

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