ケン
サンプルシートを動かしたいのですが
現在、「ナイトセッション」で岡三RSSを活用した取引手法解説シリーズ 総論 [第4回] 後編 にて紹介されてるサンプル 「ifdoneOCO+時間決済サンプル.xls」に修正を加え、岡三RSSにて実稼働させようとしおります。しかしながら、このファイルにあるシート「市場モニター」において、“取引のない時間帯 補完”の欄で、朝08:45~09:01 までの17行のV,W,X,Y列のセルが全て#N/A となってしまいます。このような現象が起きる理由とその対策につきまして、教えていただければ幸いです。尚、問題のシートの写真を添付しました。
2020年10月27日



ケン
大野様
現在、全体の流れ図を完成させようとしておりまして、ロスカットの流れ図を追加しようとしております。ところがこれがどこにあるのか発見出来ません!
例えば新規注文であれば新規注文条件設定であるB8~F15に条件を指定して、J2~J27にて新規注文発注が実行されます。これに対して、ロスカットに対しては、返済注文損失限定(SL)開始条件という領域がB21~F27にありますが、これを実行するL2~L27に相当する部分が存在しません。これはどう考えれば良いのでしょうか? 以上よろしくお願い申し上げます。
2020年11月30日
大野 了
ケンさん、
ロスカットですが、
設定はケンさんのおっしゃられます通り
B21~F27で設定を行い
実際の処理は、Q列でやっているようです。
全体の動きをまとめますと・・・
1.新規発注(J列)
2.新規発注が約定されたら、利確の注文を出す(L列)
3.もし反対側に動いた場合は、損切注文に変更(Q列)
と思われます!!
2020年11月30日
ケン
小野様
了解です。なるほど文字通り「訂正」だったのですね!道理で見つけることが出来なかった理由がわかりました。一方、ちょいと困ったことになったと思いました。と申しますのは、当方トレーリングストップを追加しましたので、発注は株価がピーク値から一定値下がったところで発動されますので、「訂正」ではなく、新たな損切り注文の発動をしなければなりません。ということは、今後の対策としては以下のいずれかということになるでしょうか?
すなわち
対策1.「損切り」のマクロを新たに作成する。
対策2.Q列に対応する「損切り」用の列をY列あたりに作成する。
なんとなく対策1が簡単かなあという気がしておりますが、このあたり教えていただけますれば幸いです。
2020年12月01日
大野 了
ケンさん
そうですね・・・
ケンさんのVBAなどを断片的にしか見ていないので、
なんとも判断に困るところですが・・・
以前、見せて頂きましたVBAですと、
TSの利確発注はVBAから発注される形に変更されていたと思います。
このため、L列(決済の発注)の発注機能がVBAに移行されてていると思うのですが、
L8の注文状態は機能すると思うので、
引きずられてQ列自体の処理自体は動くと思われます。
ですので、TSの切りあがりに合わせて、D25の損切価格を切り上げていく形が
もしかしたら簡単かもしれません 。
2020年12月01日
大野 了
ケンさん
あー違う・・・
落ちてきたら、約定させる形でしたね・・・
だったら、TSで一度も切りあがっていない状態での
損切の処理を、VBAに入れてあげるのが一番簡単だと思います!!
ケンさんの言われるところの、対策1ですね!!
2020年12月01日
ケン
大野様
了解です。当方も、昼飯を食いながら、TSの根元に入れるのが良いか?と考えていたところでした。当方も、実力13級から10級ぐらいに上がったですかね! ありがとうございました!
2020年12月01日
大野 了
ケンさん
このサンプルを改良されて、TSのVBAを作られてる時点で、
有段者のレベルのような気が・・・
なにはともあれ、うまくいくことを祈ってます!!
2020年12月01日
ケン
大野様
有段者とのお褒めの言葉をいただきまして、舞い上がっております!ところで、トレーリングストップのマクロに、ロスカットの手順を埋め込みました。添付資料を見ていただきましてご見解をお聞かせいただけますれば幸いです。ところで、この手順を作成している過程で疑問が二つほど出てきましたので、これも又よろしくお願い申し上げます。(最初のページが埋め込んだロスカットの部分で、2ページ目がこれまでのトレーリングストップの手順です)
疑問1:norder = Fneworder(L9, L10, L11, "", "", L14, L15, L16, L17, L18, L19, L20, L21, L22, L23, L24, L26, L27) の関数の引数の中のL16は「単価」となっていますが、これには現在値を入れておけばよろしいのでしょうか?
疑問2:疑問1の関数が実行された場合、norderには何か文字が出力されると教わりましたが、どのようなものが出力されるか教えていただけますれば幸いです。
以上よろしくお願い申し上げます。
2020年12月02日
大野 了
ケンさん
ソースを見たましたが、多分大丈夫ではないかと・・・
ご質問の件ですが・・・
>疑問1:norder = Fneworder(L9, L10, L11, "", "", L14, L15, L16, L17, L18, L19, L20, L21, L22, L23, L24, L26, L27) の関数の引数の中のL16は「単価」となっていますが、これには現在値を入れておけばよろしいのでしょうか?
こちらは、指値などの単価となりますので、
最大指値を指定されている場合は『0』となります!!
>疑問2:疑問1の関数が実行された場合、norderには何か文字が出力されると教わりましたが、どのようなものが出力されるか教えていただけますれば幸いです。
自分が知っている範囲では・・・
『発注待ち』『発注完了』『発注金額オーバー』だったと思います!!
もしかしたらこれ以外もあるかもしれません・・・
2020年12月02日
ケン
小野様
了解しました。ありがとうございました。ところで、現在、ファイルを08:30頃起動しますと、10:00にトリガー発動時刻が10:00となります。(イニシャルレンジの範囲は09:00~10:00に設定しています)まだ4日ぐらいですが、100%そうなります。これからそのあたりのアルゴリズムを調べますが、その前にグラフ(4本値)を描画したくなりました。(今後の開発インセンティブに相当影響します!)以下質問を箇条書きにしますのでよろしくお願い申し上げます。
1.シート「条件注文」のJ5はトリガー発動時刻ということですが、この意味は、発注のゴーサインが出た。という意味でしょうか?
2.トリガー発動時刻が毎回100%10:00になるのは、どこかおかしいですね?
3.描画のサンプルを探したところ「チャート描画サンプルシート(先物).xls」というファイルが見つかりました。これを現在調べておりますが、何かほかのリコメンデーションがあるでしょうか?
以上教えていただけますれば幸いです。
2020年12月02日
大野 了
ケンさん、こんばんは!!
>1.シート「条件注文」のJ5はトリガー発動時刻ということですが、この意味は、発注のゴーサインが出た。という意味でしょうか?
マクロを観ると、
初回かつ有効時刻以上になった時に時間が入るようですので、
確かにゴーサインが出たような感じと思われまーす。
>2.トリガー発動時刻が毎回100%10:00になるのは、どこかおかしいですね?
動きとしてはおかしくはない感じです。
トリガー執行時間を退避してる感じですので・・・
>3.描画のサンプルを探したところ「チャート描画サンプルシート(先物).xls」というファイルが見つかりました。これを現在調べておりますが、何かほかのリコメンデーションがあるでしょうか?
4本値ですよね・・・
申し訳ありません、ぱっとは思いつかないです。
4本値だとExcel自体にチャートがあるので、最終的にそれを使う形になると思います!!
2020年12月02日
ケン
大野様
了解です。J3=1が実行された直後にcell(5,10)=TimeforDakokuを実行しておりますので、「発注が実行された」ということではなく、「発注出来る状態が完了している!」という事であることを確認しました。従って、質問2も同時に判明し、「J5のトリガー発動時刻が100%、イニシャルレンジの測定範囲の最後の時刻に一致する時刻にて打刻される」背景も理解出来ました。ありがとうございました。ところで質問3ですが、「岡三RSSでチャートを描画しよう」というビデオを再度見ました。excel自体にチャート描画の機能があるんですね!思い出しました。このビデオに非常に詳細に描画の方法が説明されている事を再認識しました。これでなんとかなると思われます。どうにもならなくなったら小野さんに泣きつきますので、そのときはよろしくお願い申し上げます。ありがとうございました。ところで漸く発注の試しを実行する段階になったと思われます。大分前に小野さんからは「パスワードをわざと間違えておき、発注エラーが出るのを見て、ここまでの動作が活きていることを確認した」ということを教えていただきました。これを実行してみようと思っております。ファイルのJ21を見ますと=F35と書かれており、間違えようが無いですが、間違えるため、J21に適当な間違えたワードを書き込んでおけばよろしいでしょうか?以上教えていただけますれば幸いです。
2020年12月03日
大野 了
ケンさん
とうとう、本格発注ですか1!!
楽しみですね!!うまくいくことを祈ります!!
パスワードの件ですが、
そうですねー
元々のF35を変更されても良いですし、ケンさんのおっしゃれます通り、
J24を適当なワードに変えられても良いと思います!!
2020年12月03日
ケン
小野様へ
了解です。ありがとうございました。ところで、とんでもない事を発見しました。新規注文は100%、10:00(イニシャルレンジの最後の時刻)に発注される。という事実です! と申しますのは、新規発注はマクロからではなく、セルJ7に書き込まれているFneworder(,,,,,,)によって実行されているからでした! 従いまして、J2=1、J3=1になりますと、セルJ7の関数=@IF(J2*J3<>0,fneworder(J9,J10,J11,"","",J14,J15,J16,J17,J18,J19,J20,J21,J22,J23,J24,J26,J27),"未発注") により自動的に新規発注が実行されます。ところでJ3=1になる条件はJ4=1(J4=1になる条件はF9=1(10:00になったら実行):マクロで実行)ですので、新規発注が決定されるアルゴリズムの中に、レンジ内の最高値がどうのこうの、株価の最高値がどうのこうのという情報が全く現れません!おかしいのではないでしょうか? と最初は思いました。ところが、どうも、これで正しいのではないか?と思い始めました。なぜかと申しますと、発注価格(J18=D13=F5+D58)が高めに設定されており、逆指値で発注されますので、この発注が約定すると、これは高値上昇モードに乗ったことになります。従いまして、4つのファイル(高値上昇モード対応、低値下降モード、一定レンシ振動モードの売り、一定レンジ振動モードの買いの4種)を1台のPCにて走らせた場合、10:00になったとたん4個の発注が同時に実行されると言うことになります! この方式のメリットは、株価がターゲットに達したときの発注速度が最高である。ということになるでしょうか?ターゲットに達してから発注行動を取るより、ずっと短い(論理的に最短時間ですかね?)ような気がします。以上について、小野さんの見解をお聞かせいただけますれば幸いです。
2020年12月03日
大野 了
ケンさん
申し訳ございません、理解力が無くケンさんのご質問が完全に理解できているか不安なのですが、
こちらは・・・
『サンプルシートの新規発注が有効時刻になったら、
逆指値で発注してるみたいだけど、これは現在値を監視して発注するより効率がいいの?』
という事で大丈夫でしょうかー?
それでしたら、ケンさんのおっしゃられます通り、
現在値を監視しておいて、指定した価格になったら発注させるよりも
逆指値注文を先に出しておく方が、
証券会社まですでに発注が通ってるので約定は早くなると思われます!!
2020年12月03日
ケン
小野様
当方の質問は小野さんの仰られている「サンプルシートの新規発注が有効時刻になったら逆指値で発注しているので、これは現在値を監視して発注するより効率がいいの?」に集約されておりました! いただいたサンプルファイルのアーキテクチャが、有効時間になったら100%発注される!という事を認識していなかったため、非常なショックを受けたため、余計なことをぐちゃくちゃ書き込んだため混乱させてしまい申し訳ございませんでした!
但し、100%発注されるのはいかにも問題がありそうな感じですので、イニシャルレンジにおける価格差(最高値と最安値の差)があまりにも小さいと、発注をやめる。という判断を、
発注の条件に入れるべきと思いますので、それをこれから考えてみます。ありがとうございました。それから追加の質問です。有効時刻を過ぎると、セルJ7に、「発注待ち」という文字が現れます。これは誰が書き込んでいるか調べましたが、マクロには存在しませんでした。ということは、以前教えていただいた、Fneworderが書き込んでいる。ということでしょうか?ということは、この関数は、現在岡三RSSのユーザー設定にて「発注禁止」にしていることを知っている。ということを意味している。というふうに考えてよろしいでしょうか?以上よろしくお願い申し上げます。
2020年12月04日
大野 了
ケンさん、こんにちは!!
最高値と最安値の差の条件追加、良いですねー
良いフィルタになりそう・・・( ..)φメモメモ
『発注待ち』の件ですが、ご認識通りFNEWORDERが書き出しています。
また『発注待ち』が出力される条件も、ケンさんのおっしゃれています、
発注禁止の際に出力される感じになります!!
2020年12月04日
ケン
大野様へ
了解しました。大変ありがとうございました。さて、現在オリジナルファイルに、マクロによるトレーリングストッフを追加する方式にて次の段階に進もうとしておりますが、これとは別に、徐々に、オリジナルの方式の変更(最初に発注し、発注済みの逆指値の買い値を、株価が上がるにつれて訂正してゆく方式)にて対応する方がいろいろな意味で良いような気がしてきました。これはかなり最初の頃に、大野さんから指摘された方式でした。この方式をこれからやってみようと思っております。以下、フローを箇条書きにしましたので、これに対するご見解をお聞かせいただけますれば幸いです。
1.発注は規定の時刻に、規定の買値で逆指値で発注する。(オリジナルと全く同じ)
2.株価を監視する過程で、最大値を記録しておく。
3.株価が上がるにつれて、最大値を更新する。と同時に、株価上昇に対応し、発注済みの買値を訂正する。(オリジナルの訂正フォーマットを使う)
4.株価が最大値から規定の値だけ下降した場合、決済を実行する。発注形式は最大指値
とする。この方法で、オリジナルにほんのわずかな変更を加えるだけで結果として、トレーリングストップの機能を持たせることが出きる。
以上です。よろしくお願い申し上げます。
2020年12月04日
大野 了
ケンさん
そうですね・・・
自分がやるなら、訂正注文が面倒なので以前に書いた形
===============================
1.約定後、利確の指値注文を発注しないようにする
2.高値(安値)を常に判断して閾値を超えたら、F17の利幅を増やし、TSの利確の幅を増やす
3.現在値を常に判断して、利確幅に達した場合、初めて利確の注文を成行出す
という感じでしょうか・・・
このやり方なら、ピーク値を超えた時の訂正注文がいらないため動作が簡単になります。
損切に関しては・・・
1.損切時に訂正注文をして損切を掛けるという流れから、
現在値を常に判断して閾値を超えたら、成行で損切を掛ける形に変更する
2.D25の変更価格『約定単価からいくら』という部分を
『D18の利確の注文価格からいくら』というように切り替える
※こうすると、ピークが切りあがると、つられて損切の幅も切りあがっていく形にできると思います。
=============================
の形でやると思いますが、
これだと変更量がそれなりに出てしまうので・・・
サンプルからの変更を極力抑えたいというのであれば―
ケンさんのやり方でも問題はないと思います!!
2020年12月04日
ケン
大野様
なるほど良さそうな提案、ありがとうございました! 通常であれば、すぐそのやり方に変更する作業に入るのですが、、、今心配しているのは、デバグの過程で、実の損失が膨大になるのではないか?ということです。これまでいろいろプログラミングを経験しましたが、バグ取りは相当難しく、時間のかかる作業であることを認識しております。そこで一月程前に、アクティブ先物取引という制度が出来ていることを発見しまして、ひょっとしたらレバレッジがミニより小さいかも!と色めき立ち、岡三証券に電話を掛けて話を聞きました。女性が出てきていろいろ説明していただきましたが、よく判らなかったです!結論は、どうもレバレッジとは関係がないらしいと思い、採用は完全に諦めました。一方、岡三RSSの「集いの広場」で公開しているサンプルファイルは、そのままでは殆ど使えないが(!)、骨だけはしっかりしており、デバグはしっかりされているように感じられます。ということで、サンプルの基本理念をそのまま使った方が良いのではないか?と最近思うようになった。という次第です。以上雑談ぽくなり申し訳ございません!大野さんのこのあたりのご見解をお聞かせいただければ幸いです。
2020年12月05日
大野 了
ケンさん、こんにちは!!
そうですねー
岡三RSSの場合、デバッグは自分の口座でやらないといけないため
どうしても実際に損失を出したりしてテストしないといけないので、
デバッグの時間が短縮できるのは、
トータルではケンさんのやり方もメリットもデカいなーと思いました
アクティブ取引は・・・
メリット
・証拠金が少なくて済む(spanの50%)
・手数料が安い
デメリット
・ポジションが引けで必ず決済される
・損失が大きくなると自動でロスカットされる(損切できない人にはメリット?)
とはいえ、ほとんどかからないと思います
平たく言うと
『デイトレしかできないけど、その分必要証拠金低くするし、手数料も安くするよ』
て取引方法だと思います!!
自分はサヤ抜きのシステムがどーしてもオーバーナイトしてしまうので
そのシステムが無ければ、アクティブ取引にしたいところです。
ケンさんのおっしゃられますところの
『レバレッジがミニより小さいかも』
が
『ミニ1枚建てるときの、必要証拠金が減らせるかも』
と言う事であれば、その通りの取引になります!!
2020年12月05日