システムトレード開発ソフト 特徴
システムトレードの優位性
一般のトレーダーは、損切りは遅く、利益の確定は速く、という傾向ですよね。私ももちろんそうでした。そして、当然のように勝つことはできませんでした。
行動ファイナンスの理論によれば、人はトレードで損をするのが当たり前なのです。
トレードを始めてから毎日研究し実践する中で、私が最後にたどり着いたのがシステムトレードでした。買いと売りとの判断はシステムが行い、それが裁量で行うより期待値の高いトレードとなるのです。

M.trading開発の理由
現在私は日経225先物のシステムトレードを行っていますが、現システムを作るまでに、アイディアを思いついたら検証するためにシステムを作り直し、そのたびに膨大な時間と労力とがかかりました。指標を追加し、数式を変更し、検証途中で判明する追加変更によるバグを修正(指標を追加・数式を変更するのはどうしてもバグの発生の原因になるのです)し、あらためて検証し直します。検証もパラメータを手動で変更して、成績がアップしそうかどうかを調べます。もし良さそうであったら、パラメータ最適値を総当たりするプログラムを実行して、最適なパラメータを調べ、かつパラメータに堅牢さがあるかを検証します。
アイディアが有効かどうかを検証するのは、実に大変な作業でした。
この作業を効率化するには、汎用的なシステムトレードを構築できるプログラムを基礎にして、その上でアイディアを追加しやすく検証を行いやすいようにするのが良いだろうと考えました。
私がシステムを繰り返し作成し検証するなかで獲得した知識と経験とを最大限にこのM.tradingの機能に実装し、できるだけ簡単にシステムを構築することを目指しました。
M.tradingに必要な技術
- [システムトレードに対する理解]
- 必要。
- [テクニカルに対する理解]
- 使用するテクニカル指標への理解が必要
- [Excelの修得度]
- 初心者レベルで可能。
高度にM.tradingを利用するなら、中級レベルは必要
できるだけ簡単にExcelでシステムトレードを構築できるようにしていますが、ある程度システムトレードを理解しておく必要があります。また、指標を組み合わせパラメータを変更して検証するだけなら、Excelの使い方は初心者レベルで充分です。指標を新しく追加する場合や、オリジナルのアイディアをシステムに反映させる場合には、Excelの使い方をある程度習得しておく必要があります。
システムトレードがまったく初めての方のために、「M.tradingによるシステム構築の手引き」では、図入りで詳細に説明をしています。
Excelでシステムを開発するメリット

仮に、M.tradingと同等の機能のアプリケーションを作成しても、Excelの機能の豊富さにはかないません。
アイディアを形にしやすい、という大きなメリットがあります。確かに処理速度は専用のプログラムよりは遅くなりますが、Excelの関数が理解できる修得度の人なら、思いついたアイディアを数式だけで実装(機能の組み込み)でき、プログラムを組む必要がありません。
また、仮に、このM.tradingをExcelではなく、VB.net(マイクロソフトが開発したプログラミング言語)などでプログラムを構築することも考えられますが、この場合、ユーザが自分のアイディアを組み込むのは困難になります。アイディアの実装を行う際、専用のプログラムの場合はプログラムの機能の範囲内でしか行えませんが、Excelの場合はExcelの機能の限界まで利用できるのです。
関数の数式だけでなく、Excelの標準の機能としてVBA(Visual Basic for Applications)というプログラミング言語が使用できますから、これを利用すればたいていのWindowsアプリケーションと同様の機能が実現できます。M.tradingでも、このVBAを利用してシステム構築に便利な様々な機能を実現しています。

M.tradingのVBAの画面。VBAも利用したいというユーザのために、詳細にコメントしています。
買い・売り別設定可能 デイ・スイング両対応
買いのEntry、Exit(返済)、売りのEntry、Exit(返済)とにそれぞれ別の設定を行うことができます。バックテストの結果も買い・売り・合計の3種類で表示されます。
買いと売りとに分けている理由は、日本株・225先物のマーケットは明確に買いと売りとで違う傾向があるからです。このことは、かなり重要な点です。これを利用してシステムを構築することもできます。
分足や日足を利用したデイトレード用・スイングトレード用のシステムなどを、作成できます。
分足の足数と時刻は、自由に設定できます。例えば、9:00, 9:12, 9:30, 9,42, 10:00 のような変わった時刻設定で、足数が20にする、といった設定が可能です。

デイトレードなら、前場開始・前場終了前・前場終了、後場開始・後場終了前・後場終了、夕場開始・夕場終了前・夕場終了、の時刻を指定して、ギャップアップ、ギャップダウンのシステムを組めます。前場開始のように判りやすいように名前をつけていますが、M.tradingでは、特定時刻を9つ設定でき、その時刻に対して何らかの処理を行うことができるようになっている、ということです。数式を少し変更すれば、9つ以上にもちろん設定できます。
スイングトレードでも、前日の終値・翌日の初値のギャップを利用したシステムを組めます。
バックテスト

買い・売り・合計、の3つそれぞれに対して以下の事柄を算出します。
月/年ごと/トレード全体に対して
利益計・損失計・損益合計・勝ち数・負け数・取引回数・1日取引回数・PF・POR・勝率
バックテスト期間を任意に設定できます。
トレード全体に対して
標準偏差・シャープレシオ・ドローダウン期間平均値/中央値・最大ドローダウン・利益期間平均値/中央値・損失期間平均値/中央値・利益額平均値/中央値・最大利益額・損失額平均値/中央値・最大損失額
指標
| 指標 | 指標数 | 各パラメータ数 | 設定可能 パラメータ数 合計 | シグナル数 合計 |
|---|---|---|---|---|
| 特定時刻(Long) | 2 | 3 | 6 | 2 |
| 特定時刻(Short) | 2 | 3 | 6 | 2 |
| ギャップ(数値以上) | 2 | 6 | 12 | 2 |
| ギャップ(数値以下) | 2 | 6 | 12 | 2 |
| 利確・トレイリング・ロスカット(買い) | 2 | 8 | 16 | 2 |
| 利確・トレイリング・ロスカット(売り) | 2 | 8 | 16 | 2 |
| テクニカル指標 | 指標数 | 各パラメータ数 | 設定可能 パラメータ数 合計 | シグナル数 合計 |
| モメンタム | 4 | 1 | 4 | 4 |
| サイコロジカルライン | 4 | 3 | 12 | 4 |
| RCI | 4 | 3 | 12 | 10 |
| ストキャスティクス | 4 | 6 | 24 | 8 |
| スローストキャスティクス | 4 | 7 | 28 | 8 |
| 移動平均乖離率 | 4 | 3 | 12 | 4 |
| 加重乖離率 | 4 | 3 | 12 | 4 |
| ボリンジャーバンド | 2 | 2 | 4 | 6 |
| DMI | 2 | 3 | 6 | 8 |
| エンベロープ | 2 | 5 | 10 | 4 |
| HLチャネル | 4 | 2 | 8 | 12 |
| ピボットポイント | 1 | 0 | 0 | 3 |
| MACD | 4 | 3 | 12 | 12 |
| 単純移動平均 | 4 | 1 | 4 | 10 |
| 指数平滑移動平均(EMA) | 4 | 1 | 4 | 10 |
| 時系列加重平均 | 4 | 1 | 4 | 10 |
| 相関係数 | 4 | 3 | 12 | 10 |
| ドンチャンチャネルブレイクアウト | 4 | 2 | 8 | 4 |
| パラボリック | 4 | 6 | 24 | 4 |
| 一目均衡表 | 2 | 6 | 12 | 8 |
| RSI | 4 | 3 | 12 | 20 |
| ローソク足 | 2 | 22 | 44 | 55 |
| 合計 (指標+テクニカル指標) | 336 | 230 |
利確/トレインリング/損切のストップのパラメータは、最大利益(高値-ポジション)・現時点損益(終値-ポジション)・最大利益-現時点損益・現時点損益(安値-ポジション)と、それぞれのパーセント、を設定できます。
ギャップ数値以上のパラメータは、数値(あるいはパーセント)以上になったらシグナル発生。ギャップ数値以下はその逆。という設定です。
モメンタムなどのテクニカル指標は22設定されています。
使わない指標のワークシートの数式をすべて残しておくと、Excelのブックが大きくなり処理も遅くなります。このM.tradingでは、使わないテクニカル指標は最低限のセルだけ残して残りは削除する機能を備えています。使用する時に構築しなおして、ワークブックの肥大化を防ぎます。

テクニカル指標DMIのワークシート
新しく指標を追加する
指標のワークシートを追加すれば、既存の指標ワークシート同様に扱えます。
VBAのプログラムで、指標のワークシートから動的にExcelの数式、ユーザフォーム、チェックボックス、各種設定を構築できるようにしています。
既存の指標でも、使わないのならワークシートから削除しても構いません。
追加の方法は、M.tradingによるシステム構築の手引きで詳細に解説しています。
パラメータ設定

指標のパラメータ数280個。これとは別に、システム全体に対するパラメータは30個あります。
新しくパラメータを追加すれば、このパラメータ設定画面でも利用できます。
また、Excelのワークシートに直接入力もできますし、表示されるユーザフォームから入力もできます。

Excel パラメータ設定 ユーザフォーム
設定の記録

シグナルの設定・パラメータの設定を、ファイルとして保存できます。
設定の記録をファイル単位で行えるため、管理が容易です。
システムを構築する
さまざまなシグナルを組み合わせ、バランスのとれたシステムを構築してゆきます。
設定方法は2種類あります。
- システムトレード開発(.net)の画面を通して操作する方法
- ワークシートで直接設定する方法
システムトレード開発(.net)の画面を通して操作する方法

買いEntry・売りEntry・買いExit・売りExitに対し、シグナルを選択するだけで、AND・OR・Entry停止のシグナルを構築できます。詳しくは、ヘルプ:シグナルを参照して下さい。
ワークシートで直接設定する方法

もっとも基本的なシグナルの組み合わせ(AndのEntryとExit)は、チェックボックスにチェックを入れるだけです。
ワークシートで直接設定する方法:買いEntry組み合わせ例
1%以上のギャップアップ AND MACDのクロスの状態
Andの組み合わせは、パラメータの数字を入力してチェックボックスにチェックを入れるだけ、です。
1%以上のギャップアップ OR MACDのクロスの状態
どちらかの条件を満たした時(OR)の組み合わせは、それらのシグナルの[OR]に数字を入れて[OR構築]ボタンを押すと、自動で数式が構築されます。
MACDのクロスの状態 AND 1%以上のギャップアップでない
ある条件になった時には買いEntryを行わないようにするには、それらのシグナルの[Entry停止]に数字を入れて[エントリー停止構築]ボタンを押すと、自動で数式が構築されます。
シグナルを複数組み合わせるのに、数式を入力する必要はありません。
さらに、オリジナルなアイディアを反映したいのなら、手作業で数式に変更を加えることも可能です。
パラメータ最適値 総当たり

損益で色分けされた表
シグナルの組み合わせである程度良さそうなものができたら、次はパラメータ(numA,numB,numCの3つまで)の数値を総当たりして最適なパラメータの組み合わせをPCに計算させます。
また、MACDのように必ず EMA1パラメータ数字<EMA2のパラメータ数字、にする指標の場合、numA<numB の条件で実行できます。
計算させる数値の範囲と条件とを設定して実行すれば、それぞれの数値でのバックテストの結果がCSVファイルに保存されます。
保存されたCSVファイルから色分けされた表を構築でき、堅牢なパラメータの設定はどのあたりなのか一目瞭然となります。
表の見本:225先物日足を、2つのMACDで探索した表が次のサンプルに入っています。
MACDパラメータ探索結果まとめ
複数銘柄のバックテスト

[複数銘柄のバックテスト]のボタン1つで複数銘柄のバックテストが可能。
複数銘柄のバックテストを行いExcelファイルでその結果をそれぞれ保存します。
保存されたExcelファイルから、さらに統合された結果をExcelファイルで出力します。
銘柄毎の四本値が必要です。
数式・プログラムを公開
Excelの数式、VBAのプログラムは公開していますので、自由に変更可能です。
各パラメータ・数式の意味、プログラムの処理の意味、などをコメントで詳細に記述していますので、オリジナルのアイディアを反映させる際の手助けになるでしょう。
| 添付 | サイズ |
|---|---|
| macd.zip | 419.01 KB |
