デイトレ専用ツールの中身

私のデイトレ専用ツールは、東証一部用と新興用の一軍、二軍の3種類があります。
銘柄が違うだけで、どれも殆ど同じ構造になっています。
それぞれ約200銘柄の、直近20日間の4本値、出来高を保存する部分があります。
毎日1回、大引け後に「バッチ処理」を行い、最古の日のデータ捨て、直近20日分のデータを保存し直します。
こう書くとややこしい感じがしますが、実際には「Ctrlキー+B」を押すだけ。 バッチ処理用のマクロが全てを3秒ほどで完了させます。
しかも殆どは「マクロの記憶」機能で自動作成されたものですから、ほんとにエクセルは良くできています。
これだけのデータから、それぞれの銘柄について、

20MA(=Moving Average=20日移動平均)と5MAの位置を算出します。

これにより、翌日の株価が20MAと5MA両方の上に位置するものをロング(買出動)候補。 両方の下方に位置するものをショート(売出動)候補とする事が出来ます。
トレンドフォローにおいて、例えば数時間のエントリー時間しかない短期のものであっても、より長期間のトレンドに沿う方向に仕掛ける事が、勝率を良くします。
数百銘柄あれば、必ず20MAと5MA両方の方向が揃っている銘柄が含まれます。
これらは、例えば銘柄名のセルをロング=青、ショート=赤、その他=白に色づけする事で、簡単に見分けられるようにし、エントリー判断の重要な要素としています。

出来高の推移を加重平均し、最近出来高が増加したものを重視します

出来高が大きい方が、スリッページが少なくなるというメリットもありますが、なによりボラティリティの増加により、利幅が得やすくなります。

出来高x株価=売買代金の算出

一定基準を満たさないものは、二軍落ちさせ、二軍で基準を満たすようになったものを、一軍のファイルに引き上げます。

ボラティリティ=(1日の最高値 – 1日の最安値)/その日の株価

上記の式から、各株が平均して1日に何円動くかを把握します。
例えば、株価1000円で、1日に平均して100円動く株があるとしましょう。
既に始値から80円上昇した株に、今更買いエントリーするのがあまり効率的でない事が解ります。
また、100円のギャップアップ(窓を開けて始値を点けた)をした場合、既に危険水域にある事がわかりますね?

前日が、大陽線又は大陰線かどうか

前日のローソク足が、平均ボラティリティを超える長さである場合、同方向に仕掛けるのは、リスクが高く利幅が薄い傾向が、かなり顕著に見られます。「見送り」の重要な要因です。

何日間高値、又は安値を超えた位置にあるか

a)ローソク足の本体部分で、何日ぶりの高値、または安値か、
b)同じく、ローソク足のヒゲまで含めて、何日ぶりの高値、又は安値か。
リアルタイム株価が、a)又はb)の条件を満たすとき、a)かb)か、また何日ぶりであるかによって点数をつけてソート(並び替え)を行い、ブレイクアウトの強度によってランキング表示します。

妥当な押目からの反発かどうか

単に上げ続けている株を買うより、適度な押目から反発してきた株を買う方が効率が良い事がわかっています。
この値動きを感知するロジックを組み込み、有望銘柄のセルを色付けし、なお且つ表示順位も上に来るように、設定しています。

リアルタイム株価を20秒刻みで上記各項目に反映させる

同じく表示順位も20秒毎に更新させ、エントリーポイントに入った株を見つける。
ランキングに入った株は、全て1分足チャートや5分足チャートでチェックし、出動の可否を判定する。

以上で、私のツールの80%程度の内容が含まれます。残り20%は補足的なもので、私には「有った方が便利」という程度です。
とにかく、「エントリーしがいのある銘柄」が上位に表示され、ロングかショートかはセルの色で直感的にわかるようにしています。
寄付き直後から、これら優先順位の高い株のチャートを確認し、機械的にエントリーしていきます。
始値がつくまで10分以上かかる銘柄は、何か材料が出た可能性が高いですが、そうした株も、「値がついていない」状態である事がわかるので、予めチャートでチェックしておく事が可能です。

さて、一杯書きましたが、これを読者の方がどう有効に使えるようにするか?が問題ですよね。考えてみます。
既にこの記事が、殆ど意味を成さない読者の方もいらっしゃるかもしれません。
でしたら、この「マイ・ツール」カテゴリの記事は読み飛ばされた方が良いのかも?
他の「カテゴリ」も平行して書いて行きますので、全部見捨てないで下さいね。
エクセル+VB+RSSが使える方は、ぜひ20~30日分の過去データの蓄積とバッチ処理について、作りこんでみて下さい。
これができれば、一つ一つ自分の好きな機能を追加していけるので、楽しいですよ。
私のツールの場合、25日分しか蓄積していませんが、比較用セルなどVBの再計算量を軽減するセルが結構あって、10%程度の未使用セルを含めて250列近くまで使っています。
途中で「列」をインサートで追加すると、マクロやVBのコードもそれに合わせて書き換えないといけなくなるので、表示させる項目と過去データ格納セルの間には50~100列の未使用列を入れておくと、後々苦労が減ります。
私の場合、設計も無く思いつくままに作り始めたので、この「列インサート」問題にはかなり苦労しました。
銘柄が200を超えると、RSSに予告無くエラーが発生するようになるので、要注意です。
厳密には理由がわからないので、150銘柄くらいにしておくのが無難かもしれません。
マクロによる再計算も軽くなりますしね。 それ以上は、私のように二軍のグループを用意して、週一くらいで銘柄のデイトレを行うのも良い方法と思われます。
ではまた・・・。

つづきを読む

デイトレ生存率向上ブログは、あなたの応援クリックによって支えられています。
どうぞ、よろしくお願い致します。

他では絶対に読めない、全トレーダー必読のPDF(2万ダウンロード達成!)

<< デイトレ攻略の新戦略レポート(無料)>>


トレードが難しいのは、トレーダーの油断や強欲や優柔不断な性格等が原因と考えられがちですが、本当の原因はもっと心の奥深い所に隠されています。
(※月並みなプロスペクト理論等ではありません。)

このレポートでは、その原因となる心の驚異的な仕組みを解り易く解説すると共に、トレードを難しくしている原因を、どのようにすれば取り除く事ができるかまで、具体的に提案しています。

このレポートを一読すれば、その他大勢のトレーダーが延々と堂々巡りを続けている暗黒のトンネルが「パッ!」と急に明るくなり、出口がはっきり見えるようになります。(PDF、全68ページ)


16 件のコメント

  • 内容を公開していただき感激です。
    さっそく数銘柄の4本値をペーストして
    気になる内容を加工してみました。
    今まで感覚的にやっていた部分が
    計算してみるとよく分かりますね。
    どうやって活用すれば良いか
    考えてみたいと思います。
    「Ctrlキー+B」のやり方を自分なりに
    考えてみました。
    19日分をカットして1行ずらして
    ペーストする原始的な方法しか思い浮かびませんでした。
    最古のデータを捨て保存し直すって
    まったく違う方法なんでしょうね。

  • 私もティダさんの方法でやってます。
    19日分をコピーして、1日分右にずらせてペーストし、次に当日の4本値の部分をコピーして、最新の日のところに「形式を選択して貼り付け」–>「値」でペーストします。そうしないと、RSSの「=RSS|’4839.t’!高値」なんてのをコピーしちゃいますからね。RSSから引用する部分も、1日前、2日前、、、、、最古の日まで、全て始値、高値、安値、終値の4本値をこの順で並べて、ワンセットです。
    出来高はまた別のところでまとめて保存してますが、4本値と一緒に5番目のデータとして保存しても良いでしょう。それは作者の自由です。難しく考える必要は全然ありませんよ。

  • エクセルVBで「エレガント」なプログラムコードを作成しても、大した意味はありません。逆にどんな泥臭いコードでも、人間の数百万倍のスピードのコンピューターが「エレガント」な結果としてあなたに返してくれます。
    「原始的」大いに結構。それをVBに実行させた段階で、あなたのライバルを何人ごぼう抜きにしたか知れません。
    更にそれを何ヶ月も続けたなら?
    やってみるだけの価値は、あると思います。

  • traderspageさん、こちらも分かりやすい
    回答ありがとうございます。
    自分で勝手に壁を高くしていたんですね。
    もう一人自分が欲しいなぁと思ったことや
    何回も繰り返していることをPCに
    替わってやってもらうという基本を
    忘れるところでした。
    まずは単純に時間を短縮できることを
    エクセルで作りこんでみたいと思います。

  • 知識不足で全くアイデアが出ないことに
    ついて教えてください。
    20秒毎に更新させるにはどんな命令を
    学べば良いのでしょうか?
    もしくはどんな言葉で検索すれば
    ヒントにたどりつくでしょうか?
    よろしくお願いします。

  • 確かに、私もそれを見つけるのにちょっと苦労した記憶があります。
    タイマーとかしか思いつきませんものね。
    後日書きますので、ちょっとお待ち下さい。もしその前に見つけられたら、答え合わせですね。

  • 私のエクセルVBの知識は、殆どエクセルVBのヘルプで得た情報に基づいています。だから、このブログを見たら、「なんて泥臭い」と感じる方がいるかもしれません。
    だとしたら、できましたらぜひ、「泥臭くない方法」を教えて下さい。私も含め、大変参考にさせて頂けると思います。
    「泥臭く」ても、チャレンジしないよりはずっと良いと思いますが、「エレガント」なコードは、やっぱり生産性が高いですから。
    よろしくお願い致します。

  • こんにちは、久しぶりにコメントします。
    こちらのマイナーコーナーも掘り返してみたいと思いますw
    少し前からこちらの記事を参考にして、マイツール作りに挑戦中です。
    どなたかが書いていましたが、まったくイメージが出来ないような状態からの手探りなので、常に頭を悩ませています。そこで一つ質問をさせてください。
    元記事中の
    >>出来高の推移を加重平均し、最近出来高が増加したものを重視します
    というのは、何を「重み」として考えればよいのでしょうか?例えば「出来高加重平均価格(VWAP)」ですと、価格の重み付けとして出来高を使ったものと解釈しているんですが。
    難しく考えすぎですか?

  • 難しく考えて悪いという事は決して無いと前置きした上で、私のマイツールのその部分に限って言えば、そんなに難しく考えてません。
    例えば平均値を出す場合、10日前の出来高と、昨日の出来高を「平等」に評価する事が果たして本当に「平等」なのか?という疑問が出てきます。
    10日前より9日前、9日前より8日前、、、、、一昨日より昨日の値の方が重要度が高いから、重みをつけるのが自然。
    という事に思い当たります。
    でも、そこから「どういうルールで重みをつけるか」に解答はありません。いろいろ自分で考えて、試して、どこかで妥協する事になります。
    いろいろ試して結局、「単純平均が一番良い」という結果に終わるかもしれません。いろいろ試して、全然別の発見があるかもしれません。だから面白いんですよ。
    いろいろなアイディアを盛り込みながら改善を続けていると、3ヶ月もすると「片腕」に育ってきます。
    半年もすると「無くてはならない存在」になるでしょう。
    楽しみながら、頑張って下さい。

  • ありがとうございます。
    間違っているかもわかりませんが、データに新鮮度の順位をつけるという発想でしょうか。
    とにかくシンプルなところから始めて、難しそうなところは後回しでも徐々にくっつけていけば、何とかなりそうな気がしてきました。
    また発掘しに来ます。ありがとうございました。

  • たかやんさん、はじめまして。
    ブログいつも拝見してます。とても参考になります。
    列インサート問題に関しては同じように悩んだクチですので列挙体を使った対処法を参考までに。
    Enum 列の種類
    銘柄コード = 1
    銘柄名称
    現在値
    End Enum
    これで上から 1,2,3と連続した定数になるので、
    列の種類.現在値 と入力すれば3と入力したことと同じに。
    RSSなどの式をマクロで記述する際は数字を使わずに、
    Cells( row, 列の種類.現在値).Formula = “hogehoge”
    といった感じに作っていけば、
    後になって列を追加、変更、削除したくなっても、
    列挙体のところだけを変えればOKです。

  • なるほど、洗練された感じが良いですね。
    知らなかったスタイルです。
    (なので、直ちには理解できてませんが、、、)
    今度ゆっくり試してみます。
    また気が向いたら、他にも教えて下さい。
    よろしくお願いします。

  • はじめまして。
    苦い経験しかなかった株ですが、このブログを見つけてまたデイトレをやろうと思い立ちました。
    データベースやVBAは今まで使ったことはなく、0から始めてようやく数日分のデータを保存することができたんですが、そこから自分の取り出したいデータが思うように取り出せないで困っています。
    何かヒントのようなものがあれば教えてください。
    よろしくお願いします。

  • 数日分のデータがどこに保存できたのか?
    データベースにか?
    エクセルにか?
    HDDにレコードとして書き込めたのか?
    メモリ配列に記憶させたのか?
    そういう事さえわからないのに、ヒントなんて書けないですよ。
    ただまあ、最初はRDB等は使わないで、エクセル+VBAに集中して、いろいろなプログラムを書いてみる事をお勧めします。
    それでも、かなりハイレベルな事ができるようになります。
    エクセルを使わないでVB単体でアプリケーションを作成する手もありますが、これは時間を無駄にします。
    アプリケーションとして販売する目的があれば別ですが、エクセル+VBAのコンビで作成する方が、遥かに効率的です。
    例えば日足の4本値を20日分、得意にしている20銘柄程度についていろいろ計算させる事ができるようになれば、トレード補助ツールとして立派な働きをしてくれるようになるでしょう。
    東証全銘柄分の日足を10年分蓄積して、何らかの優位性発見の為の分析をするような事になってくると、さすがにRDBが不可欠になってきます。
    しかし、RDBにはデータ格納と、必要なデーターを切りだしてくる事だけに使い、データの加工・分析はエクセル+VBAで処理するようにする事をお勧めします。
    私も最初はAccess+VBAで対応したかった(なんだか格好良いような気がして)のですが、結局は挫折してしまいました。
    というか、エクセル+VBAのコンビが強力すぎたといった方が当たっているかもしれません。
    コンピューター言語の経験が無いのであれば、やはり最低でも1ケ月くらいは基本的な訓練・練習に費やす必要があると思います。
    例えばバラバラに並んだ100個の数字を、小さい順や大きい順に並べ替えるロジックを作成してみたりするのは良い練習になると思います。
    慣れてしまえば簡単な課題ですが、最初は試行錯誤の連続でしょう。でも、それが練習なんです。
    そういう練習を経て、やがてはトレードに欠かせない右腕としてエクセルを使えるようになっていきます。
    これは、結構敷居の高い事であり、簡単ではないでしょうけれども、それだけ達成できた時の見返りも大きく、頑張ってみる価値はあります。

  • 詳しいことも書かずにすいませんでした。
    保存できたのはRDB上です。
    「日付・銘柄コード・4本値」という感じにカラムを分け保存したのですが、そこから5MAなどのデータをどうやって取り出すのかわからずにいました。
    ですが、
    >RDBにはデータ格納と、必要なデーターを切りだしてくる事だけに使い、データの加工・分析はエクセル+VBAで処理するようにする事をお勧めします。
    というヒントのおかげで解決しました。
    ありがとうございました。
    20日分の数十銘柄の分析にはRDBは必要なさそうですが、別の用途としてRDBがあったら便利だなと思うことがあったのでRDBを使ってみようと思いました。

  • マイツールブログ大変に参考になりました。
    私はACCESS、EXCEL双方のプログラミングができますので、一か月ほどかけでシステムを作り上げました。
    四本値はインターネット無料ダウンロードサイトからとります。
    ACCESSのコマンドボタンクリックで3500銘柄の5日、20日、移動線、ボリンジャーバンド、出来高急騰、ボラティリティ、その他多数の指標を1分ほどで集計します。
    そして、日々データが蓄積されます。
    そして、その中で出来高急騰ボタンなど十数個のコマンドボタンをクリックすると、即一覧表示されます。また、パソコンメモリに同時に記憶され、それをkabuステーションの銘柄登録に一括貼り付けることができます。
    チャートを調べるのにとても便利です。
    また、EXCELでは、RSSで前日比、高騰率、ギャップ、年初来高値到達率、貸借倍率、信用占有率(信用残が平均出来高のどれくらい買(売)われているのか)10秒枚の急騰率、急落銘柄など全て自動化しました。たかやんさんの言われるように、これを使わないとトレード出来ないレベルになりました。
    ありがとうございます。
    =====================(以下、たかやん)
    カッコ良いですね。
    私は、コンピューター関連でサラリーマンを長くやっていたのですが、RDBに触れる機会が無いままだったので、ACCESSはデータ保存だけにしか利用できず、細かなデータ処理は全てエクセルのVBに頼らざるを得ませんでした。
    エクセルのVBでも、コマンドや処理速度に不足は無いのですが、何と言うか「安定性」に問題が有って、「ACCESSなら、そんな事は無いのだろうな~?」等と憧れてしまいます。
    でも、開発環境が何であれ、開発期間=1ヵ月だとすると、まだまだ改善・強化できるポイントは無数にあると思います。
    私は何やかやで、半年以上は毎日4時間以上VBとにらめっこしていたように記憶しています。
    キー坊さんもぜひ、更に上を目指して頑張って下さい。

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

    日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)