かっぴー
一括エントリー、分割決済について
Ryo Ohno様 初めまして。
超初心者のかっぴーです。
昨日同じ内容のものを送信したのですが、違うところにコメントしてしまったようで(汗)所在不明になってしまったので再送させて頂きます。
一括エントリー、分割決済を岡三RSSで自動化して、決済の負担を減らしたいと検索していたところ、Ohno様と質問者様の過去ログに触れました。
まさに下記のような分割決済を理想としており読み進めていたのですが、全く理解ができなくて・・・(涙)
お忙しい所大変恐縮ですが、質問させて下さい。
サンプルシートはダウンロードしたのですが、Ohno様のおっしゃっているポジション情報 A47 B47 その他セル番号は サンプルシートの「注文」タブのシートの該当セルにその計算式を書き加えて行く、ということでしょうか。
それであれば、その様にコピーし作成を試みようと思っております。
(現在 A47のセルには「解説」という文字が記載されていますが、それを消して 下記の計算式を入れて行ったら良いのでしょうか。)
もしくは全く見当はずれのことを申しておりますでしょうか。作業をするにあたり、ヒントを頂けますと幸いです。
エントリーは一括です。
ダウンロードしたサンプルシートを添付致しました。
また、以下は2014年9月7日の過去ログのコピーです。
*****
1.決済は最高で7分割
2.決済金額は、最大で7種類設定したい
例) 15000円で建てたときに
1:+50円
2:+100円
3:+150円
4:+200円
3.損切りは1種類で、円で指定したい
4.もし、1回利確したら、建値まで、損切り価格を引き上げて、負けないようにしたい
5.両建てでエントリすることもあり、各々に上記の設定がしたい
6.場の状況で、上記の価格は変更したい
7.大引けで、全建玉を決済したい
サンプルシートを改造するという方式で、説明させて頂きます。
利確、損切用の発注のリストと、現在のポジション情報を追加することにより可能と思います。
ポジション情報
A47・・・=FOPPOSITION(″売買″,A48)
B47・・・=FOPPOSITION(″数量″,B48)
C47・・・=FOPPOSITION(″建玉単価″,C48)
B51・・・=SUMIFS(B48:B50,A48:A50,″買″)
C51・・・=VLOOKUP(″買″,A48:C50,3,FALSE)
B51は現在、買いで持っている建玉の合計枚数が出ます。
発注直後は、発注した枚数と同数が出ています
C51は、買いで発注したときの約定額が表示されます。
57行目以降は、利確用の7つの設定をします。
B37にある決済用のIF文変更したものを、7つ用意し、各々に金額を設定出来るようにします。
A56・・・1つ目の決済のための+/-値 B56・・・=$C$51+A56 (決済判断金額 実際に決済を行う金額です)
C56・・・その金額で決済したい数量
D56・・・発注ID E56・・・=IF(B39>B56,fneworder(C5,C6,C29,C8,C9,C30,C31,C32,C56,C14,C15,C16,C17,D56),″未発注″) 決済のための条件 これで、建時の金額にA56で追加した金額を超えたら、発注関数が動きます。
D56で発注IDを指定しているので、いったん、決済判断金額を超えて、下落して 再度、決済判断金額を超えても発注は掛かりません。 上記の56行目をコピーして、2~7の発注条件を作成してください。
67行目以降は、損切り用の設定をします。
A67・・・損切りのための+/-値 B67・・・=IF(C13=B51,$C$51+A67,$C$51)
C67・・・=B51 E67・・・発注ID
F67・・・=IF(B39TIME(HOUR(NOW()),MINUTE(NOW()),SECOND(NOW())),″RS″,″PC″)
C72・・・=B51
E72・・・=IF(B72=″PC″,fneworder(C5,C6,C29,C8,C9,C30,5,C32,C72,C14,C15,C16,C17,D72),″未発注″)
この例ですと、B72が、15:10過ぎたらPCと変わりますので、 ここでポジションの決済が走ります。
売りポジションは上記の設定の反対バージョンを作って頂けると大丈夫と思います。 また、これは、このRSSで建てたポジション以外の、先物のポジションが無いことが前提となっています。 もし、他のポジションを考慮する場合、もう少し複雑となります。
*******
新規売り→買返済 のOCO返済の書き込みしてみました これでいいのでしょうか、一度見て下さり、お教えくださればありがたいです。
A77 =FOPPOSITION(″売買″,A78)
B77 =FOPPOSITION(″数量″,B78)
C77 =FOPPOSITION(″建玉単価″,C78)
C81 =VLOOKUP(″売″,A78:C80,3,FALSE)
A86 利確値幅 手記入 (1回目)
B86 =$C$81-A86 C86 数量(入力)
D86 発注ID E86 =IF(B39>B86,fneworder(C5,C6,C29,C8,C9,C30,C31,C32,C86,C14,C15,C16,C17,D86),″未発注″) その後返済回数に応じて繰り返し 損切り
A97 損切り値幅
(例えば50円逆行したら損切りしたい場合ですが 50円と記入ですか? -50円と記入となりますか?)
B97 =IF(C13=B81,$C$81+A97,$C$81)
C97 =B81 E97 発注ID F97 =IF(B39TIME(HOUR(NOW()),MINUTE(NOW()),SECOND(NOW())),″RS″,″PC″)
C102 =B81 E102 =IF(B102=″PC″,fneworder(C5,C6,C29,C8,C9,C30,5,C32,C102,C14,C15,C16,C17,D102),″未発注″)
以上です 特に計算式の中の > or <, + or -, がこれで良いのか?
又損切り幅 入力の際 + なのか? - なのか?
*****
>特に計算式の中の >> or <, >+ or -, >がこれで良いのか? >又損切り幅 入力の際 + なのか? - なのか?
すみません、確かにです。 肝心なことを書き忘れていました。(^^; ちなみに、Higuchiさんは 『損切りは-で入れたがわかりやすい』 とかありますでしょうか?
もし、ありましたら、リクエスト頂けると、そのように計算式直してみます。 また、同じシートに売り用のを作成してしまうと、 買いと、売りのエントリ用の情報が1つになってしまい、 同値での両建てしかできなくなりますので、 シート自体をコピーして、そちらに売り用のヤツを作ったが良いと思われます。
***** まとめました。
================================================
○買いの場合
A47・・・=FOPPOSITION(″売買″,A48)
B47・・・=FOPPOSITION(″数量″,B48)
C47・・・=FOPPOSITION(″建玉単価″,C48)
B51・・・=SUMIFS(B48:B50,A48:A50,″買″)
C51・・・=VLOOKUP(″買″,A48:C50,3,FALSE)
A56・・・1つ目の利益確定のための金額(+表記)
B56・・・=$C$51+A56 (決済判断金額 実際に決済を行う金額です)
C56・・・その金額で決済したい数量
D56・・・発注ID E56・・・=IF(B39>B56,fneworder(C5,C6,C29,C8,C9,C30,C31,C32,C56,C14,C15,C16,C17,D56),″未発注″)
決済のための条件
A67・・・損切りのための金額(+表記) B67・・・=IF(C13=B51,$C$51-A67,$C$51)
C67・・・=B51 D67・・・発注ID E67・・・=IF(B39TIME(HOUR(NOW()),MINUTE(NOW()),SECOND(NOW())),″RS″,″PC″)
C72・・・=B51 D72・・・発注ID E72・・・=IF(B72=″PC″,fneworder(C5,C6,C29,C8,C9,C30,5,C32,C72,C14,C15,C16,C17,D72),″未発注″)
================================================ ================================================
○売りの場合
================================================
A47・・・=FOPPOSITION(″売買″,A48)
B47・・・=FOPPOSITION(″数量″,B48)
C47・・・=FOPPOSITION(″建玉単価″,C48)
B51・・・=SUMIFS(B48:B50,A48:A50,″売″)
C51・・・=VLOOKUP(″売″,A48:C50,3,FALSE)
A56・・・1つ目の利益確定のための金額(+表記)
B56・・・=$C$51-A56 (決済判断金額 実際に決済を行う金額です)
C56・・・数量(入力)
D56・・・発注ID E56・・・=IF(B39B67,fneworder(C5,C6,C29,C8,C9,C30,C31,C32,C67,C14,C15,C16,C17,D67),″未発注″) A72・・・=NOW() B72・・・=IF(TIME(15,10,0)>TIME(HOUR(NOW()),MINUTE(NOW()),SECOND(NOW())),″RS″,″PC″)
C72・・・=B51 D72・・・発注ID E72・・・=IF(B72=″PC″,fneworder(C5,C6,C29,C8,C9,C30,5,C32,C72,C14,C15,C16,C17,D72),″未発注″)
================================================
>1) 私は損切り幅の入力については +でも-でもどちらでも気になりません。 > 決まったとおりに出来ます。 両建てという事ですので、+と-が入り乱れると、分かり辛いと思いましたので、 損切り幅も+で入力する形にしてみました。
買い、売り関係なく ○○○円、利益が出たら、利確 ○○○円、損失が出たら、損切 の感覚で記述ができるかなーと思いまして・・・
>シート自体をコピー
1.エクセルの『注文』シートのタブ(一番下にある、シートの名前のところです)を右クリック
2.メニューが出る
3.『移動またはコピー』を選択
4.シートの移動またはコピーウィンドウが開く
5.(末尾へ移動)を選択
6.『コピーを作成する』をチェック
7.『OK』ボタン押下 これで、『注文』シートの右に『注文(2)』と言うシートがコピーされて作成されます。 あとは、シートの名前をわかりやすい名前に変更して頂けると大丈夫と思います。
*******
大変長くなってしまって申し訳ございません。
何卒ご助言賜ります様、宜しくお願い申し上げます。
2019年03月17日
Ryo Ohno
かっぴーさん、こんばんは!!
懐かしい・・・
このやり取りで樋口さんとは仲良くなりましたw
このころは、Excelファイルを掲示板にあげることができなくて、全部文字だけでやり取りしていましたw
さて本題ですが・・・
5年近く経つので、サンプルファイルが変ってる可能性が高いのと、あの時にどんなサンプルを元にしたか
まったく覚えてなので、内容と添付していただいたExcelファイルで、もう一度観てみたのですが、
ざらっと観た感じでは行けそうな感じがしましたー
>ポジション情報 A47 B47 その他セル番号は サンプルシートの「注文」タブのシートの該当セルにその計算式を書き加えて行く、ということでしょうか。
はい、注文タブのシートで大丈夫と思います。
>(現在 A47のセルには「解説」という文字が記載されていますが、それを消して 下記の計算式を入れて行ったら良いのでしょうか。
多分、あのころにはこの文字がなかったか、もしくは若干レイアウトが違ったのかもです。
最終的に樋口さんもVBAでやられたので、この計算式だけで行けるか残念ながら実績はありませんが、
少しでもお力になれれば!!
2019年03月17日
かっぴー
早速にありがとうございました。
検索している中で、きっとVBAの方が汎用性が高いとは思ったのですが、何しろ知識0+土台になりそうなサンプルも探せなかったので、エクセルで挑戦しようと思った次第です。
時間はかかると思いますが、以前のコメントに従って作成してみます。
因みに作ってみたファイルはこちらにアップしても問題ないのでしょうか。問題ないようでしたら、答え合わせをして頂けると大変嬉しいのですが・・・。
2019年03月18日
かっぴー
先物決済.xlsx (283.2KB)
大野様
お世話になっております。
以前のやりとりを参考にさせて頂いて、サンプルシートをカスタマイズしてみたのですが、色々と分からないことがあり、質問させて頂きたいのですが、、、
エクセル表の黄色の箇所が質問部分です。
拙い加工でお恥ずかしい限りですが、どう修正したら良いのか教えて頂けますと幸いです。
2019年03月18日
Ryo Ohno
かっぴーさん
こんばんはー!!
ファイル観てみます!!
あと、大変申し訳ないのですが、今お仕事でトラブってて帰りがめっちゃ遅いです・・・
明日も夜間の対応が入ってるため、Excelファイルを観ることが厳しそうです。
少し返答にお時間を頂くことをご容赦ください!!
すぐに返信ができず本当に申し訳ありません・・・
週末までには・・・
2019年03月19日
かっぴー
おはようございます。
ご覧頂くのはお時間ある時で結構です。
お忙しい中、ご丁寧なご返信に感謝しています。
2019年03月19日
Ryo Ohno
先物決済.xlsx (291.2KB)
かっぴーさん、こんばんは!!
頂いたExcelシートに吹き出しで返答を入れました。
ご確認頂けますと幸いです!!
全体的にですが・・・
やっぱり元のシートからレイアウトが若干変ってるのと、
5年前に自分が返信した時の誤字脱字もあり、自分でもわけがわから無かったです(笑
2019年03月21日
Ryo Ohno
先物決済_New.xlsx (288.4KB)
また、レイアウトがずれていた部分や、式がおかしかった部分を修正した、
『とりあえず動きはするかなー』
というような内容のファイルを送りまーす。
1点ご注意頂きたいのですが、
以前ご質問を頂いた方も最終的にはVBAでやられたこともあり、
このやり方で正常に動作した実績がありません。
また、今回修正したファイルも動作テストをしたわけでもありませんので、
誤発注(もしくはそもそも動かない)可能性も大いにあります。
使用される場合は自己責任かつ、ご注意頂けますと幸いです。
そんな感じなので、多分、この先も動かないないなど、
いろいろとありますので、
このファイルをベースに改造して頂いたり、ディスカッションできると幸いです♪
2019年03月21日
かっぴー
お忙しい中、本当にありがとうございます。
これからひとつひとつ照らし合わせて、確認させて頂きます。また分からないことがありましたら質問させて頂くかと存じますが、何卒宜しくお願い申し上げます。
とり急ぎ御礼まで。
2019年03月21日
かっぴー
発注画面.png (146.7KB)
大野様
本日ミニ1枚で動かしてみました。
発注はできたのですが、決済でつまづきました。
添付した画像中に質問事項を書かせて頂きました。
お仕事がお忙しそうですので、ご無理なさらず、お時間できました時にご覧頂けますと幸いです。
2019年03月22日
かっぴー
その後ナイトでもミニ1枚で動作確認実行中です。
先程 指値買 ⇒ +10円に達したら成行買い の条件の
56行の注文が決済できました。(成行なので決済値は+5になってしまいましたが、、、)
引き続き動作確認致します。
2019年03月22日
かっぴー
やはり損切は注文が出されませんでした。
建値から-20になった段階でE67は「発注完了」にはなりましたが、決済されずに素通りされてしまいました。
何か対応策がございましたら教えて頂けますと幸いです。
2019年03月22日
Ryo Ohno
かっぴーさん
まず、決済するときに設定する建玉数ですが、
これは『決済可能な残建玉数』となります。
この『決済可能な残建玉数』は、建玉枚数―決済発注済み枚数となりますので
指値で決済注文をした場合や、逆指値を出した場合、
発注を行った時点で、約定されてなくても『決済可能な残建玉数』が減ってしまいますので
減った枚数で発注してあげる必要があります。
今回はネットトレーダーで逆指値をかけてしまったので、
残枚数が減ってしまったのだと思われます。
また、損切の枚数の件ですが、
今回、"B51"が残枚数を計算している部分になります。
買いでエントリした枚数を集計しているので、
ご質問の例で言いますと・・・
1.7枚でエントリ
2.B51が7になる
3.=B51となっているC67(損切の枚数)も7になる
4.21315円になって1枚利確
5.B51が6に減る
6.=B51となっているC67(損切の枚数)も6になる
7.21305円になって損切りする場合は6枚で損切される
という感じです。
今回Excelを見てみたのですが、たぶん掲示板にコピーされた際に
計算式の"(半角)が”(全角)になってしまっていました。
”(全角)を"(半角)にすべて置換していただくと正常に動作すると思います!!
2019年03月23日
かっぴー
大野様
休日中にもかかわらずありがとうございました。
詳細なご説明のお蔭で理解できました。
全角に関しては、どのセルなのかが分からなかったのですが
確かに書体が一部「メイリオ」になっていたので、それを全て「MSゴシック」に変更しました。
月曜日に動作確認をして、またご報告させて頂きます。
2019年03月23日
Ryo Ohno
かっぴーさん
全角半角は、フォントの種類ではなくその中の文字になります。
#説明不足で申し訳ありません・・・
例えば、カタカナとかがわかりやすいのですが・・・
『ア』(全角)と『ア』(半角)と同じアでも二種類あります
これと同じで『"』にも、『”』(全角)と『"』(半角)と二種類あり、
全角の『”』ですと関数が正常に動作しません。
ですので、フォントの種類を変更しても文字が全角の場合、
同様の不具合が発生する可能性があります。
もし、違いがわかり辛いようでしたら、
最新のExcelファイルを上げて頂ければ、自分の方で置換してここに戻しましょうか?
2019年03月24日
かっぴー
大野様
何から何までありがとうございます。
それではお言葉に甘えてアップさせて頂きます。
場が動いていない時に色々変えてしまったので
明日どうなるか全く見当がつかないのですが
「買(1)(2)売(1)(2)」「注文紹介」「約定一覧」「保有」のシートがうまく動いてくれることを願うばかりです。
買(1)だけご訂正頂ければ、他のシートは自分で直しますので、どこをご修正されたか教えて頂けますと幸いです。
本当にありがとうございます。
2019年03月24日
かっぴー
大野様
色々お気遣い頂きありがとうございます。
それぞれのシートに少し修正を加えて、動作確認をしたところ
買(1)での1枚を2回注文、1回目、+10円の約定、2回目、損切り約定まで 正常に動作しました。
まだ複数枚の確認はできておりませんが、その前に売(1)の方もチャレンジしてみます。
また加えたシートにつきましても正常に動作しております。
約定一覧シートの方は決済損益も欲しいのですが、今のところ計算式を探せないので、また検索の旅に出てまいります。
以上現状報告でした。
2019年03月25日
かっぴー
大野様
お世話になっております。
2つ前のコメントの時に一度エクセルをアップさせて頂いたのですが、消し忘れのものがあったため、ご担当者の方に特別に削除して頂きました。(通常はできないそうですが、、、)
現在のところ、お蔭様で正常に動いています。
また決済損益も無事追加できました。
動作確認をしながら、ふと気が付いたのですが、損切りはOCO注文ではないので、監視はしているけれど、実際に注文が出されているわけではないですよね。
損切りが発注されていない状態で、停電や、地震などの不慮の事態に遭遇してパソコン(エクセル)が動かなくなった時のことを考えると、VPSで動かすことが必要なのかな、と。
大野様はどう思われますか。
2019年03月25日
Ryo Ohno
かっぴーさん
動作しましたか!!
それはよかったです!!
何とかVBAを使わずに、これだけで正常に動作し続けてくれるとありがたいのですが・・・
損切りは、かっぴーさんがおっしゃられます通り
OCOのようなものではなく、監視をしておいて、成行発注の形になっています。
証券会社に注文が出てるわけではないので、停電などが起きた場合に
Excelが動かなくなると損切がかかりません。
安全面からすると、VPSがベストだと俺も思います。
自分はケチって使っていないですが、自分の知り合いの方も何人か使ってます。
また、ファイルも消して頂けたとは・・・
岡三オンライン証券さん優しいですね・・・(ゴマすりすりw
2019年03月25日