マーケットスピード2 RSS

テーマ:

楽天RSS2に関するテクニカルメモです。

まず前提として、自分は楽天証券のRSS をフル活用して
2011くらいから株式相場で地味、かつ継続的に利益を上げています(専業)。
プログラム知識は今一つ。

そもそもPCにもあまり興味もなくて、よき道具として使えればそれで完結のタイプです。

 

しかしPCの扱いがデイトレード技術の2~3割を占めるスキルであることは体感しているため最低限の勉強は趣味と思うようにして行っています。使用しているExcelのバージョンは2016です。


株 8
プログラム 6

くらいの戦闘力だと思います。


本題です。

 

マーケットスピード2がリリースされしばらく経ち、付随するRSSも新バージョンになりました。

正式名称は
マーケットスピード  RSS (旧バージョン)

マーケットスピードⅡ RSS (新バージョン)

なのですが、名称がややこしいのでそれぞれ..

 

マーケットスピード1 RSS1

マーケットスピード2 RSS2(←2021.6.25 New !

 

と区別して記述します。

 

 

----------------知ってる人は読み飛ばし区分----------------

・マーケットスピードとは?

楽天証券の出している株アプリケーション。株価や為替、ニュースなど株取引に必要な情報を取得したり、実際に売買するツールです。無料です。

 

・楽天RSSとは?

マーケットスピードをインストールすると同時にインストールされます。

Excelにリアルタイムで変化する株価その他を取得できます。

特に難しいことはなくExcelのセルに例えば「=RssMarket("7974.T","現在値")」と入力すればそこには任天堂の現在値が表示され、リアルタイム(実際は一秒更新くらい)で動きます。

 

複数モニタはトレードの定番ですが、自分はRSSで情報を小さくまとめているため一画面だけです。同じく無料です。

 

・VBAとは

Excel(+その他Office製品)を制御するプログラムです。あなたのExcelにもついています。(Alt+F11で編集画面)
Excelで少し難しいことをしようとしたらとたんに必須になります。

 

----------------------------------------------------------


 

▼RSS2になって気づいた点、変更点。何が変わった?

 

・RSS2を使いExcelから直接発注ができるようになった。
今回の目玉。WEBやマーケットスピードを介さなくてもExcelで発注できるようになりました。現状岡三は岡三RSSにて発注可能でしたが手数料が高すぎて仕事道具としては論外でした。
 

これによりVBAと組み合わせれば「1分以内にXX円急落したら買い」などの複雑な自動発注も可能になります。頑張ればExcelで板発注に近いことも可能になります。


RSS関数の書式が変わった
銘柄の名称(例えばソフトバンク)を取得する場合セルに書き込む関数が..

 

=RSS|'9984.T'!銘柄名称 ←RSS1
=RssMarket("9984.T","銘柄名称") ←RSS2

と変更になりました。

RSS1からRSS2に移行する方はExcelにマーケットスピード2を組み込んだ後
マーケットスピードⅡタブ > 各種設定 > マーケットスピードⅡ RSS関数への置換

にて関数の一括置換が可能です。
置換えたファイルは新しいファイルとして出力されるのでRSS1用に作った元のExcelファイルが上書きされることはありません。ツールは単なるセル内文字列の置換のように見えます。VBAをゴリゴリに動かしている人はそれ以外の書換えが必要になるかもしれません。


 

取得できないRSS値の返す値が変わった

例えば寄付き前は始値はまだ決まっていないので取得不可能です。
 

そんな時、始値を取得する関数を書き込んだ箇所にはRSS1はエラーを表示しました(#VALUE! の表示)。ところがRSS2では0を表示します。エラーを何らかのトリガーとしてVBAで使ってる場合や、0になるとトリガーが発動してしまうプログラム等を組んでいる場合、大きな挙動変化が起きる可能性があるので注意するべき箇所です。例えば「株価が1000円以下になったら発注」みたいなvbaを組んでいた場合、0を返されていきなり発注されてしまうかもしれません。



・RSS2の式で値の参照が可能になった
RSS1 ではExcelに「=RssMarket("7974.T","現在値")」のように書くのがルールですがRSS2では「=RssMarket(A1,"現在値")」と書いても大丈夫になりました。
(A1セルには参照情報として「7974.T」と記述)

 

これにより、書き直しの手間等大幅に軽減され、より複雑に情報が扱えるようになります。


市場区分が省略可能になった

「=RssMarket("7974.T","現在値")」 Tは市場の記号で東証を表しますが、RSS2では省略可能になりました。市場の区分も近い将来どうなるか分からないのでこれは正解だと思います。

東証とその他での鞘が..などとボサっとつぶやくような玄人は嫌いじゃないけど帰ってくださいグッド!

 

 

・うわぁぁ DoEventsが使えなくなった

基本的にVBA実行中は新旧どちらのRSSも値が更新されません。

それによってVBA実行時間が例えば10秒あった場合、最後の方でRSS値を参照しに行くとRSS値は10秒前のままなわけで、VBAは浦島太郎になってしまっています。
 

VBAの実行が完全に終わった後に玉手箱が開けられ、VBAは自分がおじいさんになってることに気づきます。

 

これを回避するためにはRSS1では途中でDoEvents(VBAの処理を一瞬OSに返す呪文)をループさせることで値を更新させました。多くのDoEventsの説明は"一旦OSに処理を回す"みたいになってますが(よく知らん)不透明ですが挙動から判断するにRSS1にも処理を回しているようです。

バカみたいに(5000回くらい?)DoEventsをループすることで(1000じゃ無理だった)RSS1はVBA実行途中でもRSS値を"更新しない→更新する"に変えることができます。(5000回しても所要時間は0.2秒以下)

自分としてはそんなDoEventsグルグル回転よりも、その時点で溜まってる仕事だけこなしてちゃんと次に進んでくれる関数が欲しいのですがあまり聞いたことがありません。


なお、所要時間は0.2秒以下と書きましたが、PC依存かつ、Excelの状態(表示量や参照量等)に大幅に依存し、平気で10倍20倍の時間になるので自分の使う環境で実験しないと意味がありません。


・VBA実行中のRSS2の更新どうする?
色々試しました。DoEvents ダメ。 Timer制御ダメ。sleepダメ。
 

もうですね、Msgbox(=メッセージアラート)出すだけでも、出てる間は全くRSS2は更新されません。しかしメッセージ表示してる間にRSS値は変化してしてしまうと困ることも多いですから、処理を止める合理性もなんとなくわかります。
 

何か「お前は浦島だよ!」と知らせる機能は無いのか..
亀を..  無理だ。

「何で苗字知ってんだよ!」と普通に返すだろうから話がややこしくなるし、そうなるとROUND関数を使って性格を丸くしてやる必要まで出てくるのでメモリの無駄だ(余談)。


動いた!
Application.OnTime [Now()+"0:00:00.00"], "動かしたいプログラム名"

そう、VBAを一瞬停止状態にする=XX秒後にVBAを稼働させる。

OnTimeは"XX時間後にご希望のプログラムを実行させますよ"という命令です。

OnTimeでのVBA実行待機中にRSS2は更新されることを発見しました。
具体的には1つのプログラムをOnTimeを挟んで2つに分断します。

 

ぐずぐず動くVBA(すぐに浦島太郎) ←実行したいプログラム1/2

最後にOnTimeで次の処理と待ち時間を指定(待ち時間にRSS2を更新) ←苦肉の策

RSS2値を使う任意の処理 ←実行したいプログラム2/2

 

できそうだけど面倒だなぁ。何か他に案があれば提案ください (>ㅅ<)

 

 

 

・ナニコレ、VBA(VBE)編集中文字変換がおかしい

これも参った。こんな症状。
 VBE(VBA編集画面)で書いた文字が勝手にどんどん確定される(凄い早さなら大丈夫)。

 「編集中」→「へん臭cゆu」みたいな。
 打ち込んだ空白が勝手に削除される。

 

で、調べると沢山出てくる。解決方法も沢山。

→VBE編集画面→ツール→オプション→「コードの設定」を全て外す →ダメ

→OSのIME設定の補助を外す →ダメ

 

要するに設定解除方法はバージョン次第ですが、文字変換のおせっかい機能が問題。
説明通り触っても全部だめ。うーん、そりゃ、ネットでも一個も、出てこないはずでした。

 

RSS2実行中はRSS2更新の度にVBEで文字が勝手に確定される


この挙動、なんとなく見覚えがある。恐らく外部からの情報更新で挙動が変わるパターン。
RSS実行中はExcelシート上でもタイミングによってセルの値をDeleteで消せるときと消せないときがあります(右クリックから"数式と値のクリア"なら間違いなく消せる)。セル選択中に外部からの更新により何かがリフレッシュされ、リフレッシュ後だとDeleteの対象がそもそもロックオンから外れてるような挙動(これもすごい速さで選択→Deleteすれば消せる)。

参った。これは間違いなく複雑、みるからに複雑要因。よってRSS2実行中は現時点、VBAを編集することはお勧めしません。

 

 

RSS2よりRSS1の方が情報の更新が早い ゲロー(最後の最後の確認でゲボ吐いた)← 解決

RSS1と2は同時に動かすことが可能です。それはExcelの1シート内でも可能でした。

では同じ情報を取得して並べてみたらどうなるでしょう?(実験)
 

更新タイミング(アクセスタイミング?)によってはRSS2の方が更新が早い時もたまにあるもののどう見てもRSS1の方が情報取得が早いです。

RSS2は多くの場合、RSS1が更新されてから追いかけるように更新されていました。

個人的には相当な時間を費やして実験に実験を重ね"頑張ってRSS2への移行キャンペーン中"なのですがこれは個人には直せない致命傷の可能性を感じます。
 

よって自分の現状の選択肢は「RSS1を利用しつつRSS2への移行準備を済ませておく」一択となりました。現時点(2021.07)だけで今後改善されるかも知れませんし、もしかしたら個人環境(疑わしいのはRSSやらマーケットスピードの更新設定等)の可能性もあるので、ご自分で実験してみて下さい。

2021.7.26 追記:

マーケットスピードⅡメニュー > 各種設定 > 更新間隔の設定 より更新スピードを上げることで解決しそうです。

 

 

RSS1の時代、更新時間を変えてもあまり結果は変わらないという伝統をそのまま引き継いでいると思いきや、実際更新スピードがちゃんと上がるようです(なんとRSS2のディフォルトは更新間隔2秒という遅さ)。つまり、余程の悠長な取引以外、RSS2を初めて使う時点で変更必須の設定と言えそうです。

ただし、例えRSS2の更新速度を最高速度と思われる1ミリ秒にしても、RSS1の方が更新タイミングが早いこともあったので、設定数値通り動いているようには見えませんでした。ただ、実用に耐えうる(RSS1→RSS2に変更する価値がある)速度には見えます。厳密には添付画像のような単純な表示ではなく、シートにすべての数値や計算を組み込んで最終的な実験をする必要がありそうですが、これによってこの項目は解決とさせて頂きます。

 

 

おまけの要望

10年以上前、"ゴールドマンサックスをひれ伏せさせる売買システムを作る"という
野望に向かって売買システムを作り出しましたが、始めてすぐに至らないことを悟り、今も同じ考えです。

 

理由は単純。証券会社のリアクションが遅いのです。土台が違いすぎました。

発注して板乗り、信用余力やら建玉情報やら、色々複雑なのはわかりますが遅すぎてその時点で到底勝負になりません。


自作プログラムでの情報のやりとりは早すぎるとエラーが返ってくるだけならまだしも攻撃と間違えられ口座を封鎖されたことがあります。

証券会社は注意書きに色々な予防線を張ってあります。

例えば「寄付き数分前に発注しないと注文が間に合わない場合があります。」みたいなやつ。数分でどのくらい株価が動くかわかった上で、自分が損しないための条文です。数分って。直接東証とつなぐ連中と同じとは言いません。もう少し早くできませんか?

何度か逆指値注文+利確注文のセット売買を行っててすごいことが起きました。

株価の予想は的中し、自分の購入場所からブレイクを起こし遥か上の利確予定ポイントまで行きました。自分はうきうきで口座の取引内容を確認します。

ちょっとレアなデイトレクイズとして何が起こったか考えてみてください。
プロならすぐにオチが想像つくかも知れません(わかれば上手い人だと思います)。

逆指値トリガーはXX円以上になった場合、半成行気味の(確か7tick上の)指値買いでした。
さて..

まず、指値はトリガー+7tickもあるのに置いて行かれました(それだけ発注が遅いのです)。

面白いのはここから..
見事に予想利確ポイントを超えましたが、自分の発注はそもそも余裕を持ったにも関わらず約定していません。しかし株価は利確ポイントを越えてから急落。ここで自分の残っていた逆指値が刺さりますゲッソリ。さらにそこから急落は続き、自分のウキウキは目を疑うどん底マイナスの取引で終わっていました(実話)。

livestarの出来事ですがそんな逆指値システム使えますか?一見、ザラ場に張り付けないサラリーマンにも優しい夢のようなセット注文。あまり語られないこういった現象が便利そうな割にはプロに浸透しない理由の一つです。株式市場は個人が不利すぎです。証券会社さん(というより各社システムを作ってる野村さん?)もう少し頑張ってください。

 

冒頭で"株式相場で地味、かつ継続的に利益を上げています"と偉そうに書きましたが実は"地味"になり下がってている大きな要因がこれで、クリアすれば"地味"ではない収支が期待できます。しかし大手ヘッジファンドや機関投資家等を除けば全員が持ってるカードでしか勝負できないので、市場の嘘公平に不満を感じつつ割り切るしかありません。


 

以上、自分が大変時間がかかったRSS2の理解の部分です。
旬なタイミングで発信するべきだと思い、急いだため間違いがあるかも知れません。


誰かの小さな武器として役に立ち、なおかつ、さらに合理的なプログラムが出てくることを期待して書き記しております。

参考になれば幸いです。

最高の武器を揃えてザラ場でお会いしましょう。

 

 

 


以下、自分の糧となった究極の2冊
・デイトレード 中級以上(マインド)

・オズ 初心者~中級(具体例)

"教材をケチるな"は重要手法の一つ。ただしサロンとか会員制は論外。