岡三オンライン証券(代理記入)
当社に寄せられた質問「保有情報取得関数OPPOS1TI0Nに表示される評価損益額を使ったOCO注文について」
225先物です。複数の建玉の利益確定あるいは損切り(OCO)を行うため,
保有情報取得関数OPPOS1TI0Nで表示される評価損益額を使い、シートモジュール上に下記コードを書きました。
しかし、コンパイルエラー(プロシージャの宣言が、イベント又はプロシージャの定義と一致しません)と表示されました。修正すべき箇所をご教授いただければ、有難く存じます。宣しくお願い致します。
(シートモジュール)
Private Sub Worksheet_Change
Dim i as integer
For i =3 to 25
if Cells(i,9)<=-5000 then “評価損益額はCells(3.9)から記入
if cells(i, 1)=“買" then “建玉の売買の別は,Cells(3,1)から記入
Call 決済売
Else
Call 決済買
End if
End if
if Cells(i,9)>=5000 then
if cells(i, 1)=“買" then
Call 決済売
Else
Call 決済買
End if
End if
Next
End Sub
*損切り、利益確定ともそれぞれ-5000円 、5000円としています。
**決済売,買とも標準モジュールに於て、
sub 決済売 ()
kessaiuri=fneworder(成行・決裁売)
End Sub
をそれぞれ作成しています。
***3~25行まで保有の注文までの処理としています。
以上
2017年05月25日
おおた
小笠原聖史 様
少し付け加えさしてください。繰りかえますが、損切り価格に来ると、エラー"決済建玉がありません"がでてきます。I列の決済注文中数量は. 0となっています。普通、0には、なっていないのではないのでしょうか?
おおた
2017年05月31日
小笠原聖史
おおた様
はい、おおた様おっしゃるとおり、1枚からなる建玉の決済注文が1枚発注されると、I列の決済注文中数量には、1枚と表示されると認識しています。
一つお教えください。損切価格に来るとエラー”決済建玉がありません”が出てくるとのことですが、建玉があって、I列の決済注文中数量が0の状態で、決済建玉がありません、が出るということでしょうか。
2017年05月31日
おおた
小笠原聖史 様
"損切価格に来るとエラー”決済建玉がありません”が出てくるとのことですが、建玉があって、I列の決済注文中数量が0の状態で、決済建玉がありません、が出るということでしょうか。"
はい、そうです。
お世話をおかけします。
おおた
2017年05月31日
小笠原聖史
おおた様
いま、いただいたコードを標準モジュールに張り付けて、シート名を”決済”に変更し、以下のとおり、
①新規売り発注(手動で)
②Sub 保有情報取得関数OPPOS1TI0Nに表示される評価損益額を使ったOCO注文()、を実行
③評価損益が1000円→決済判定→決済買い発注のポップアップ→「はい」を押下→発注→約定
のプロセスがうまく動作いたしました。
おおた様のご指摘の”決済建玉がありません”というメッセージはでなかったので、どういうわけなのでしょうか、、、なんとかおおた様の手元でうまく動作していただきたいのですが、、
今回、私はミニ一枚で試したのですが、おおた様は複数の建玉で試していらっしゃいますか?それだと、決済済みの建玉をRSSがエクセル上から消去する前に決済判定が走って、もう決済済みの建玉に対して発注をかけにいっているなら、おっしゃるメッセージが出る可能性があるかもしれないと思いました。その場合には、10秒間隔でのループ間隔の設定を、20秒などに変更するといいかもしれません。
約定日 受渡日 銘柄 市場 取引 商品 売買 単価 数量 手数料 受渡金額 決済損益
2017/5/31 23:41 2017/6/2 N225ミニ 1706 大阪 決済 日経225ミニ 先物 買 19645 1 43 414 414
2017/5/31 23:39 2017/6/2 N225ミニ 1706 大阪 新規 日経225ミニ 先物 売 19650 1 43 0
2017年05月31日
おおた
小笠原聖史様
今回は,一枚の注文を手動で入れました。J3の建玉番号の表示は、-で表示され認識されていません。この理由ですね。"決済建玉がありません"というエラーがでる理由は。貴殿のパソコンでは,当然認識されていたのですね? これは,私自身のパソコン環境の問題ですね?[今週日曜日からは、自宅を離れモバイルパソコンで行っています。)
おおた
2017年06月01日
小笠原聖史
おおた様
おはようございます。
理由は、おっしゃる点”建玉番号の-表示”で間違いないと思います。
あとは、なぜ、”-”になるかですが、ご自宅の環境で建玉番号が表示されると、モバイルパソコンであることが理由だ、とわかりますね。今回、エクセルシートに表示させているfoppositionの項目は以下の通りですが、モバイルパソコンで-以外の項目は正常に表示されているのでしょうか?
FOPPOSITION("銘柄コード",A3,"0")
FOPPOSITION("銘柄名",B3,"0")
FOPPOSITION("市場",C3,"0")
FOPPOSITION("商品種別",D3,"0")
FOPPOSITION("売買",E3,"0")
FOPPOSITION("建玉日",F3,"0")
FOPPOSITION("建玉単価",G3,"0")
FOPPOSITION("数量",H3,"0")
FOPPOSITION("決済注文中数量",I3,"0")
FOPPOSITION("建玉番号",J3,"0")
FOPPOSITION("建玉枝番号",K3,"0")
FOPPOSITION("評価損益額",L3,"0")
2017年06月01日
おおた
小笠原聖史様
早速にご回答有難うございました。
ご指示のFOPPOS1T10Nで表示されるかどうか、各項目をチェックしました。買,売それぞれ1枚を手動で約定させました。売は、買の9秒後に入れました。
FOPPOS1T10Nは,注文毎で行っています。
1.評価損益額についての表示は,正常に作動せず。
(1)買(9:46:15約定)は、0のままの表示で変化しません。
(2)売(9:46:24約定)は、***END***が表示され,数値が表示されていません。
(3)買は、3行目に,売は,4行目に表示されています。この順で正常ですか?
2.評価損益額以外では.ーが表示され,数値等が表示されていません。。
建玉番号,建玉技番号,建玉日,建玉日時
以上ですが、正常でない表示が、多くでています。小笠原さんのPCでは、問題はありませんか?
おおた
2017年06月01日
小笠原聖史
fpositionの表示.xlsx (376.4KB)
おおた様
ご確認ありがとうございます。
VBAの記述の問題ではなく、エクセルシートのfpositionのアウトプットの問題ですね。
手元のPCでは、添付ファイルのように表示されおり、これが正常であると認識しております。
おおた様でエクセルのセルに設定されたRSSの関数をコピーしてこのスレッドに上げていただくことは可能でしょうか?
2017年06月01日
おおた
小笠原聖史様
ご返事有り難うございます。
1.すいません。色々やってみましたが、エクセルの添付の方法が分りません。
2,とりあえず、岡三オンラインの方にFOPPOS1T10Nの表示について,質問を出しています。
3.明日の夜、自宅にもどりますので,自宅のパソコンで行ってみます。
4、複数建玉の場合,間隔は20秒等とっておく必要が、ありそうですね。もしできるなら、損切り,利益確定の条件があえば,すぐに決済を考えています。EXELで=If( , , )*を使えば、即、決済ができると思います。この点もどう考えられますか?
* =if( ishumber(L3) ,if (or(L3〉=5000,L3<=ー5000)、if(A3=買,fneworder(決済売),fneworder(決済買) ),“待ち" ,““)
おおた
2017年06月01日
小笠原聖史
おおた様
1と2ですが、エクセル添付でなくとも、以下のような感じで張り付けていただければ拝見できます。
FOPPOSITION("銘柄コード",A3,"0")
FOPPOSITION("銘柄名",B3,"0")
FOPPOSITION("市場",C3,"0")
FOPPOSITION("商品種別",D3,"0")
FOPPOSITION("売買",E3,"0")
FOPPOSITION("建玉日",F3,"0")
FOPPOSITION("建玉単価",G3,"0")
FOPPOSITION("数量",H3,"0")
FOPPOSITION("決済注文中数量",I3,"0")
FOPPOSITION("建玉番号",J3,"0")
FOPPOSITION("建玉枝番号",K3,"0")
FOPPOSITION("評価損益額",L3,"0")
4はおっしゃるとおりですね。VBAを使わなくても、関数でも大丈夫だと思います。
2017年06月01日