私が株のデイトレをやろうと思った最初の頃に、
と出会いました。
その中で、
「取引のためのシステム的なアプローチを手にした時点で、
すでに競争相手よりも数光年も先んじているのである。」
という記述が強く印象に残りました。
【デイトレのシステムを開発するきっかけ】
株で勝ち残る為には、何らかの「優位性」を手にする事が必要と感じていた私にとって、神の啓示にも等しいと言うか、背中を押された気がしました。
ラリーは、必ずしもコンピューターのプログラムによる「システム」を言っている訳ではないのですが、プログラミングに抵抗の無い私は、わき目もふらず、自分のシステム作りに没頭しました。
この経験は、私のトレード生活の初期を飾る(?)エピソードであり、成功と失敗と教訓を私にもたらしました。
ご参考になる事もあるかもしれませんので、この「マイ・システム」について書いてみようと思います。
ただ、誤解しないで頂きたいのは、これはシステムの「お手本」なんかじゃ無いと言う事です。
株のド・シロートが、何にも知らないまま作業した記録に過ぎません。
でも、その後「マイ・システム」を作っているトレーダー数人と情報交換したところでは、
「みんな、似たようなアプローチしてるんだな」
と感じたので、「ご参考」程度にはなるかもしれません。
【データベースの準備】
「株についてプログラムで分析するなら、まず分析する為のデータを用意する必要があります。
有料のものならいろいろあるのでしょうが、私は無料で手に入れました。
当時見つかったのは、
「無尽蔵」(現在(2020年冬)は、存在していないようです。)
「株価情報」(2012/11/14の時点ではリンク切れ)の2つでした。
今ではもっと良いのがあるのかも知れません。
好みで結構ですが、そう安易に取り替える事もできないので、よく探しよく選んで下さい。
無料で得られるのは日足データ(始値、高値、安値、終値、出来高)だけでしたが、特に不足は感じませんでした。
5年分のデータを、ただでもらえるんですからね。
「株価情報」を主に使い、たまにこれが調子悪い(たまには一時的にサービスがストップする事もあります。無料ですから、文句はいえません。)時は、無尽蔵を利用しました。
殆ど同じ内容ですが、若干仕様が違いますから、簡単な手直しは必要です。
もう一つ、ヤフー・ファイナンスのサイトから、米株の指数のデータも入手しました。
勿論無料です。
ダウでもNASDAQでもSP500でも、どれでも構いません。 (前日終値より上で引けたか、下で引けたかだけを見るので、大雑把でいいのです。殆どの場合、この3つの指数は一緒に上がり、一緒に下がります。特に動きが大きい時は。 私はダウとSP500を両方使っていましたが、その後ダウだけにしました。)
日本株は、米株の結果やトレンドに大きな影響を受けますから、分析要素として必要だと思いました。
全く駆け出しのド・シロウトですが、それくらいは分かってたんですね。
データの保存先はMSのアクセスにしました。
別に深い理由はありません。
私のパソコンに入っていたので、そのまま使う事にしました。
データベースソフトはSQLでもオラクルでも、何でもかまいません。
単に日足データを大量に蓄積する必要があるだけで、RDBの機能は殆ど使わないので、何でもいい訳です。
もっと安いRDBが入手可能なら、それを使って下さい。
ただ、100万レコードなんてすぐに突破しますから、エクセル等では無理です。
アクセスに「株価情報」のフォーマットに合せたテーブルを用意(作業時間15分ほど)したら、どんどんデータをダウンロードし、アクセスに読み込ませていきます。
1日単位でしかダウンロードできませんから、年200営業日として、5年分で1000回ダウンロードしなければなりません。
大変といえば大変ですが、それでも午前中に始めて、その日の夜8時ごろには終わったような記憶があります。
それより大変だったのは、特定の銘柄のデータをすぐ抽出できるように、株価データごとのクエリを作成する事。
東証一部と二部の全銘柄(当時)について作成しました。
一部だけでも1400銘柄以上ありますから、1件の登録に30秒しかかからないとしても、700分、12時間も掛かる計算になります。
でも、これが終わらないと分析に進めませんから、やりました。
それに、この作業は1回必要なだけで、繰り返す必要はありませんからね。
全部で3日ほどかけて、分析用の元データが完成しました。
【データの分析】
データはアクセスに蓄積しましたが、分析はエクセルと、エクセルVBで行う事にしました。
一応アクセスの参考書を買って読みましたが、エクセルの方が柔軟かつ簡単にプログラムできると判断しました。
もし、アクセスのプログラミングに慣れている方なら、アクセスで直接分析した方が良いのかも知れません。
が、私にはどっちが良いかはわかりません。
分析するのは単純な事です。
例えば、
前日終値より高く寄付いて、始値で買い、終値で仕切ればどうなるか?
2日連続で下げた株を、始値で買い、終値で仕切ればどうなるか?
とか、複雑なものでも、
前々日高値を前日高値が上回ったが、終値では下げ、出来高も前々日より減少した場合、始値で買い、終値で仕切ればどうなるか?
といった具合です。
あまり複雑にすると、それに一致するサンプルの数が少なくなり、実戦に使う事ができません。
だいたい50パターンくらいの組合せを用意し、さらに前日の米株の結果を加味して100パターンとなります。
この、それぞれの結果を銘柄単位で、5年分とか1年分とか、期間を変えて検証していくのです。
それぞれの要素の重みを少しづつ変えては収益を算出し、結果を比較して、要素毎の最適な重みを計算していきます。
また、要素はグルーピングして判定した方が成績が良くなる場合があるので、グルーピングのさせ方や、グループ同士の重み、要素とグループの相関関係の強さ等もパラメーターを無数に変化させて計算させるので、個々は単純な計算ですが、その量は膨大なものとなり、パソコン1台では24時間でも1回の計算が終わらないという事態が起こってきます。その為、期間や銘柄数、要素数等を制限して10時間以内に1回の計算が終わるように調整するなど、演算の手順を正確に記述しようとすれば「本」になってしまう計算を、連日、ほぼ休みなし(=パソコン)で繰り返していました。
1銘柄1シート、だいたい50~100銘柄のエクセルブックを用意し、銘柄毎に100パターンの結果を計算し、集計していきます。
あまり多くの銘柄を一度にやろうとすると、ある所でエクセルのリソースが不足し、動作が不安定になって使えなくなります。
この加減は、試行錯誤しかありません。
エクセルブック1冊に収納できる銘柄数は限定されるので、複数に分散させる事になります。
1冊の集計を終えるのに、長ければ数時間を要します。
集計の期間や、パソコンの能力も大きく影響します。
プログラムによる検証は、Aというブックが済めばBへ、Bが済めばCへ、とリレー式に連続して行わせる事が可能です。
私のパソコンを何度徹夜させたかわかりません。
曜日の特性(例えば、木曜日に上がる(下がる)傾向は無いかとか)や、利確、損切などの最適水準についても、分析しました。
こうした作業を2ヶ月くらい続けたところで、ようやくシステムの試運転、つまり試しトレードを始められるようになりました。
画像は、分析で見つけた約50銘柄について、毎日、サインがでたもの(最大7銘柄)を1銘柄100万円で売買した場合の、過去5年間の利益曲線です。
平均すると毎日3銘柄弱の売買で、5年で8000万円の利益が出ています。
悪くはありませんが、実戦での保証は何もありません。
【システムトレード 試運転(1)】
損益曲線を見る限り、ちょっと魅力的だと思いますよね。
特定の値動きや出来高の変動パターンに対して、少なくとも70%以上の確率で、「上がる(又は下がる)」傾向を持つ銘柄が60弱見つかりました。
いくら勝率が高くても、サンプル数が少なすぎるのでは、「偶然」の可能性がぬぐえません。
しかし少ないとはいえ、例えば18勝2敗なら、何らかの統計的優位性が有ると理解するのが自然です。
あまり銘柄を限定すると、「開店休業」の日が増えすぎるので、50銘柄を対象とする事に決めました。
約2000銘柄からの50銘柄ですから、100社に3社弱の割合になります。
なぜか、300円以下の低位株ばかりが揃いました。(選別は100%コンピューターに任せました。)
100円以下のも少なくありません。
勝率の高いものを優先して、1日最大7銘柄まで売買してみる事にしました。
(実際に始めると、プレッシャーがあまりに大きく、多くても5銘柄しか出来ませんでした)
50パターンのいずれかで高確率を示す銘柄を選んである訳ですが、時々2又は3個のパターンに同時にヒットする銘柄があります。
これは勿論、優先度が上がります。
試運転という事もあり、1銘柄への投下金額は150万円以下にする事にしました。
75円の株なら2万株、100円の株なら1万株か1万5千株、300円なら、5000株といった具合です。
朝7時には起きて、米株が前日より上がったか、下がったかにより、当日売買する可能性のある銘柄を抽出します。
その為のエクセル&マクロは、既に用意していました。
米株が上昇して引けている場合、私には「売り専門」の日となります。
候補銘柄が前日終値より上の値で寄付いたら、「売り」です。 候補銘柄が前日終値より下の値で寄付いたら、見送りです。
米株が下落して引けている場合、私には「買い専門」の日となります。
候補銘柄が前日終値より上の値で寄付いたら、見送りです。
候補銘柄が前日終値より下の値で寄付いたら、「買い」です。
この売買ルールは、私が恣意的に決めたのではありません。
分析結果が、きれいにこういうルールを決めてくれたのです。
何か理由があって決めたのではなく、これは「演算の結果」なのです。
強いて理由を考えてみると、 「米株が上昇して終わる」–>「みんな、今日は上がりそうと考える」–>「高値で始まる」 –>「期待感に需給の実体が伴わず下落する」 といったところでしょうか?
米株が下落して始まった場合は、上記の逆となるのですが、売買候補銘柄の数は、なぜかがっくり少なくなります。
その理由として、「マーケットには「買いたい」と思っている人に比べ「売りたい」と思っている人は、ずっと少数派である」が考えられます。
この推理が当たっているかどうかは別として、少なくとも 「売りから入る事に抵抗感を持っているようでは、勝負にならない」 と言う事を学びました。
この学びは、以後確信へと変わって行きます。
【システムトレード 試運転(2)】
売買候補銘柄が10あっても、10銘柄売買できる訳ではありません。
寄付の価格いかんで、参戦できるかどうかが決まるのです。
例えば米株が上がって、「売り」の日と決まった場合、候補銘柄で、前日終値より高く寄付いたものだけが、 「売る」事が出来ます。
そうでないものは、見送り決定です。
また、「寄付」の価格でエントリーする事が前提になります。
もたもたしていると、すぐ下がり始め、もうエントリーできなくなります。
システムのルールの外側に行ってしまったからです。
逆に上がり始めたのに、まだエントリーできていなければ「ラッキー」なのでしょうが、本当にそこで入っていいのかどうか、システムのルール外(未検証)なので、迷ってしまいます。
ですから、できるだけ「寄付」の最初の売買で、自分の売買もいっしょに約定されるように、努力しました。
分析の結果、利確、損切の水準を決めず、「寄付」で入り、「大引」で出る事にしました。
勿論、利益が最大になる利確水準や、損失が最小になる「損切」水準についての分析は、執拗に行っていました。
しかし、チョコチョコ動くより、じっと最後までホールドするのが、長期的には利益が最大になると、分析結果は示していました。
これも偶然なのかもしれませんが、「相場で儲ける法」でラリーも彼のデイトレについて、「深い損切と、「大引けまで持つ」という哲学に従っている」と書いてあります。
分析結果に従う事にしました。
このルールで、とにかく1ヶ月、売買してみました。
最終損益は、56万円のプラス!!
この金額は一生忘れられません。
いくつもエントリーに失敗したり、何度も「大引けまで持つ」に違反したのに、この利益は予想外でした。
その後、私は、どうしたと思います?
信じられない行動をしてしまいます。
【システム開発の結果】
「予想外の利益」を上げられたにもかかわらず、私はシステムに従う事をたった1ヶ月の試用運転だけで止めてしまいました。
信じられませんよね?
でも、私本人には、そうせざるを得ない、切羽詰った状況があったのです。
最大の理由は、
「エントリーする時、そしてポジションを持っている時のプレッシャー」
に押しつぶされてしまった事があげられると思います。
私のシステムは「売りの日」か「買いの日」しかありませんでした。
「買いの日」なら、全部買いですから、指数が大幅ダウンの日なんかは、全敗 となります。
投下資金総額が800万円として、5%負けるだけで、40万円の損失となります。
実際にはマイナス25万円が1日の最大損失でしたが、これでも正直「耐えられない!」と思いました。
たった1ヶ月で終わってしまいました。
私は、本当に初心者、ド・シロートだったので、こんなに辛く苦しいデイトレじゃなくて、もっと気楽に、安心して行えるデイトレも、もっと勉強すれば見つかるに違いないと考えてしまったのです。
当時、「負ける事があるのも当然」と言う認識は全くありませんでした。
「絶対負けたくない」という思いが、非常に強かったのです。
今なら、
「なんと馬鹿な事を」
と思いますが、ド・シロートって、そんなものなんです。
【この経験から学んだ事】
当ブログで繰り返し述べてきた通り、人間の本能は、デイトレでは損大利小の傾向を強く持っています。
なので、
「利益を得よう!」
とか、
「負けトレードは回避しよう。」
などと本能の指向するままにデイトレを繰り返せば、普通は負ける事になっています。
その点で、統計的根拠に裏付けされたシステムトレードに従ってデイトレする事には、大きな意味(優位性)があります。
ところが超初心者であった当時の私には、想像を絶する大きな落とし穴が待ち構えていました。
その落とし穴とは、やっぱり人間の本能です。
仮にシステムトレードが80%もの高い勝率を叩き出す結果を試運転で出していたとしても、実戦でエントリーやエグジットの注文を出すのが人間である限りは、よほどシステムトレードの運用について正しい知識と度胸を持ち合わせた人でない限り、システムの性能をプラス収支に結び付けるのは、非常に困難であるという事です。
今だから言えますが、「安心して行えるデイトレ」と言うのは、絶対にありません。
どれだけテクニカル分析に長けていても、勝率の高いシステムを持っていても、常に自分の心に打ち勝っていくという努力を怠る事は許されないのです。
どこで読んだか本の名前は思い出せませんが、
「実行する事が難しい、心理的に抵抗のあるシステムは、利益の出るシステムである可能性が高い」
という記述がありました。
でも当時は、そんな事は夢にも思いませんでした。
56万円のプラスは、ビギナーズラックではなかったか?
という疑念は払拭できません。
その後、このシステムはどんどん複雑化し(例えば、「10日移動平均の上の時だけ、買う」とか)ていったので、同様の条件での検証をしていないからです。
ただ、その後11ヶ月連敗という結果が残りました。
最初の利益はすぐ無くなり、大きな損失を実現してしまいました。
今思えば、最初の月だけ、曲がりなりにも「システム・トレーダー」として「狼組」に属し、その後の11ヶ月間は「ブタ組」で、不和雷同に終始していたのです。
-
[教訓]
- 勝利の為の行為は、苦しく、実行・継続が困難なものである。
- 敗北の為の行為は、易しく、快適なものである。結果以外は。
- デイトレのルールは、シンプルでなければならない。
- 複雑なほど高尚で、レベルが高いように思うのは、ド・シロートの幻想にすぎない。
私は自分の無知の為に、時間とお金と労力を無駄にしてしまいましたが、だからと言ってシステムトレードがダメと結論すべき点など少しも有りません。
システムトレードでトレードするなら、単にシステムの性能の良し悪しに注目するだけではなく、運用を担う自分の心が、システムの性能と同等以上に重要である事を理解している必要があるという事です。
例えば、発生する可能性のある損失額に心が耐えられないのであれば、システムをいじるのではなく、取るリスクを少なくするべきだったのです。
システムトレードで、システムの中身に安易に手を突っ込むというのは、システムトレードでやってはいけない事の一丁目一番地である事をお忘れなく。
最後までお読み頂きまして、ありがとうございました。