楽天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の構文を覚えて行けば、自由にシステムトレードができると思います。
リスクエストあれば連絡ください。
上記のプログラムさえあれば、後はエクセルの問題なので、誰でも自動取引ができると思いますよ。
ではでは。