この記事ではシステムトレードを行う際に知っておくべき基本的な考え方を解説します。そして我々が実際にシステムトレードを行うにはどんな選択肢があるのかを考えてみます。
私はベテランの裁量トレーダーです。これまでは完全裁量のトレードに取り組んできました。
今自分がやっていることが上手くいっているとしても、常に新しいことの挑戦する姿勢は大切だと思っています。
そこで去年から少しずつプログラミングを勉強しています。今年からは実際にシステムトレードのシステムを作り、小さな資金で実験的にシステムを稼働するところまで行きたいと思っています。
先日トレード仲間の紹介でベテランの専業システムトレーダーの方とお会いし、システムトレードのイロハについていろいろと教えていただきました。とても興味深いお話を聞けたのでこの記事にメモを残しておきます。
システムトレードとは
システムトレードとは、テクニカル指標やローソク足を組み合わせてトレードルールを作り、それに従って感情を入れずにひたすらトレードすることです。
裁量トレードの場合は「勘」もだいぶ入るのですが、システムトレードの場合は「感情」や「勘」を排除し、あらかじめ決めたトレードルールに徹底的に従います。
システムトレードというと、MT4のエキスパートアドバイザー(EA)などを使って行う自動売買をさす場合が多いですが、手動で行うのもシステムトレードになります。
ここでは、自動売買であれ手動であれ、どんな考え方でシステムトレードのトレードルールを組み立てればよいのか、その考え方について私が学んできたことを述べたいと思います。
「システムトレード」や「自動売買」で検索すると、いろんな宣伝が出てくると思います。
右肩上がりの資産曲線を見せて、「これであなたも大金持ち」といったようなセールストークで数万円、数十万円もするトレードシステムが販売されていたりします。
そのような宣伝を真に受けて「これで俺も経済的自由を手に入れられる!」なんて思ったらダメです。
もちろん、うまくいくシステムトレードも存在しますが、多くの場合、それは過度にカーブフィッティングされたシステムです。カーブフィッティングとは、過去データに対してシステムを過度に最適化し、過去データ上でのみ上手くいくシステムを作ることです。
このような過去データのバックテストだけで上手くいき、実運用では使い物にならないシステムがたくさん売られています。
また、それが仮に儲かるトレードシステムだとしても、そのルールにあなたが従い続けることができなければ意味がありません。自分でテストして納得したうえで作り上げたシステムでないと、システムトレードのルールに従い続けることは難しいのです。
ただお金を払って購入したシステムだと、ちょっと連続して損失が続くと、「このシステムおかしいじゃないか!」となって途中で投げ出してしまうのです。
実はシステムトレードは自分で組み立てることが可能です。なにも大金をはたいて他人のシステムを買う必要はありません。
このような理由から、システムトレードをやるのであれば、自分でシステムを作るのが一番だと思います。自分では作れないにしても、最低限そのシステムの内容、なぜそのシステムに優位性があるのか?とうことを心の底から納得していないといけません。
この記事を最後まで読むと、システムトレードのトレードルールを組み立てていくために必要な知識を得ることができます。高価なシステムを購入する前に、是非ご自分でシステムを作ってみてください。
システムトレードの目的は何だろう?
システムトレードのシステムの目的とはなんでしょうか。
「お金を稼ぐことに決まってるだろ!」
もちろんそうです。
しかしそれは当たり前のことで、もっと具体的な目的を持つ必要があります。
システムトレードのシステムの具体的な目的は
- トレンドの発生をなるべく早く察知すること
- ダマシになるべく引っかからないようにすること
- リスクレワード比的に利にかなった注文を出すこと
この3つの目的を達成できれば、そのシステムが勝てる可能性は高いと言えます。
ここで難しい問題点が浮上します。
それは、1番目の目的「トレンドの発生をなるべく早く察知すること」と2番目の目的「ダマシになるべく引っかからないようにすること」は互いに相反するということです。
どちらかを追い求めればもう片方が実現できない、そんな関係にあるのです。
トレンドの発生を早い段階で判断してしまうと、その分ダマシに引っかかりやすくなります。
一方、ダマシに引っかからないように十分な確認が取れてからエントリーすると、エントリーが遅れてしまいます。
トレードシステムを作るときの最大の課題の一つは、この2つの目的を、うまくバランスを取りながら調整することです。
時間軸を決める
システムトレードのルールを組み立てるあなたが最初にするのは、まず時間軸を決めることです。
デイトレードをしたいのなら5分足や15分足を使うことになるでしょう。
スイングトレードをしたいのであれば、4時間足や日足を選択することになります。
手動のシステムトレードをやるのであれば、あなたの生活のリズムを考慮してよく考えてください。
5分足を使ったデイトレードなら常にモニターの前に張り付いていることになります。
4時間足のスイングトレードなら一日に数回チャートをチェックするだけですし、日足なら1日に1回で済みます。
ミラートレーダーなどを使って完全自動売買をするならほったらかしでトレードをしてくれるので好きな時間軸を選ぶことができます。
ただ、取引コストの問題があるので、あまり頻繁に売買を繰り返すシステムは難しいということを知っておいてください。
1時間足より上のローソク足を使ったシステムトレードが無難だと筆者は思います。
トレンドの発生を判定するテクニカル指標を選択する
システムトレードの目的の一つ目は「トレンドの発生をいち早く察知する」でした。
その為に使うテクニカル指標としては、移動平均線を使うのが一般的です。
2本の移動平均線のクロスでトレンドの発生を察知するのが一番簡単な方法です。
他にもMACDやパラボリックなどトレンドの発生を察知するためのテクニカル指標はたくさんあります。
トレンドが発生したことを追加確認するテクニカル指標を選ぶ
システムトレードの目的に2つめは「ダマシになるべく引っかからないようにすること」でした。
例えば移動平均線のクロスでトレンドの発生を察知したとしても、それだけで判断するのは不十分です。
もう一つトレンドの発生を追加確認するテクニカルと組み合わせることでダマシを減らしましょう。
ストキャスティックスやRSI、ADXを使うと良いです。
RSIを使ってトレンドの判定をする方法をこちらのページで解説しています。
1回のトレードでリスクにさらす金額を決める
一回のトレードで負けてよい金額を決めます。
その金額はトレード資金の2%を超えないようにします。
10万円の資金でシステムトレードをやるなら、1回のロスカットで失えるのは最大でも2000円までです。
許容するリスクを決めることでエントリーできる枚数を決めることができます。
例えば20ピップスのロスカットでエントリーするような場面だと、2000円まで負けても良いので、1万通貨エントリーできるということになります。
1万通貨 × 20pips = 2000円
資金管理をしっかりとやることが成功のカギです。ここは徹底的に考え抜いて決めるようにして下さい。
最初はかなり保守的な資金管理をすることです。小さく始めるようにしましょう。
エントリーとエグジット
テクニカルの条件が揃った時点ですぐにエントリーするのか、それともテクニカルの条件が揃ったあとローソク足が完成するまでエントリーを待つかといった選択があります。
たとえば、1時間足の途中でテクニカルが買いシグナルを発しそうになっても、ローソク足が完成する時までに急激に反転してしまえばシグナルは無かったことになってしまいます。
長い陽線になると思いきや、大きな上ヒゲになるような状況です。
そういうこともあるので、多くの場合はローソク足が完成した瞬間にエントリーの意思決定をする場合が多いようです。
利食いに関しては指値で利食いするのか、トレイリングストップで利益を伸ばそうとするのかを決める必要があります。トレンドの強さを測るテクニカルを使い、強いトレンドが出ているときだけ利益を伸ばすといったルールにすることが多いようです。
ロスカットは、買いポジションなら直近のスイングローに置くのが一般的です。
トレードルールを紙に書き出してテストする
システムトレードのトレードルールが決まったら、それを詳細まで紙に書き出します。
自動売買をやるならそのトレードルールをプログラミングし、バックテストをします。
手動でシステムトレードをやるなら、紙に書き出したトレードルールに従いフォレックステスター2を使ったり、プリントアウトしたチャートを使って検証します。
過去のチャートを使ってつもり売買をしてみてどれ位儲かるのかをテストします。
過度のバックテストは意味無し
システムトレードで良くある間違いは、システムを過去のデータに過度に最適化してしまうことです。
これをカーブフィッティングといいます。
例えば移動平均線とRSIとADXを使うシステムだとします。
それぞれのテクニカルの本数設定の組み合わせは無数にあります。
その設定の組み合わせを片っ端からテストして一番儲かる設定を探そうとするようなことです。そのようなことは将来の期待値を測るうえで全く意味がありません。
それよりも、標準設定の組み合わせでテストしてみて、あまり成績が良くないならそのトレードルールはばっさり捨てて、深追いしない方が良いです。
ごく一部の設定の組み合わせでしか儲からないシステムトレードなど価値がありません。
標準の設定では儲からないシステムの設定をいじくりまわし、めちゃくちゃ儲かる奇跡の組み合わせを見つけたところで、そんなシステムだと始めた途端に損失が続きます。
自分のトレードアイデアを一般的な本数設定でざっくりとテストして良さそうならやる、ダメならバッサリと切り捨てる必要があります。
デモ口座でテスト運用する
システムトレードのトレードルールを作り、バックテストを行い儲かりそうであることを確認しました。
それでもまだリアルマネー講座でトレードしてはいけません。
少なくとも1~2か月ぐらいはデモ口座でテスト運用してください。
過去データではテストしきれていなかった問題点が浮かび上がってくるかもしれません。
実際のお金を失うことなく低レベルな問題点を解決しておくことが重要です。
リアルマネー講座でロットを抑えてテスト運用
デモ口座のテスト運用をクリアすれば、次はリアルマネー口座で実際のお金を使って、しかしロットを抑えて運用してみます。この時は出来る限り少ないロット数で運用します。
デモ口座とリアルマネー口座のスプレッドや約定価格のズレがどの程度あるのか、その辺りは実際にやってみないとわかりません。
この段階をクリアすると、後は徐々にロット数を上げて本運用にシフトしていけばよいです。
自動売買はどこでできるか?
自動売買は楽そうなイメージや面白そうなイメージがあるので、やってみたい人は多いと思います。
私は今のところ裁量トレードが上手くいっているので、純粋なシステムトレーダーになるつもりは毛頭ありませんが、資金の一部で少しずつシステムトレードの経験を積んでおきたいと思っています。
一旦システムを動かし始めたらそれほど手間はかからないでしょうから本業の裁量トレードへの悪影響はないだろとおもいます。また、自分が良いと思うシステムをいくつか組み合わせて運用するのは、賭け事として純粋に楽しいだろうなと思うからです。
私がお話を聞いたシステムトレーダーの方によると、自動売買で成功する鍵のひとつは、取引コストを低く抑えることだそうです。
ミラートレーダーは手軽に実践できるので人気だそうですが、スプレッドが3~4銭ということで、取引コストが若干高い印象があります。それでも、4時間足など長めの時間軸のトレードなら問題なさそうです。
FXCMジャパン証券
のMT4、カブドットコムのシストレFXなどは自動売買でも取引コストが安そうなので、私の中では候補に挙がっています。
私にシステムトレードの話をしてくださった方は、インタラクティブブローカーズのAPIをVBというプログラム言語でいじくりまわしてシステムを組んでいるそうです。
ただ、Interactivebrokersは25万通貨程度以上の取引でないと取引コストが高くつくので、小さくやりたい人には向いていません。私の場合、まずはテスト運用をしたいので25万通貨は大きすぎます。
プログラムが組めて英語が苦手でない人はNinjaTraderをインタラクティブブローカーズにつなぐか、Multichartをインタラクティブブローカーズに繋いでシステムトレードをする方法もあります。
MultichartsはInteractiveBrokersだけでなく、FXCM、OANDA、Ducascopyにも接続できるようです。
Multichartsで採用されいるEasyLanguageというプログラム言語は非常に簡単な言語なので、プログラミング初心者にはとっつきやすいと思います。ただ、日本ではあまり普及していないようなので、情報収集が難しいでしょう。
プログラミング上級者はAPIを公開しているFX業者のAPIに繋いで独自のシステムを作るのが面白いと思います。
JavaやC#でシステムを組むわけですが、TwitterのAPIを使ってツイッターでの人々のつぶやきを分析したり、スクレイピングという技術を使ってヤフーファイナンスや2chへの書き込みを分析し、相場のセンチメントを読み取ってトレードに活かすなんてこともできるかもしれません。そこに優位性があるかは別の話ですが…
FXCMジャパン証券
はForexConnect API、JAVA API、FIX APIの3種類を用意していて、すべて使用料は無料です。
このうちFIX APIは高速なのでHFTにも対応しているとのことです。(250万円以上の口座残高を維持することが条件)
OANDA、サクソバンク、DucascopyもFXCMと同じようなAPIを提供しています。
システムトレードを実践するには学ぶべきことがたくさんありますが、少しずつ準備を進めてみようと思います。
出来合いのシステムを組み合わせるだけのミラートレーダーでとりあえずやってみるか!という誘惑もあります…