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

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

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

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

ケン

サンプルシートを動かしたいのですが

市場モニターの画面.PNG (109.5KB)

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

2020年10月27日

ケン

大野様へ
TSですか!びっくりしました。固定の利益だとばかり思い込んでいました。これから調べてみます。ありがとうございました。

2020年11月03日

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

大野 了

あぁ!!
申し訳ありません・・・

サンプルにTSと書いてあったので、俺が完全にごちゃごちゃになってました。
ケンさんのおっしゃいます通り、トレイリングストップしていかないですね・・・
大嘘ついて、申し訳ありません。

もしトレイリングストップする際は・・・
残念ながらサンプルシートを大幅に変更しないと対応は難しいと思います。

理由としては、約定後すぐに利確用の発注をしてしまうようなので、
トレイリングストップして行く際は、
利確用に出している注文に対して訂正注文をしていかなければならなく、
サンプルシートがそもそもそのような作りになってないため、
そこの仕組みから作らないといけないと思います!!

もしくは、利確用の指値発注をしないようにして、
現在値が利確の金額に達したら、成行で出すとか・・・
そうすると、1tick滑ってしまいますが・・・


重ね重ね、大嘘ついて申し訳ありませんでした。

2020年11月03日

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

ケン

TSのフローチャート(2020年11月4日).PNG (46.9KB)

大野様へ
昨晩の大野さんのコメントで、L列がTSでQ列がLSっぽいとのことですが、半日かけて調べましたが、それらしいところを捕まえることができませんでした。ひょっとしたら当方のTSの認識が間違っているのではないか?という気がしてきました。当方のTSの認識そのままのフローチャートを添付しましたので、これが大野さんの認識と合致しているようでしたら、TSを表現していると思われる函数(あるいはそのセル名)を教えていただけますればありがたいです。

2020年11月04日

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

ケン

大野様
ほんの数10秒の差で、大野さんからの回答と、こちらからの質問が交差してしまいました。TS化は難しい件了解しました。これから少々考えまして、再度ご相談申し上げますのでよろしくお願い申し上げます。

2020年11月04日

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

大野 了

ケンさん

無駄な時間を使わせてしまい、本当に申し訳ありませんでした。

なんか簡単にできる方法を思いついたら、俺も連絡します。

2020年11月04日

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

ケン

大野様
とんでもございません。囲碁で言えば、大野さんはプロ9段~名人で、当方はアマチュア5級ぐらいですから、実力段違いです! ところで、公表されている岡三RSSのサンプルシートは全部で25種類ぐらいでしょうか。その中をすべてダウンロードし、トレーリングストップが存在しないか調査しましたが、見つけられなかったので、なぜだろうなあと不思議におもっておりました。やはり難しいのでしょうか? 当方も5級レベルではありますが(笑)これから考えてみます。

2020年11月04日

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

大野 了

ケンさん

そんな言って頂けると、恥ずかしい限りです(笑

トレーリングストップを作ること自体は消して難しいことではないのですが、
あのOCOのサンプルファイルの中に組み込もうとすると、少し大変そうという感じです。
だいぶ複雑ですし・・・

サンプルファイルに変更を加える形でやりたい
かつ
TSの約定にスリッページが入っても問題ない
というのであれば・・・

1.約定後、利確の指値注文を発注しないようにする
2.高値(安値)を常に判断して閾値を超えたら、F17の利幅を増やし、TSの利確の幅を増やす
3.現在値を常に判断して、利確幅に達した場合、初めて利確の注文を成行出す

という感じでしょうか・・・
このやり方なら、ピーク値を超えた時の訂正注文がいらないため動作が簡単になります。

損切に関しては・・・

1.損切時に訂正注文をして損切を掛けるという流れから、
現在値を常に判断して閾値を超えたら、成行で損切を掛ける形に変更する
2.D25の変更価格『約定単価からいくら』という部分を
『D18の利確の注文価格からいくら』というように切り替える
※こうすると、ピークが切りあがると、つられて損切の幅も切りあがっていく形にできると思います。


という感じにすると少ない変更でTSできるのではないかなーと思いますが、
それでもサンプルシートからはだいぶ変えないと厳しいと思います・・・(涙

2020年11月04日

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

ケン

大野様
了解です。プロが考えるところのTSがなんとなく理解出来てきたような気がします。スリッページを許さない!というのが普通なんですね!当方は成行で出せば事は済むと軽く考えておりました。まずは、成行にて作ってみようと思います。何日かかるか不明ですが、これから頑張ってみます。まずはありがとうございました。

2020年11月05日

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

大野 了

ケンさん

自分もOCOのような処理をしているのですが、健さんの考え方と同じで成行で出しています。

指値に先に発注すると、どうしてもTSで切りあがっていくときに、
訂正注文が必要になるので面倒で・・・(笑

たまにExcelの自動売買のファイルの作成をお願いされることがあるのですが、
その時は『指値で!!しかも1秒でも早く板に乗せて!!』とご要望を受けることが
多いので・・・(笑

まー
スリッページは起きないなら起きない方が良いですしね・・・

また何かありましたら、お気軽にご連絡頂けますと幸いです!!

2020年11月05日

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

ケン

添付資料20201109-001.PNG (105.9KB)

大野様へ
サンプルシート「ifdoneOCO+時間決済サンプル」におけるTrailingStop化の構想ができあがりましたので、相談させていただきます。以下5個ほどの要素からなっております。
1. シート「条件注文」のH50~L54の領域に、TS状態を表示するエリアを設ける。
2. 新マクロ「Sub TrailingStop()」を作成し、トレーリングストップの機能を担わせる。
3. マクロ「PCTimeUpdate()」の最後の部分にTSフラグ(シート!(条件注文)J53)を立てる手順およびマクロ「Sub TrailingStop()」を起動する手順を仕込む。
4. セルJ30の値が確定したときに新規約定が確定したと判断し、TSフラグを立てる。
(J30を監視する為の函数をK53に仕込んでおく(=IF(J30<>#N/A,J53=1,J53=0))。
5. TSフラグが立っている間、常に現在値を監視し、条件が満たされた瞬間TSフラグを降ろして成行にて利確作業を行う。
以上です。添付資料に、マクロの案(追加部分を赤くしました)とシート「条が件注文」に付加した新領域の画像を掲載しましたので、基本的にこのやり方で良いのかどうかなどを、よろしくご教授いただけますれば幸いです。

2020年11月09日

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

大野 了

ケンさん、こんにちは!!

TSできたんですねー!!
おめでとうございます!!

ロジック等は何となく理解できましたー
気がついた点を・・・

1.K53の『=IF(J30<>#N/A,J53=1,J53=0)』の記述について
  こちらはJ30がN/A以外なら、J53に1を立てたいと言う意味だと思うのですが、
  このような他のセルを更新するようなセル関数は書けないため、
  この処理はVBAにて行う必要があると思われます!!

2.VBAのApplication.OnTimeの処理の場所
  今のロジックでも問題はないのですが、誤動作の元になりますので、
  Application.OnTimeはPCTimeUpdateの一番最後のEnd Subの直後の方がよいと思われます!!

  この時、ケンさんが追加された、If Range("$J$53")・・・の処理はそのままだと動かなくなるので

  If Range("J$53").value <> 1 Then
   Call TrailingStop()
  End If

  と変更してあげる必要があります!!

  まとめると・・・
  Calculate
  If Range("J$53").value <> 1 Then
   Call TrailingStop()
  End If
  Application.OnTime・・・・

  となります!!

3.TrailingStop内のFNEWORDERがの引数の設定が行われない可能性があります
  たぶん、L7からコピーされてきたと思われますが、
  今の記述ですと、FNEWORDERで指定されているL9、L10などは変数として扱われセルの値を見に行きません
  もしセルの値を見に行かれたいのであれば、Range("L9")などとしてあげる必要があります!!

4.TrailingStop内のFNEWORDERの引数の設定が一部異なる可能性があります
  第10引数(L18)は注文確認となります!!(たぶん、今は金額を指定されようとしてる?)

以上、動かしていないので何ともですが、気がついた点です!!

2020年11月09日

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

ケン

大野様へ
解答(4種類のご指摘)ありがとうございました。ところで、ご指摘2,3,4は大体解答を得ましたが、ご指摘1について未だに解答を得ておりません。現在得られている解答らしきものを以下に書き出しましたので、これにつきまして、教えていただきますれば幸いです。
まずは大野様のコメント1は
1.K53の『=IF(J30<>#N/A,J53=1,J53=0)』の記述について
  こちらはJ30がN/A以外なら、J53に1を立てたいと言う意味だと思うのですが、
  このような他のセルを更新するようなセル関数は書けないため、
  この処理はVBAにて行う必要があると思われます!!

ということでマクロでこの趣旨を実現しようとしました。
(以下はマクロSub PCTimeUpdate() の頭の部分あたりに挿入した文と思ってください)

もしもJ30の値が#N/Aから数字に変わったら、その瞬間、フラグ=1にせよ。それ以外は無視せよ。
という趣旨になるかと思います。

これを実現するには、どうすれば良いか?ですが、

J30の前の状態をセルxに格納しておく。(例として、#N/Aならx=0、そうでないなら1)
そこで判断文としては、
現在のJ30の状態=数字で且つx=0 であれば フラグ=1とする。
(その直後にx=1に戻す)
これ以外は無視する。

とすれば良い。ということでしょうか?

以上教えていただけますれば幸いです。

2020年11月10日

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

大野 了

ケンさん、こんにちは!!

If (Range("$J$53").Value <> 1 Then
の1行上に・・・

Range("J53").Value = IIf(IsError(Range("J30").Value), 0, 1)

と追加してあげたら同じ動きをすると思います!!

この1行は・・・
PCTimeUpdate()が動くたびに、
J30がエラーかどうかを確認し、
エラーであれば、J53に0を立て、
エラーでなければ、J53に1を立てる形になります!!

その後、
If (Range("$J$53").Value <> 1 Then
でJ53の値を確認をするので、今までと同様の操舵になると思います!!

2020年11月10日

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

ケン

大野様
いやーーびっくりしました。IIfなどという函数があるとは、全く知りませんでした。今調べて愕然!としております。これから大野さんのご指摘4種および今回のご提言を参考にさせていただいて作り直したマクロを送りますのでよろしくお願い申し上げます(今日中ぐらいが目標ですが、、、)

2020年11月10日

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

ケン

添付資料20201110-001.PNG (145.3KB)

大野様
4個のご指摘と提言をベースにして、マクロを作成しました(添付資料)。これにつきまして、ご意見いただけますればありがたいです。

2020年11月10日

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

大野 了

ケンさん、こんばんは!!

添付資料みました!!

思い付いた点を・・・

1.Range("J53").Value = IIF・・・
  以降のロジックがcalculateの前に来ていますが、
  もし問題が無ければ、Calculateの後の方が良いかもしれません!!

2.疑問点の ・・・『成行にするにはどうすればよいか?』
  の件ですが・・・
  こちらは・・・
  L15 = Range("$L$15")
    ↓
  L15 = 0
  としてあげれば最大指値となり成行と同じ動作となります!!

こんな感じで大丈夫でしょうかー?

2020年11月10日

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

すべての投稿を表示する

to_top
to_top

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

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

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

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

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

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

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