2015年10月04日 (日) | Edit |

とりあえず一番オーソドックスなケースの動作確認ができたので、書いてみます。これからやってみたい人のご参考になれば(^^;

まず、RSSはリアルタイムスプレッドシートの事で、Webサイトの更新を配信するXMLの事じゃありません。。(私はずーっと勘違いしてました)
何が出来るかと言うと、Excelでリアルタイム株価が取得できます。
楽天RSSと岡三RSSがありますが、発注までできるのは岡三RSSです。(※マクロを使ってブラウザ制御などが出来る場合は楽天RSSでも発注は出来ると思います。ただ、ブラウザ制御は動作が不安定な気がするのと、秒単位の時間がかかると思います。また、今後Webサイトの仕様が変わって動作しなくなった場合など、いちいち対応しなければいけないでしょう。)
岡三RSSの場合は発注関数が用意されているので、通常のExcel関数を記述する要領で書いておけば発注が出来ます。もちろん、発注関数をマクロから呼び出すことも出来ます。

詳細はこちらを。
岡三RSS

あといろいろ調べていたら、みなさんおなじみのタクマ先生がマンガで記事を書いてくださっていました。
【マンガ・シストレ】岡三RSS使ってみました 短時間で発注画面システム完成のワケ
すごく分かりやすい!
こちらの記事は2009年のものなので、最後に「確認画面の省略が出来ず、発注ボタンを押さなければならない」とありますが、今は省略が出来るようになっているので完全自動化できます。マンガでは仕掛けの自動発注までを書かれておられますが、手仕舞いも同じ要領でできます。

詳しい使い方は、こちらの日本株サンプルファイルを見ればだいたい分かると思います。(※岡三オンライン証券で口座を開設して岡三RSSのアドインをインストールしないと動作しません)
サンプルファイル(岡三RSS用シート)
各関数の仕様などはマニュアルを。
マニュアルダウンロード

以下は手仕舞い方法のポイントを。
日本株サンプル.xlsの保有(手動)シートでは、手動更新の関数を使っていますが、これをリアルタイムにします。
POSITION_M → POSITION
横に現在値等も表示できるようにしておきます。
=IF(OR(A3="",A3="***END***"),"",QUOTE(A3,,"現在値"))
※A3には銘柄コードが入ってます
で、建値や現在値などからシグナルを出します。
シグナルが出たら手仕舞い注文(REPAYMENTORDER)を呼ぶようにしておきます。
=IF(シグナル="○", REPAYMENTORDER(.....))
タクマ先生も言っておられますが、引数が多いので間違わないように注意が必要です。
※私の場合は、ある時間になったら上記の関数をシートに書き出す処理をマクロで行っています。

あと、上記の方法はExcel関数だけで完結していますが、マクロから呼び出したい場合は、関数マニュアルの7ページに書いてある方法で呼び出せます。


Public Sub 日本株注文()
  Dim norder As String
  norder = NEWORDER("8690","",3,0,0,1000,"T","","0",0,0,"","N001")
  Call MsgBox(norder)
End Sub

ちなみに戻り値は「発注待ち」、「発注完了」、「発注金額オーバー」しかないようです。
注文関数の戻り値は何がありますか。

今のところ私はExcelシートに書いた関数だけで株価を監視していますが、複雑なことをしようと思ったらマクロを常駐させて監視する必要があるかもしれません。その場合は、Application.OnTimeで自関数を呼び出す方法が良さそうです。
FAQ
5秒ごとにマクロを実行させるには、どのように記述すればよいでしょうか。
時間指定をしたいのですが、時刻はどのように記述すればよいのでしょうか。
マクロを実行すると、このマクロが終了するまで、QUOTE関数の現在値が更新されません。

あと、発注が重複して何回もされてしまうんじゃ…と心配になるかと思いますが(私はなりました)、重複を防ぐために発注関数のパラメータに発注IDを指定することになっているので大丈夫です。発注IDが同じ場合は注文が出ないようになっています(サーバーへ命令が行くことも無く、Excel内で完結しているようです)。

※10/27追記
POSITIONで取得した値を元にREPAYMENTORDERを出す場合、当然ですがREPAYMENTORDERで手仕舞いした銘柄の情報についてはPOSITIONで取得できなくなります。非同期ですのでタイミングによっては意図した動作をしない事があるかもしれません。手仕舞いに関しては、いったんマクロに制御を移して手仕舞い処理を完結してからシートへ処理を戻すのが良さそうです。


にほんブログ村 株ブログ 株日記へ

広告
コメント
この記事へのコメント
No title
ありがとうございます。頑張ります!
2015/10/04(Sun) 22:11 | URL  | kazu [編集]
No title
こんにちは。ママさんってプログラムの知識あるんですね?なんかそんな感じがしました(笑。僕ね・・ないんですよ・・・尊敬しちゃいますw
2015/10/05(Mon) 18:45 | URL  | GDA(=GAURDIAN 略称) [編集]
Re: No title
kazuさん、こんばんは。

少しでもお役に立てればうれしいです。頑張ってくださいね(^-^)
2015/10/05(Mon) 20:06 | URL  | trademam [編集]
Re: No title
GDAさん、こんばんは。

はい、元プログラマーです。ブランクありますが(^^;
職業だっただけなので尊敬されるような事じゃないですよー(笑)
2015/10/05(Mon) 20:12 | URL  | trademam [編集]
No title
なるほど・・通りで・・w
トレードの取り組み方が多くの人と違ったり、
どこか感じが親近感湧いたので、多分そっち系だなぁと薄々感じてました(笑
僕はプログラムと相性悪くないはずなのに、合わないっていうヘンテコなタイプなんですよ~(笑
だから尊敬しちゃいますw
RSSガンバッテくださいね^^
2015/10/06(Tue) 11:56 | URL  | GDA(=GAURDIAN 略称) [編集]
Re: No title
GDAさん、こんばんは。

そんな感じ出ちゃってますか(笑) いや別に隠してるわけじゃないんですけど(^^;
プログラミングとシストレはちょっと似ているなぁと思うときはあります。なんとなく頭の使い方というか…。
でもどっちも本当の理系の人にはかなわないなぁと思ったりします。
私は数字苦手な文系プログラマーだったんで、ある程度のレベルになるともう全然理系の人にはついていけません。
数字をパッと見てその意味するところを把握できる能力っていうんですかね。。あの能力がある人が羨ましいです。
シストレもなんとなくそいういうところで似たような感じを受けるというか…。
まぁ羨ましがってもしょうがないので、今後も亀の歩みですが、頑張ります(^^;
2015/10/06(Tue) 20:00 | URL  | trademam [編集]
コメントを投稿
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可