CMOっていうオシレーター指標を使ってコード書いたよ（＾＾）

#CMO
CMO(Chande Momentum Oscillator)とは**分析期間の上げ幅と下げ幅のうち、上げ幅が何％なのかを表したもの**です
今回CMOを選択したした理由としては[このサイト](https://www.moneypartners.co.jp/support/tech/)のテクニカル分析辞典を眺めていてたまたま目に付いたからです笑

計算方法は以下のようなになります。
![CMO-768x377.jpg](https://qiita-image-store.s3.amazonaws.com/0/331535/0dc7e948-a5b5-4878-abf0-82686160929b.jpeg)
基本的なシグナルラインは９,14,20がオーソドックスとなり、今回は９を用いた。
出典：https://guide-fx.net/cmo-toha.html

#コード
```ruby: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記事](https://qiita.com/Ric418/items/81f6d5d7521305511e15)のコードを少し弄って書いただけです。。。。すみません。。。
@Ric418さんありがとうございます（ｍ＿　＿ｍ）

このコードを[ココ](https://factory.quantx.io/developer/ea9874c025104d938b241ca637ee2c28)で見れるようにしましたので見たい方は飛んで下さい。

#結果

![Screenshot from 2019-01-24 16-06-11.png](https://qiita-image-store.s3.amazonaws.com/0/331535/7e28a8e1-7e4c-4dbc-da61-5e4e57e3bb35.png)

３年間で初期資金量が１０万円で運用してみました。損益率が２０％でした。。。。
株の本を一冊呼んで少しした自分がまさか２桁の損益が出るのは驚いたけど銘柄の選択や売り方の方法をもうちょっと損益率上げられると思い頑張って新しい本読んでみます！！（誰か教えて.....）
ちなみに一冊目の本は[世界一やさしい 株の教科書 1年生](https://www.amazon.co.jp/dp/4800720168/ref=asc_df_48007201682573297/?tag=jpgo-22&creative=9303&creativeASIN=4800720168&linkCode=df0&hvadid=295792798442&hvpos=1o1&hvnetw=g&hvrand=5093935464221177149&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009280&hvtargid=pla-528578659332&th=1&psc=1)と言う韓国人の著者が書いた本です。動画や初心者に心強いアイテムが載っているのでおすすめですよ（＾＾）

#宣伝
勉強会でもっと理解深められるぞ〜（＾＾）

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

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

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



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