ソフトウェア投資

【VBA知識不要!】Excel(エクセル)を使い楽天RSSで日本株を自動売買で発注する方法②

ソフトウェア
この記事は約9分で読めます。
記事内に広告が含まれています。

返済注文を発注する(RssMarginCloseOrder関数)

さて事前知識として最低限必要な注文照会、信用建玉の情報取得の方法についてこれまで説明してきた。

ここでようやく返済注文についてだ。

信用返済はRssMarginCloseOrder関数を使用する。

例えば下記のような建玉一覧があったとして、AJ4セルに返済発注関数を入力する。

これも新規発注関数と同様引数が多いため頑張ってついてきてほしい。

発注ID:前回記事参照

URL添付

追加で注意点上げるのであれば発注IDは必ず”値”で入力すること。

楽天RSSを使おうとするほどのExel玄人であれば言うまでもないと思うが、見た目数字でも”数値”ではなく”文字列”だという場面は偶にあることだろう。その点には十分注意してほしい。

参照元の値が数値かどうか不明な場合はVALUE関数を使ってあげれば心配ないだろう。

VALUE("参照セル")

勿論参照元が数値であることが確実なら一々VALUE関数を使う必要はない。

発注トリガー:前回記事参照

説明もう不要だろう。別のセルに0か1か表示させそれを参照すれば問題ない。

銘柄コード:任意の銘柄CD

これもセル参照での引数指定が可能。上の画像のように信用建玉リストをRssMarginPositionList関数で銘柄CDを取得して参照すれば問題ないだろう。

売買区分:買建の売埋であれば1、売建の買埋であれば3

注文区分:前回記事参照

SOR区分:前回記事参照

信用区分:前回記事参照

返済なので信用新規建てした際の信用区分を入力。例えば一日信用で建てているのであれば4を指定します。

注文数量:返済したい分

今回のケースではETFで10株建てているため、建てている分全てを返済する。

価格区分:成行で決済なら0、指値なら1

注文価格:成行なら省略、指値なら入力

執行条件:前回記事参照

注文期限:前回記事参照

口座区分:前回記事参照

建日:いつ建てたか。一日信用だったら当日

RssMarginPositionList関数で表示可能な建日を参照するといい。(YYYYMMDD形式)

建単価:いくらで信用建てしたか

こちらもRssMarginPositionList関数で取得できるのでそのセル参照でOK。

建市場:1/東証、4/JNX、6/Chi-X

寄付で買うスタイルなら東証でしか約定しないはずなので1固定でいいと思われる。

ザラ場中のトレードの場合SOR注文を有効にしているとJNXやChi-Xで約定するケースもあるため、RssMarginPositionListで建市場を取得して参照しよう。

ただし取得できるのは「東証」や「JNX」という文字列情報しか取得できないのですが、引数として使用するのは1/東証、4/JNX、6/Chi-Xといった市場コード。

そのため下記のような関数で注文関数用に変換する必要があります。

参照セルはどこのセルにRssMarginPositionList関数で建市場の情報を取得しているかで変わりますのでご注意を

=IF(参照セル="東証",1,IF(参照セル="JNX",4,IF(参照セル="Chi x",6,"")))

検証で使用しているExcelバージョンが2016のためIFS関数を使用していないが、IFS関数を使用できるバージョンであれば当然IFS関数で書いた方がすっきりする為あくまで上記の数式は参考程度にとどめてほしい。この数式により、東証だったら1、JNXだったら4、Chi Xだったら6といった具合にコードに変換が可能。

逆指値条件価格:前回記事参照

逆指値条件区分:前回記事参照

逆指値価格:前回記事参照

スポンサーリンク

まとめると…

ここまで説明してきた引数の指定方法を活用してRssMarginCloseOrder関数を入力すれば(画像:AJ4セル)、画像のような感じでトリガーが0であれば待機中と表示されるはず。

画像の例ではTOPIXの2倍ブルETFを最低単元である10株持っていて利益が乗ったので成行で返済注文を発注したい場合の一例。

ポイントとしては、銘柄CDや注文数量、建単価、建日は全てRssMarginPositionList関数で取得した情報をそのまま参照しているという点が1点目。勿論全決済ではなく一部株数のみ返済したい場合は注文数量に関して他の方法を考える必要がある。

2点目は建市場に関してはRssMarginPositionList関数で取得でき(画像:AB列)が、発注関数に対応した市場コードに変換する必要があるためAH列に先ほど紹介したIF関数で市場コードを返す数式を追加してそれを参照する形。

参照セルに関しては当然当方検証下での参照のためご自身の環境にあった指定をし直す必要があるため下の関数をただコピペするだけでは使用不可。

必須ではない引数(逆指値とか)がある場合は下記のようにカンマのみ入力。

=RssMarginCloseOrder(2,AI4,VALUE(W4),1,0,1,4,Z4,0,,1,,0,AC4,AA4,AH4,,,,)

既に建玉に対して返済注文を発注済みの状態でRssMarginCloseOrder関数を重ね掛けすると使用するとエラーになる。

その場合は次回紹介する訂正注文関数であるRssModifyOrder関数が必要になりますので注意。

↓↓スプレッドシートで株価管理したい人におすすめ記事↓↓

訂正注文を出す手順

執筆中(別記事に掲載予定)

おわりに

大体まとめると、今回の記事を読むことで、

  1. 自身の発注した注文状況をRssOrderList関数で確認
  2. 建玉管理(評価損益・株数等)をRssMarginPositionList関数を通して確認
  3. 自身のポジションをRssMarginCloseOrder関数を使用して返済発注

以上の知識を身に付けることができた。

次回は今回の記事で長くなりすぎたため省略した訂正注文に関しての解説記事を紹介する予定だ。

RSIやMACD等メジャーなテクニカル指標を表示させてテクニカルシステムトレードプログラムを構築する方法も記事にする予定なのでぜひX/Twitterもしくは当ブログをブックマークしてお付き合いいただきたい。

タイトルとURLをコピーしました