質問掲示板
岡三RSS
集いの広場

アップロードされたファイルおよび投稿内容についての注意事項 別窓

複数の単語で検索する方法 別窓

【国内株式、先物・オプション】岡三RSS質問箱

Masashi Nakano

岡三RSS OCO発注について

はじめまして、よろしくお願いします。
「岡三RSS活用編動画 発注(関数)系」の中で、OCO発注のサンプルシートがありますが、利食いの指値注文を出しておいて、価格が逆行した時に逆指値に変更するのではなく、パソコンからのOCO注文のように利食いの指値注文と損切りの逆指値注文を同時出しておくことはできますか?
よろしくお願いします。

2017年01月23日

Ryo Ohno

Nakaoさん初めましてっ!!
大野と申します。よろしくお願い致します。

岡三RSSの関数でOCOの注文の機能は残念ながらありません・・・
対応してくれると確かにありがたいです・・・
VBAを使うと比較的簡単なのですが、セル関数だけでやると大変なので、関数としてあると・・・

自分もOCOが必要な場合は、
指値注文を出した後に、逆行した場合に
損切りにぶつかったときに成行に変更しています。

2017年01月28日

ログインしてコメントを投稿する

Masashi Nakano

大野さん、コメントありがとうございます!

OCO注文はないのですね。

実は今、過去の大野さんの投稿を参考に「新規注文約定と同時に分割返済注文(指値)+損切り値に達した時にFREPLACEORDERで損切り(成行き)+トレーリングストップ」の注文シートを作っているのですが、3つ質問させてください。

【質問1】
過去記事の中で、「VBAでやると簡単だが、セル関数だけでやってみます」とありますが、VBAとセル関数では処理にかかる時間は同じなのでしょうか?

【質問2】
もし、VBAの方が早いのだとすると、VBAでの作り方を教えていただくことは可能ですか?

【質問3】
同じ過去記事の中で「また、これは、このRSSで建てたポジション以外の、先物のポジションが無いことが前提となっています。
もし、他のポジションを考慮する場合、もう少し複雑となります。」
とありますが、現在私の環境では、別のシートからRSSを使って建てたポジション(仮にAポジション)がありますが、今回、新たに作ったシートから同じRSSでポジションを立てた場合も、Aポジションを考慮する必要がありますか?

長文になってしまいましたが、ご回答いただけるとありがたいです。
よろしくお願いします。

【備考】
使っているサンプルシート
岡三RSS→サンプルシートの
「日経225先物・miniのクォート、板、四本値、歩み値、注文の5シートを掲載」

2017年01月28日

ログインしてコメントを投稿する

Ryo Ohno

Nakanoさん、すみません返信が遅くなりました。
前のディスカッションボードと違って、
投稿されても通知が上がらないの辛い・・・

>【質問1】
>VBAとセル関数では処理にかかる時間は同じなのでしょうか?
こちらは、発注にかかるPGの実行速度ということでしょか?
それでしたら、ほぼ変わらないと思います。

>【質問2】
処理速度はほぼ変わらないと思いますが、
VBAの方がプログラムを掛ける分、比較的簡単に作ることができます。
自分でよければ、いつでもっ!!

>【質問3】
今、過去のログを自分も見てきました。
樋口さんとのやり取りのやつですね。
あの時のご質問の内容としては、
約定した情報を元にOCOの拡張版のようなことをしたいとのご質問でした。
OCOだとOCOとして発注したポジションの情報を使用したいところなのですが、
もしポジションが複数ある時は、OCOとして発注してないほうのポジション情報を使用してしまう可能性があったため
あのようなコメントでした。

また、サンプルシートも今見てみました。
岡三RSSはシートが分かれても、口座の情報は同じものを使用します。
サンプルシートは決済用の建玉番号が『A』になっていますので、
条件発注利益の多い方から決済されてしまいます。

例)
Aシート:何かしらの発注シート(例えば寄り引けのロジックとします)
Bシート:OCO用の発注シート

9:00:Aシートで発注(18000で約定)
9:10:Bシートで発注(18100で約定)

その後もぐんぐん上がる・・・

10:00:18500円まで上がったところでBシートのOCOの利益確定が走る
※この時に、Aシート分は、+500円、Bシートは+400円で、
※Aシートで発注した分が、利益確定として決済されてしまいますっ!!


前置きが長くなってしまいましたが、以上ですので、
もし、OCOで建てた分をOCOで決済されたい場合は、メモなどの機能を利用して、
条件を使いする必要がありまっす!!

2017年01月31日

ログインしてコメントを投稿する

Masashi Nakano

大野さん、ご返信ありがとうございます!
>すみません返信が遅くなりました
いえいえ、とんでもございません、ご返信いただけてありがたいです。よろしければ、今回もよろしくお願いします。

【メモの利用方法】
ご回答の内容、よく理解できました。
ただ【3】のご説明での、メモをどのように利用して、特定の建玉に対する返済注文を出すのでしょうか?

【IFD+OCOのサンプルシート】
VBAの方が簡単に書けるとのことですが、私はBVA初心者ですので、上記のサンプルシートを自分のスタイルに合わせて書き換えようと思います。

サンプルシートの動作は、
条件注文タブで、「新規注文」→「利確返済注文」→「損切注文」を出します。
まず、
①左のブロックで各注文の設定をして、新規注文は「指値」か「成行」で手動で注文します。(次のブロックのfneworder関数が走ります)
②「新規注文」の「約定」をトリガーにして、設定しておいた利益幅の価格に指値注文を自動で出します。(さらに次のブロックのfneworder関数が走ります)
③利確できれば終了。
④逆行した場合、現在値が設定しておいた損切幅の価格に達したのをトリガーにして、全ての玉を成行、又は引け成りで終わらす。(一番右のfreplaceorder関数が走ります)

以上の動作にプラスしたいこと。
①「利確返済注文」を分割返済にしたい。
②分割決済の一回目が約定したのをトリガーにして、「損切幅」の設定を「新規建て」のエントリー価格に引き上げたい。
③状況に応じて損切幅を手動で変更したい。
④損切は全ての玉を一括返済。

上記を実現するためにやろうと思う作業。
各注文設定の利確注文と損切注文のパラメータと利確注文と損切注文の各ブロックを分割したい回数分、下へコピー。
その際、動かしてはいけない参照先を見極めて絶対参照に変更。
一日に10回ほど取引をするのでこのシートを10枚ほどコピーし、ワンシート一回きりの使い捨てのように使う。
翌日、設定をすべてクリアして、同じことの繰り返し。

しかし、これでいいのかどうか分からずに、手探りでやっています。
大野さんならどのように手を加えたら良いと思われますか?
アドバイスいただければありがたいです。
いっぱい書きましたが、よろしくお願いします。

【参考サンプルシート】
岡三RSS活用術→活用動画→第四回後編Vol.2→一番下の第四回後編のサンプルシート


2017年02月01日

ログインしてコメントを投稿する

Ryo Ohno

>ただ【3】のご説明での、メモをどのように利用して、特定の建玉に対する返済注文を出すのでしょうか?
発注時にメモをつけて発注すると、
その発注で約定したポジションの情報を取得すると、発注時のメモの情報を取得することができます。
※サンプルシートで言いますと
※約定一覧シートのS列にメモの内容が帰ってきます。

発注時のメモで"OCO"など入れておき、
返済注文の建玉番号の検索でメモが"OCO"の建玉番号を検索すると
OCOで発注した建玉を選んで返済することができますっ!!



>①「利確返済注文」を分割返済にしたい。
>②分割決済の一回目が約定したのをトリガーにして、「損切幅」の設定を「新規建て」のエントリー価格に引き上げたい。
>③状況に応じて損切幅を手動で変更したい。
>④損切は全ての玉を一括返済。

以前、こちらとまったく同じ仕様のRSSのシートをお願いされて作ったことがあります。
まったく同じだったのでびっくりしました。(笑



>上記を実現するためにやろうと思う作業。
>各注文設定の利確注文と損切注文のパラメータと利確注文と損切注文の各ブロックを分割したい回数分、下へコピー。
>その際、動かしてはいけない参照先を見極めて絶対参照に変更。
>一日に10回ほど取引をするのでこのシートを10枚ほどコピーし、ワンシート一回きりの使い捨てのように使う。
>翌日、設定をすべてクリアして、同じことの繰り返し。

サンプルシートも拝見したのですが、
設定項目が多くて、下にコピーも大変そうですね・・・
また、サンプルシートの中にVBAが少し記述してありました。
単純に下にコピーして、参照先を変更して回るだけでは厳しそうです。
※Alt + F11を押すとVBAが観れます

このサンプルシートが複数のExcelで動かせるのが前提ですが、
修正量の少なさでは

1.条件発注のシートを分割決済分だけコピー
2.コピーした条件発注シートに、分割決済の設定を行う
2シート目以降は返済注文発注の部分しか設定を行わず、
各種設定や、新規発注の有無は1シート目を参照する
3.もし、1日に10回発注される場合は、Excel自体を複数あげて行う。

が少ないかなーと思いました。

Nakanoさんのおっしゃられる通り動かしたらまずい参照もありそうですので、
下にコピーはいろいろと大変そうです。


もし、Excelを複数あげてもこのサンプルシートが動かせるのであれば・・・
シートをコピーして・・・
L17の返済数量などを、分割分に変え
L4などの、新規発注分の情報を観るところだけ『条件注文!J8』などと
他のシートを参照するように変更するのが簡単かもしれません。

なにはともあれ、なかなか骨がある変更ですね(笑

2017年02月02日

ログインしてコメントを投稿する

Masashi Nakano

大野さん、返信ありがとうございます。
サンプルシートを書き換えて作ろうと思うと、やはり大変そうですね。
大野さんのようにVBAの知識があればいちから作った方が早いのでしょうが・・・。

頼まれて作られた時は、どのように作られたのか、考え方や注意点など、お聞かせ願えますか?

2017年02月03日

ログインしてコメントを投稿する

Ryo Ohno

ですね、OCOのサンプルシート、発注のロックとか入っていて意外と複雑ですので、
こやつを修正だと大変かもですね・・・

自分が以前作成した時は、全てVBAで作成しました。
VBAでのお話になってしまいます事をご了承ください。m(_ _)m

1.エントリ用と、分割決済、損切の情報を登録するシートを作成
2.VBAにて、1秒ごとに現在値を確認
3.エントリ価格になったら、VBAにて発注
4.その後もVBAにて現在値監視
5.現在値が、利確値段になったら、利確発注
  もしくは、損切値段になったら、損切発注
  また、1つでも利確発注されていたら、損切価格を
  エントリの価格に引き上げる

というような処理をVBAにて行いました。


もし、セル関数のみで作るとしたら・・・
1.発注
2.ポジション関数などで、エントリが約定したかどうかの確認(Count関数などで)
3.約定していれば、利確と損切の注文の有効化(IF関数などで)
4.損切より現在値が下がれば、損切発注
5.FOPPOSITION関数で『数量』を取得し、もしエントリの枚数とずれていたら、
  一部利確しているということなので、損切の価格を引き上げ

という感じでしょうかっ

2017年02月04日

ログインしてコメントを投稿する

Ryo Ohno

OCO分割決済動きの考え方.xlsx (15.7KB)

Nakanoさんのロジックの『考え方』の部分だけのExcelファイルを作成してみましたー
※発注などのロジックは入っていません。


OCO&分割決済を最小限度のセル関数だけで作ってあります。
少しでもご参考になれば幸いです!!

また、動く事を確認したわけでもありませんし、変な動きをするかもしれません。
※エラー処理的なものもありません。
あくまでもNakanoさんが今後作られるときのご参考になればということで・・・

2017年02月04日

ログインしてコメントを投稿する

Ryo Ohno

あっ!!
複数ポジションの考慮も、もちろん入っていません・・・(笑

2017年02月04日

ログインしてコメントを投稿する

Masashi Nakano

大野さん、大変ご丁寧な回答をありがとうございます!
さらにサンプルまで作って頂いて本当に感謝しますー!
おかげで作成のポイントが明確になり、自分の思っている発注シートを作成できそうです。
シンプルに考えれば良かったのですね。複雑に考えすぎでした。笑)
ありがとうございました!

2017年02月04日

ログインしてコメントを投稿する

Ryo Ohno

Nakanoさん

元々のサンプルがロックとか誤発注を防ぐ機能とか気を使ってあって結構複雑だったからですね・・・(笑

自動売買のシステムが出来上がることを祈っておりますっ!!

2017年02月04日

ログインしてコメントを投稿する

すべての投稿を表示する

to_top
to_top

アップロードされたファイルにはウイルスチェックを行っておりますが、未知のウイルス等に感染されている場合がありますので、アップロードされたファイルのご利用はご注意ください。
また、取引パスワード等の重要な情報を投稿内容に含めないようご注意ください。
なお、アップロードされたファイルの利用や投稿内容によって、投稿者自身や他の利用者が被った損害に対して当社は一切責任を負いません。

また、セキュリティの関係上、一部コマンド等を含む内容を送信するとエラー画面が表示され、投稿ができない場合がございます。何卒ご了承ください。

岡三RSS集いの広場では、複数の単語による検索が可能です。

例)関数 and サンプル
→AND検索となり、「関数」および「サンプル」を含む検索結果が表示されます。

例)関数 or サンプル
→OR検索となり、「関数」または「サンプル」を含む検索結果が表示されます。

例)関数 not サンプル
→NOT検索となり、「関数」を含むが「サンプル」は含まない検索結果が表示されます。

※and、or、notの前後は半角スペースで区切ってください。
※単語の間を半角スペースで区切るだけだと、OR検索となります。