黒犬
二重発注された原因は?
いつもお世話になります。
N225ミニ
2006
大阪
新規
売
指値 19,115 円
1 枚
1 枚
1 枚
19,115 円
04/13 21:30:02
当セッションのみ
約定済
N225ミニ
2006
大阪
新規
売
指値 19,115 円
1 枚
1 枚
1 枚
19,115 円
04/13 21:30:01
当セッションのみ
約定済
こんな感じで二重発注されました。数日前にも同じ事があったので質問させて頂きました。
発注IDは5分足の時間を充てているので同じ筈です。
又、注文クエリ関数で取得した発注数量でも監視しています。
(IF文で数量が1の時は”発注中”、否定で”OK”としていて"OK"の時に発注可)
それでも1秒の違いで発注されています。
数量は1で固定しています。
どこがまずいのでしょうか?
2020年04月14日
大野 了
ズレのイメージ.xlsx (11.8KB)
黒犬さん、こんにちは!!
大野@我が家の犬は真っ白のマルチーズです。
データだけですので、あくまでも想像でしたかないのですが、
FCANDLEのデータ取得のはざまで、二重発注してしまったのではないかと思われます。
イメージのファイルを添付します。
添付ファイルように、新しい5分足が落ちてくるはざまで発生したのではないかと・・・
今回の例ですと、ちょうど発注時間が21:30付近ですので、
1.21:29:59に、シグナルが出て一回目の正規な発注がかかる
2.21:30:00に、約定時刻だけが更新されたときに、21:29:59の価格を見て、
シグナルが出てるように見え再発注がかかる
※この時、約定時刻だけは21:30になっており発注IDが変わってしまうので、発注がかかってしまう
発注が処理されるのに、1、2秒かかってしまうので、
発注時間からすると可能性があります。
注文クエリも同じ理由で、時間のはざまで発注数量が正常な値で取れない瞬間があるため
ここもすり抜けてしまったのだと思います。
2020年04月14日
大野 了
ズレのイメージ.xlsx (11.8KB)
黒犬さん、こんにちは!!
大野@我が家の犬は真っ白のマルチーズです。
データだけですので、あくまでも想像でしたかないのですが、
FCANDLEのデータ取得のはざまで、二重発注してしまったのではないかと思われます。
イメージのファイルを添付します。
添付ファイルように、新しい5分足が落ちてくるはざまで発生したのではないかと・・・
今回の例ですと、ちょうど発注時間が21:30付近ですので、
1.21:29:59に、シグナルが出て一回目の正規な発注がかかる
2.21:30:00に、約定時刻だけが更新されたときに、21:29:59の価格を見て、
シグナルが出てるように見え再発注がかかる
※この時、約定時刻だけは21:30になっており発注IDが変わってしまうので、発注がかかってしまう
発注が処理されるのに、1、2秒かかってしまうので、
発注時間からすると可能性があります。
注文クエリも同じ理由で、時間のはざまで発注数量が正常な値で取れない瞬間があるため
ここもすり抜けてしまったのだと思います。
2020年04月14日
大野 了
分足完全取得.xlsx (36.1KB)
二つ投稿されてしまった・・・(涙
そして、肝心の対処方法ですがー
FCANDLEなどの複数関数にて1つのデータを取得する関数の場合
複数関数がすべて動いたことを確認する式を追加し、
その追加した式を発注の条件に入れてあげるのが一番だと思います。
以前、ご質問を受けた時に作成したファイルを添付します。
この添付ファイルのG2のセルが、
FCANDLE達がすべて動いた場合に、『取得済み』と出ますので、
FNEWORDERの発注条件のIF文に、このセルが"発注済み"となった時という条件を
追加して頂くと、二重発注が防げると思います!!
添付ファイルの使いまわしであることと、関数の動くタイミングの話になるので
ものすごくわかり辛いと思います。
わかり辛い点が多々あると思いますので、その時はご連絡頂けますと幸いです!!
2020年04月14日
黒犬
大野様
いつもご親切に有難うございます。
ご指摘頂いた内容は理解出来ました。
2重発注の原因はIDにある事に間違いないと思います。
発注に使っているIDは”文字列”&5分足の時刻です。
5分足キャンドルは5分ごとにIDを変える為(連続発注)と損切判定,注文キャンセルの為なので時刻と終値だけを取得しています。
新規注文は15分足での判断で複数のフラグで条件が整えばEntry”になります。従いまして新規注文は必ず0分、15分、30分、45分の直後になります。新規注文は"Entry”の文字列のセルしか参照していないのでデーター取得のはざまでIDが変るとは考えにくい気がします。もしかすると5分足のシリアル値がリアルタイムに変わっているのかと思いCEILING関数で丸めてみましたが、どうもダメみたいです。今日も2回フラグが立ち、2度ともに二重発注となりました。
又、5分約定しないとキャンセルするようにしていますが、キャンセルが実行されるとIDが変る5分後ごとに”Entry”ではないのに新規発注される現象も現れました。
先日まで大過なく自動売買出来ていましたが、手を加えて行く度におかしくなってしまいました。
新規発注フラグの一つに「関数の取得済」を加えさせて頂きます。
今、新規発注が行われましたが正常でした・・
P.S. 今日は仕事が休みでPCに座りっぱなしの私の傍らに黒のラブラドールが暇そうにしています。
2020年04月14日
大野 了
黒犬さん
なるほどー
そういう事なんですねー
だとするとデータ取得のはざま関係では、以下のような可能性が考えられるかもです!!
Excelの関数は左上から順に実行されることが保証されているわけではないので
先に価格の方が動いてる可能性もあります。
1.21:30、15分足のシグナルに使っている情報(始値や終値)が更新される
2.発注のフラグが立つ
3.FNEWORDERが動く
※この時まだ『約定時刻』は21:15のため、発注IDは21:15で発注
4.その後『約定時刻』が更新されて、21:30になる
5.『約定時刻』が更新されることによりExcelの再計算がかかり、発注IDは21:30で発注
※この時シグナルは、2回立つというより、1回目のシグナルが立ったままのため再発注されてしまう
関数の取得済みの対応だけで直ると良いんですがー
もし、2重発注が止まらない場合は、
パスワードや、黒犬さんのノウハウの部分(シグナル発生などの部分)を消したファイルを上げて頂ければ、
動きの部分は見てみまーす!!
P.S.
黒のラブラですかー
良いですねー
子供のころはラブラを抱き枕に寝るのが夢でした(笑
2020年04月14日
得重博志
大野様
御親切に感謝しています。本当に恐縮です。
ご指摘は21:30分に21:15~21:30までの15分足が確定してフラグが立つ、その時の発注IDで使っている5分足の時刻は21:30に達していないという事でしょうか?
昨晩も現象発生していましてサイトの方で注文履歴を確認しました。受付時間が二つとも一緒で0:45:03、処理時刻は1秒の差が有り0:45:03と0:45:04でした。因みに約定時間は二つとも0:45:09でした。(指値なので)受付時間が同じなので同じIDのように思えます。
もう一つ2重発注があったのですが、それは発注5分で未約定キャンセルが影響しているようでした。ステータスは取り消し済みになっていましたが処理済が0個、要するにキャンセルされていない状態、その後に追加で発注されていました。注文個数もフラグも見ている筈ですが・・
もう一つ別の新規発注ロジックも15分足を使い、5分足の時刻IDを使っていますが、2重発注は有りません。
付け焼刃的修正だらけのファイルですが、少し細工してアップ致しますのでその節にはどうか宜しくお願い致します。
取り敢えずお礼まで・・
出勤時間間際で乱文失礼しました。
P.S. うちの黒ラブは私のベッドで私の股の間で太ももを枕にして毎晩寝てます。
2020年04月15日
大野 了
得重さん
>ご指摘は21:30分に21:15~21:30までの15分足が確定してフラグが立つ、その時の発注IDで使っている5分足の時刻は21:30に達していないという事でしょうか?
はい、得重さんのおっしゃれる通りとなります。
FCANDLEの関数は1つの足の情報を取るために『約定時刻』『終値』など複数FCANDLEを使って、
1つの足の情報を作り上げるのですが、
この時『約定時刻』『終値』が同じタイミングでまとめて動けばよいのですが、
『約定時刻』を取得し、その後に『終値』を取得しと1つずつ動いていくため、
一瞬『約定時刻』と『終値』で時間軸の違う足が同じ行に出てしまいます。
また、『約定時刻』の後に『終値』が動くことが保証されているわけでもなく
状況によって『約定時刻』の後に『終値』が動いたり、『終値』の後に『約定時刻』が動いたりします。
二重発注されている時間が、
すべて、30、45分の数秒以内に集中していますので、この可能性が高いかもと・・・
P.S.
太ももを枕に・・・
寝返りが打てないやつですね・・・(けど、うらやましいい
我が家のマルチーズは、俺が寝てると少しずつ枕の上に載ってきて
最終的に俺から枕を奪い取ります。
2020年04月15日
黒犬
大野様
昨日出勤前に新規オーダーのIF文の中に「15分足の時刻」のセルと「5分足の時刻」のセルがイコールという条件を付け加えてみました。
約定履歴に新規と決済がきれいに交互に並んでいました。1個だけ別な発注ロジックの方で二重発注が有りましたがこちらの方に同じ修正を加えた前なのか後なのか記憶が曖昧でなんとも言えませんがその後、10回連続2重発注が有りませんので治ったかもしれません。
もう1日、様子見て判断したと思います。
取り急ぎ、出勤前の報告ってことで失礼します。
2020年04月17日
大野 了
黒犬さん、こんにちは!!
出来れば、15分の足間(15分のロウソク足の情報を取る複数の関数)の
ズレもないことも確認できると、ロジック的に硬いと思いますが、
時間の確認を増やされたことで収まったならよかったです!!
これで二重発注が無くなる事をホント祈ります!!!!
2020年04月17日
黒犬
大野様
パラメータを甘くして発注が出やすい状態で出かけました。
ナイトと合わせて30件以上検証出来ましたが2重発注はゼロでした。
念の為、メモに発注IDを入れナイトを動かしていましたがシステム障害で引けまで決済されず検証は出来ませんでした。
おそらくもう2重発注の症状は出ないと思います。
関数実行のズレの件、勉強になりました。
テスト段階という事で画面が大きいデスクトップで作ってましたがEXCEL2010がダウンしたり動作が怪しくなってきたのでノートPCで作り直しを行います。いろんなセルを参照して所謂スパゲティ状態で下手に弄ると思わぬ現象が出たり、検証も出しづらいので・・
落ちてくるデータの取得済のロジックも付け加えさせて頂きます。
本当にお世話になりました。
有難うございました。
2020年04月18日
大野 了
黒犬さん
2重発注発生しませんでしたか!!
それはよかったです!!
いろいろと拡張してると、どんどんごちゃごちゃしてきますよねー
俺もある程度ごちゃごちゃして来たら、一気に整理してしまいます(笑
なにはともあれ、少しですがお役に立てた様で幸いです!!
2020年04月18日