楽天証券RSSを使用しての自動化について おまけ

最終更新日

先日は、ザックリ関数の一覧などを見て、何とかなりそうだ、ということでしたが、実際、ちょこっといじってみて、ワークシート関数のほうは

=RssIndexMarket("N225","始値")
=RssMarket(”7806","始値")

こんな感じで、設定してやれば、メニューの 各種設定⇒更新間隔の設定 で指定した秒毎に、値が更新されてくれるようです。

VBAの方では、サンプルでダウンロードした trigger_order_samplesheet.xlsm のシート[一括発注_国内株]の発注条件欄を借りて、注文を入れてやるには、以下のような記述で発注ができました。
※order_samplesheet.xlsm ではなくて trigger_order_samplesheet.xlsm の方でした。。。

シートの12行目の薄いオレンジの欄に必要な発注条件を設定してやって、1か所だけ、グレー背景の「発注ID」をシート[発注ID一覧]にあるものとかぶらないように入力して実行してやれば、発注が通りました。

下記も必要です。
①マーケットスピード2を立ち上げてログインしておく
②VBAの方でも ツール⇒参照設定 でRSSのライブラリをチェックしてやる
③シート[一括発注_国内株]のセルD8「発注トリガー」は「0:待機中」のままにしておく。
ExcelのメニューのマーケットスピードⅡで
④リボン上の 各種設定⇒RSS設定 で 
・注文確認画面 の 「表示する」 チェックボックスをOFFにしてやる。
・1回あたりの発注上限金額がデフォルトで 0 になっているので、必要な金額を設定する
⑤リボン上で「発注可」としておく

以上の設定をして、以下のコードを実行したら、発注が通りました

Sub order_test()

    Dim order_result
    Dim ws1 As Worksheet
    
    Set ws1 = Worksheets("一括発注_国内株")
    
    order_result = RssMarginOpenOrder_v(ws1.Range("C12"), _
    ws1.Range("E12"), _
    ws1.Range("F12"), _
    ws1.Range("G12"), _
    ws1.Range("H12"), _
    ws1.Range("I12"), _
    ws1.Range("J12"), _
    ws1.Range("K12"), _
    ws1.Range("L12"), _
    ws1.Range("M12"), _
    ws1.Range("N12"), _
    ws1.Range("O12"), _
    ws1.Range("P12"), _
    ws1.Range("Q12"), _
    ws1.Range("R12"), _
    ws1.Range("S12"), _
    ws1.Range("T12"), _
    ws1.Range("U12"), _
    ws1.Range("V12"), _
    ws1.Range("W12"), _
    ws1.Range("X12"))
    
    MsgBox ("結果:" & order_result)

End Sub

成功したときの戻り値[order_result]は何もないようでした。
ただ、何もなければ成功しているかというとそうでもなく、注文条件の設定などの不備があれば、 シート[発注ID一覧]にその内容が表示されるので、それに合わせて注文条件などを変更してやれば発注が通るようになるかと。

あとは、Application.OnTime 使ってやれば、私の運用についてはほぼ自動化ができそうです。
週末に作成して、来週試運転、以降は楽々運用の世界に突入か。。。
続きを読む

owner