M.trading チャートシステム

M.trading システム(Excel)に対応しました。(2012-05-01)

M.trading Chart

  • バックテストで算出した指標を、チャートにします。
  • チャート描画は、Excelの機能を利用します。
  • ボタン一つで指定した日付から描画します。
  • ワークシート[g1] [g2] [g3] [g4] [g5]にあるチャートを区別して扱います。
  • 選択した日時のデータを数値で表示できます。
  • 2つの日時のデータを数値で比較できます。
  • 表示できるチャートの数は、Excelの機能の限界までです。
  • VBAのプログラムは、データ更新、データソースの変更などを行いやすくするものです。
  • チャート用のデータは、M.trading システムトレード開発(Excel)などで算出したものを利用します。
  • 開発したオリジナルの指標のデータもチャートにすることが出来ます。

動作条件など

Version 3.0
Excel 2010 + Windows XP, VISTA, 7で開発・確認しています。

スクリーンショット

複数チャート
1つのワークシートに複数のチャートを表示できます。

g1 g3ウインドウ
ワークシート[g1] [g2] [g3] [g4] [g5]には、違う行番号からのデータを表示できます。

ワークシート

g1, g2, g3, g4, g5
チャートを配置するワークシート。gは、グラフの略です。
[設定][描画]で行うデータソースの変更は、表示しているワークシート[g1] [g2]・・・上のチャートに対して行われます。
設定
主要な設定と、コントロールボタンがあります。

設定

設定

設定フォームを表示
設定フォームを表示します。
自動で設定フォームを表示する。
チェックすると、ワークシート[g1] [g2] [g3] [g4] [g5]を表示したときに、設定フォームを表示します。
クリックしてデータ欄を表示する。
チェックすると、マスターのチャート上のデータ系列をクリックした時に、データを表示します。

S2

20120502fig2.png

ワークシート名
A列には、Mtrading.xlsbのワークシート名を記載します。
C列D列
テクニカル名とその列を2列に渡って記載します。
C1セルには、ワークシート名を記載します。
以下同様にします。

チャートの軸・大きさ

設定

チャート名・第2軸を主軸と同じにしない場合TRUEにする
チャート名(グラフ名)を指定しTRUEとしておくと、そのチャートの第2軸を、主軸に合わせた最大値・最小値としません。
第2軸の最小値・最大値を自動にしておいたり、あるいは固定で数値を独自に設定する場合に利用します。
主軸をマスターチャートの主軸と同じにする場合は、TRUEにする
主軸をマスターチャートの主軸の最大値・最小値と同じにします。
常にマスターチャートに重ねる場合は、TRUEにする
マスターチャートの高さ・幅・上端・左端に常に合わせます。

設定欄

設定

データ元ワークブック
貼り付け元のデータのあるファイル名を設定します。
例えばMtrading.xlsbで各種指標のデータを算出しておき、そのデータを貼り付けることになります。
ファイルの拡張子には、.xls, xlsm, xlsb等があるのに注意して下さい。
[データ貼付]を行う時には、このファイルも開いておきます。

DataForm書式

設定

DataFormColor
テーブルで色分けする背景色を指定します。htmlのスタイルシートと同じ方法を利用します。
#CCFFFF や、yellow など。
DataFormFontSize
文字の大きさを指定します。htmlのスタイルシートと同じ方法を利用します。
9pt や、1emや、12px など。
DataFormFontName
フォント名を指定します。htmlのスタイルシートと同じ方法を利用します。
MS Pゴシック や、メイリオ など。
四捨五入桁数
四捨五入を行う桁数を指定します。ExcelのRound関数と桁指定と同じです。
2は、小数点第2位に四捨五入します
0は、数値は最も近い整数に四捨五入されます。
DataForm幅
ユーザフォームの幅を指定します。

縦棒書式

設定

2つの図の書式が、縦棒にそのまま利用されます。直接、ここの2つの図を変更します。

パラメータ

現時点では利用していません。

設定

Para1~Para10まで10個のパラメータを数式で利用できます。
ここでは、

Para1,Para2
ワークシート[DataB]の、LA列~LB列の[移動平均(動的)] [移動平均2(動的)]
Para3~Para8
ワークシート[DataC]の、LA列~LE列の[基準線] [転換線] [先行スパン1] [先行スパン2] [遅行線]

に利用しています。

描画

設定フォーム:描画

日付
日付を入力します。ワークシート[g1] [g2]・・・毎に設定が保存されます。
今日
今日と同じ日付の開始行番号が検索されます。
日付用の ▲▼
日付を1日ずつ変更し、その日付の開始行番号が検索されます。
検索
ワークシート[A]のE列を検索して、同じ日付の最初の行番号が、開始行番号に入力されます。
開始行番号
描画するデータソースの開始行番号になります。ワークシート[g1] [g2]・・・毎に設定が保存されます。
描画行数
描画するデータソースの行数になります。ワークシート[g1] [g2]・・・毎に設定が保存されます。
開始行番号用の ▲▼
開始行番号を1ずつ変更します。
描画
  • 表示しているワークシート[g1] [g2] [g3] [g4] [g5]上のチャートのデータソースを開始行番号から描画行数分に変更します。
  • グラフ名[chartAmaster]のチャートのサイズに合わせて、[chartA1] [chartA2]・・・
    グラフ名[chartBmaster]のチャートのサイズに合わせて、[chartB1] [chartB2]・・・
    グラフ名[chartCmaster]のチャートのサイズに合わせて、[chartC1] [chartC2]・・・
    グラフ名[chartDmaster]のチャートのサイズに合わせて、[chartD1] [chartD2]・・・
    グラフ名[chartEmaster]のチャートのサイズに合わせて、[chartE1] [chartE2]・・・
    などのチャートのサイズを変更します。
  • チャートに第2軸があれば、第2軸の最大値・最小値を主軸の数値に変更します。

追加

20120502fig1.png

追加テクニカル
選択しているチャート上に、指定したテクニカルのデータソースを追加します。

チャート名分類・データ範囲 設定

選択しているグラフに対して、2つの処理を行います。

グラフ名を変更

[chartAmaster] [chartBmaster] [chartCmaster] [chartDmaster] [chartEmaster]以外の、選択しているチャートを、A, B, C, D, Eの指定した分類の名前(グラフ名)に変更します。
例えば、グラフ名[chartA1]は、A分類になります。
最後の数字は任意でつけられます。

データ範囲の変更

グラフデータの範囲を、[DataA] [DataB] [DataC] [DataD] [DataE]に変更します。
例えば、他のワークブック・ワークシートにあるグラフをコピーして貼り付けると、そのグラフのデータ範囲は元のワークブック・ワークシートのデータ範囲を参照しています。[MtradingChart.xlsb]DataE! のような文字列が利用されています。[MtradingChart.xlsb]を削除し、DataEの部分を、指定したDataA, DataB, DataC, DataD, DataEのいずれかに変更します。この場合、元のワークシート名は、DataAのように、Data(英数字1字)でなければなりません。

幅・高さ

幅・高さ

チェックすると、[描画]を行う時に、マスターのチャートの高さ・幅・上端・左端に、他のグラフを合わせる処理を行います。ただし、表示していないチャートに対しては、処理を行いません。

オブジェクトの選択と表示

グラフツール>書式>オブジェクトの選択と表示から、チャートの表示を制御できます。あるチャートはマスターチャートに合わせて、あるチャートはサイズを変更したくない時など、に利用できます。

パラメータ

幅・高さ

Para1~Para10までのパラメータの数値を変更できます。
計算方法が自動になっている場合は、数値を変更するとグラフも同時に変わります。
手動になっている場合は、数値を変更後、[再計算実行]をすると、グラフも変わります。

Data表示

Data表示

マスターのチャート上のデータ系列をクリックすると、その軸上のデータを表示します。
ワークブックを開いた後、別のワークシートを一端表示して下さい。例えば、開いた直後ワークシート[g1]が表示されていたら、ワークシート[g2]を表示してからワークシート[g1]を再度表示します。これで、データ系列をクリックする処理が有効になります。

  • [chartAmaster]は、 [DataA]のデータ
  • [chartBmaster]は、 [DataB]のデータ
  • [chartCmaster]は、 [DataC]のデータ
  • [chartDmaster]は、 [DataD]のデータ
  • [chartEmaster]は、 [DataE]のデータ

を表示します。

← →
第1縦棒・第2縦棒を移動させます。
第1縦
青色の縦棒を表示します。
第2縦
赤色の縦棒を表示します。
比較
第1縦棒と第2縦棒とのあるワークシート[DataA] [DataB]・・・の行のデータを比較し、差と、差÷第1のデータ(%)とを表示します。
遷移
別のワークシート[g1] [g2] [g3] [g4] [g5]に移動した時に、それぞれのワークシートで表示していたデータを自動的に表示します。

マスターのチャート

マスターのチャートは、

  • グラフの高さ・幅の基準
  • グラフの上端・左端の基準
  • チャートの線をクリックした際のデータ表示

に利用されます。

  • [g1]に、[chartAmaster]
  • [g2]に、[chartBmaster]
  • [g3]に、[chartCmaster]
  • [g4]に、[chartDmaster]
  • [g5]に、[chartEmaster]

マスターのチャートがあります。これらのグラフは、消去しないようにして下さい。

グラフのテンプレート

グラフのテンプレート

グラフの書式などは、Excelの機能である、グラフ テンプレートとして保存します。

一目均衡表の雲を描画する方法

雲
これら2つのグラフを重ねます。

雲の描画

Excel 2007の機能を最大限利用した方法です。

雲を表示するには、Excelのグラフの種類の変更>面>積み上げ面を利用します。しかし、積み上げ面と、グラフの種類の変更>株価>株価チャートとは、同じチャートに描画することができません。(ローソク足を、Excelの機能では無い方法で描画する方法もありますが、データ量が増えるのでここでは利用しない方法を考えます。)

雲を描画したグラフの上に、ローソク足を描画した別のグラフを重ね合わせます。ローソク足を描画したグラフの、グラフエリアの書式設定>塗りつぶし>塗りつぶしなしを選択すると、下にあるグラフも見えます。

正確に重ねるために、下のグラフを、

  • [常にマスターチャートに重ねる場合は、TRUEにする]でTRUEにし、マスターチャートに常に重ねます。
  • [主軸をマスターチャートの主軸と同じにする場合は、TRUEにする]でTRUEにし、主軸も一致させます。

設定

例では、[chartC2]が、雲を描画したグラフです。従って、ワークシート[設定]で、このような設定にしてあります。
また、下にある[chartC2]のグラフの主軸を消さずに表示しておいて、上にあるグラフとずれた場合すぐに判るようにしてあります。

積み上げグラフを利用した雲の描画

  • 雲は、ワークシート[DataC]のLG,LH列の[雲厚] [雲下限]をデータ範囲にしています。
  • [雲厚]は、[先行スパン1][先行スパン2]との差の絶対値です。
    LG2のセルの数式は、

    =IFERROR(ABS(LD2-LE2),"")

    絶対値は、ABS([先行スパン1] - [先行スパン2])
    IFERRORは、計算にエラーが発生した場合、""を返すようにしています。

  • [雲下限]は、[先行スパン1][先行スパン2]とのうちの小さい方です。
    LH2のセルの数式は、

    =MIN(LD2:LE2)

    最小値は、MIN([先行スパン1]のセル~[先行スパン2]のセル範囲)
    となります。

  • [雲下限]は、塗りつぶしなしか白にして、[雲厚]には色をつけます。

データ表示のユーザフォーム

VBE(Visual Basic Editor)の画面を開きます。

リボン

開発タブ(リボンに開発タブが無い場合は、Excelのオプション>基本設定から表示します)から、Visual Basic Editorをクリックします。

プロパティ:高さ設定

フォームの高さの変更

  • DataForm
  • WebBrowserDataForm

の両方のHightを変更します。

トラブルシューティング

描画に失敗しました、というエラーが発生する
[描画]をする前に、ウインドウをスクロールしてそのワークシート上にある全てのグラフを画面上に一度表示するようにして下さい。エラーが発生しなくなります。
チャートのデータ系列をクリックして、縦棒・データ欄を表示しようとした時に、Excelが強制終了する
クリックする前に、ウインドウをスクロールしてそのワークシート上にある全てのグラフを画面上に一度表示するようにして下さい。

履歴

  • 2012-05-01 Ver 3.0 公開。
  • 2010-01-28 Ver 0.26 公開。横軸の日付・時刻の変更を容易にできるようデータの配置を変更しました。
  • 2009-04-01 Ver 0.25 公開。2つの縦棒による選択中のデータ位置の表示、データ欄での数値の比較、DataForm書式、パラメータ、サンプルに一目均衡表の描画などの機能の追加。グラフの位置・軸の設定機能の拡充。
  • 2009-03-18 Ver 0.15 公開。[g4] [g5]の2つのワークシートでもグラフを表示できるように拡充。データ範囲の設定の機能を追加。幅・高さの設定を追加。その他各種機能の追加改善。
  • 2009-03-09 制限を削除。トラブルシューティングを追加
  • 2009-03-07 Ver 0.9 公開