楽天RSSが自動売買に対応しました。
それを記念して、今回は朝にいちいちマーケットスピード2を自分で起動せず、Pythonに任せてしまう方法を書いてゆきます。

以下ではExcelをPythonで動かすという手法を取っておりますが、Pythonだとあらゆるアプリを動かす事がやりやすいので、その手法を取っております。まずPythonを勉強してみたい方は「シゴトがはかどる Python自動処理の教科書」もしくは「退屈な事はPythonにやらせよう」をオススメしておきます。一回さっと目を通し、傍らにおいておけば作業する時に、そういえば!となります。

では、実行の流れとしては以下です。

①目的の.pyファイルを作ると、windowsの標準機能であるタスクスケジューラーに登録して、.pyファイルが起動する時間を設定する。
②時間になると下に書いたプログラムが動く。マーケットスピードは毎日16時に自動でログオフされるため、その時間には落とすように、.pyファイル内で待機時間設定する。
③タスクスケジューラで毎日、定時に動くのでPCは付けっぱなしで、毎日PCがお金を稼いでくれる。

トレードストラテジーはエクセル内で設定すればよく、今日は上の①-③で活躍するpythonコードを紹介します。

なお、pyautoguiを使いまくっているので、挙動が変であれば待機時間を延ばしてみてください。
(スマートなスクリプトではないということです。もっといい方法があればコメントください。)

import subprocess #マーケットスピードを起動させるために使います。
import time
import os
import xlwings as xw #僕が好きなエクセルを動かすライブラリです。一番安定してます。
import pyautogui as py #キーボード操作で有名なライブラリです。

market_speed = None

# RSSを起動します
def start_rss():
    py.hotkey("win","m")#邪魔なウィンドウは最小化 pyautoguiを使うときは必ず使うことを推奨。
    #この下の行は重要です。binがあるところをディレクトリに設定しないと動きませんでした。
    os.chdir(r'C:\Users\*************\AppData\Local\MarketSpeed2\Bin')
    global market_speed
    #EXEファイルを探して、下で指定してください。
    market_speed_path = r"C:\Users\********\AppData\Local\MarketSpeed2\Bin\MarketSpeed2.exe"
    market_speed = subprocess.Popen(market_speed_path)
    #market_speed.wait()
    time.sleep(20)
    #10秒程度だと、朝一では少ない。バージョンアップの確認が入ります。時にはもっと時間がかかるかもしれません。
    #画面中央のクリックを入れないと不安定
    py.click(1280,800)#画面中央をクリック 画面中央なのか確認をお願いします。
    time.sleep(1)
    py.typewrite("*********")  #パスワード ログインIDは記録させておくため入力しない
    time.sleep(2)
    py.press("Enter")
    time.sleep(10)
    #こちらも10秒では少ない

    
# RSSを停止します
def stop_rss():
    global market_speed
    market_speed.kill()

#エクセルを起動してランキングを付けます。
def excel_move():
    py.hotkey("win","m")
   #好きな場所にRSSの自動売買の設定をしたエクセルファイルをおいてください。
    wb = xw.Book(r'C:\Users\*******************\sample_trade.xlsm')
    wb.app.activate(steal_focus=True)
    #下は重要な行。エクセルのアドインを読み込みます。xlwingsだと通常起動ではアドインを読み込まないことが多いです。
    addin_path=r'C:\Users\*********\AppData\Local\MarketSpeed2\Download\rss\MarketSpeed2_RSS_64bit.xll'
    wb.app.api.RegisterXLL(addin_path)
    #画面中央をクリック またもや画面中央なのか確認をお願いします。
    py.click(1280,800)
    time.sleep(1)
    #エクセルのメニューボタンをaltを押して動かしてゆきます。
    py.press("alt")
    time.sleep(0.1)
    #マーケットスピート2のメニューを選ぶ。実装する際にはエクセルを起動してaltを押した後、メニュー欄を確認してください。
    py.press("y")
    py.press("2")
    time.sleep(0.1)
    #マーケットスピード2に接続する。自動的に接続する設定にしていると、注意が必要です。僕は能動的に接続するほうが安心だと思います。
    py.press("y")
    py.press("1") 
    #接続に10秒ぐらいかかる
    time.sleep(10.0)
    #エクセルで常時監視し、RSSと組み合わせると好きにトレードができるはずです。
    #もし、朝の8時に起動して4時に終了させるときは上の10秒待機を28800秒に変更ください。
    app = xw.apps.active 
    wb.save()
    wb.close()
    app.kill()
    
start_rss()
excel_move()
stop_rss() 

#上のexcel move()は省いて、マーケットスピードだけの起動・シャットダウンにして、エクセルは別で動かしても良いと思います。

コメント文を読んでもらうと概ねわかるように書きました。
あとは楽天RSSの構文を覚えて行けば、自由にシステムトレードができると思います。
リスクエストあれば連絡ください。

上記のプログラムさえあれば、後はエクセルの問題なので、誰でも自動取引ができると思いますよ。

ではでは。

投稿者

SHIN

7件のコメント

  1. […] どうやって自動売買するの?自動売買の始め方 Pythonでマーケットスピード2を起動後、Excel・楽天RSSで自動売買する方法 […]

    プログラミングで自動売買したいなら、まずは証券会社へのログインを自動でやりなさい。 | Shinの株ブログ
  2. コメント失礼します。記事を参考にして自動売買のパーツの1部を作成する事ができました。貴重な情報を記事にして頂き、ありがとうございます。

    EG
    1. 役に立ててうれしい限りです。
      普通にPYTHONでExcelを起動しただけでは、RSSのadd inが動かなかったので、それを読み込むのがキーポイントだと思います。
      自動売買ライフ頑張ってください。

      SHIN
  3. コメント失礼します。
    shinさんのブログを参考に自動売買のプログラムを作成し、試験運用していたのですが、1週間くらいうまく動いていたのですが
    急にアドインを読み込まなくなり困っています。マーケットスピードのプログラム更新等もないので何が原因で突然稼働しなくなったわかりません。
    開発時の経験等で他にもプログラムの文を追加したほうが、安定してアドイン読込されるなどアドバイスいただけると幸いです。

    butan
    1. アドインが動かないのは致命的ですね。
      office365であれば、office365からログアウトされた状態になっている、ウィンドウのactivationが上手くいっていない、等がトラブルの原因ではあります。
      マーケットスピード側での問題なら、再インストールで治る事もあります。
      大概はオフィス側の問題だったりす
      るので、権限等の所も見たり足掻いている内に問題が解決するのが私のパターンです。
      的確ではなく申し訳ないですが、足掻いて見て下さい。

      SHIN

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です