2016年4月15日金曜日

MT4インジケーター: ポートフォリオのチャートを生成、Portfolio Chart

Currency Portfolioの上位版インジケーターです。ポートフォリオをチャートとして表示する機能に加えて、分析に役立つ数々の便利機能を搭載しています。

このページは主に追加機能について記載していますので、基本的なコンセプトに関してはCurrency Portfolioのページを参照してください。
兄弟ソフト: 通貨ポートフォリオ、Currency Portfolio

通貨ペアで組んだポートフォリオのチャートを表示します。
Portfolio Chartの弟分にあたるソフトです。

最適なポートフォリオを探索&分析


Portfolio Chartには、最適なポートフォリオを見つけ、そのチャートをより詳しく分析するための工夫がぎっしり詰まっています!

ポートフォリオ、時間軸を自由に切り替え

ポートフォリオはプルダウンメニュー/ボタンで、時間軸はボタンで切り替えできます。開くチャートの枚数を減らすことができるので便利です。プルダウンに表示するポートフォリオ一覧は、設定ファイルから読み込むようになっています。

FXだけでなく日経225や原油、金なども組み込み可能

Currency Portfolioではクロス円通貨ペアのみでしたが、Portfolio Chartでは組み込める銘柄に制限はありません。例えば上図チャートのような「EURUSD:2, 原油:1」といったポートフォリオが可能です。

ただし、建値通貨がそろっている必要があります。例えば、EURUSDと原油はどちらもドルが建値通貨なので組み合わせることができますが、EURUSDとAUDJPYは建値通貨が異なるので組み合わせることができません。

ポートフォリオ生成 → スクリーンショット → 最適チャート発見!

ポートフォリオを組む際には、「どの銘柄をどれだけ組み込むか」が勝負の鍵を握っています。しかし、組み合わせは無数にあるため、最適なポートフォリオを組むのは簡単ではありません。

Portfolio Chartは最適なポートフォリオを見つけるための強力な機能を搭載しています。

同梱されているスクリプトPortfolio Generatorは、ポートフォリオに組み込む銘柄やその量を変えながら、全パターンのポートフォリオを生成することができます。

書き出したポートフォリオをPortfolio Chartに読み込み、スクリーンショット機能を使うと、自動的にポートフォリオを切り替えながら、それら全てのスクリーンショットを保存することができます。

画像が保存されたフォルダをサムネイル表示すれば、様々なポートフォリオの中から最適なチャートを選ぶことができます。

ポートフォリオの分析レポート作成

レポート作成機能を使うと、設定ファイルに登録されたポートフォリオそれぞれについて、以下の項目をCSV出力することができます。
  1. スプレッド
  2. スワップ(売 / 買)
  3. ボラティリティ(期間中の最高値と最安値の差)
  4. 足の長さの平均 / 最大値 / 最小値
エクセルで読み込めば項目ごとにソートできるので、トレンドフォロー向きの動きのあるポートフォリオを探したり、逆にアービトラージ向きの安定したポートフォリオを探したりすることができます。
※ スプレッドとスワップは、お使いのブローカーや設定内容等によっては適切な値にならない場合があります。

多数のポートフォリオのチェックに便利なビューモード

多数のポートフォリオのチャートをチェックするには、上述したスクリーンショット機能も便利ですが、ビューモード機能も便利です。

スライドショーのようにチャートを自動的に切り替えてくれるので、画面を眺めているだけでチェックできます。

ヒストリカルデータの利用

Currency Portfolioでは、実行速度の観点から生成できる足の本数を5000本に制限されています。Portfolio Chartには制限がないため、MT4の最大バー数を増やすことで、5000本以上の足を生成することが可能です。

ただし、チャートの期間が長くなると表示に時間がかかってしまいます。この問題を解決するため、ヒストリカルデータを用いてあらかじめチャートデータを生成し、キャッシュしておくためのスクリプトを同梱しています。

キャッシュデータは1分足のヒストリカールデータを元に生成するため、ヒゲも全ての足で計算されています。つまり長期間のチャートを、より正確に素早く表示することができるのです。

比較表

Currency PortfolioPortfolio Chart
組み込める銘柄クロス円通貨ペアFX・CFDなど全種類
(組み合わせに条件あり)
生成できる足の本数最大5000本制限なし
時間軸切り替え
ポートフォリオ切り替え
ヒストリカルデータの利用
スクリーンショット
分析レポート作成
ビューモード
ポートフォリオ生成

ポートフォリオの書式 / 計算方法

Portfolio Chartでは、FXの通貨ペアだけでなく指数や商品のCFDなども組み込めるようにするため、ポートフォリオの書式と計算方法がが拡張されています。

書式

Currency Portfolioではクロス円のみでポートフォリオを組むため、「EUR:1, GBP:2」といった形式でした。一方、Portfolio Chartでは銘柄の制限がないため、銘柄のシンボルをフルで指定します。

また、呼び値やティックバリューが異なる銘柄同士を組み合わせるために、Multiplierで調整するようになっています。
Symbol(*Multiplier):Amount, Symbol(*Multiplier):Amount, ・・・

Symbol:ポートフォリオに組み込む銘柄
Multiplier:銘柄の価格にかける係数(呼び値の差を吸収するため、省略可)
Amount:取引量

例) EURUSD*100:2, WTI:1

計算方法

基本的な原理はCurrency Portfolioと同じですが、Multiplierが式に組み込まれています。
Portfolio Rate = (R1*M1*A1 + R2*M2*A2 + ... + Rn*Mn*An) / Divisor + Offset

R1~n:ポートフォリオに組み込む銘柄のレート
M1~n:各銘柄の係数(デフォルトは1)
A1~n:各銘柄の取引量 (買いは正、売りは負)
Divisor:各銘柄の取引量の絶対値の合計(|A1|+|A2|+ … +|An|)
Offset:レートが負にならないための補正値

使い方 : Portfolio Chart

基本的な使い方はCurrency Portfolioと同様です。
  1. 任意のチャート上でスクリプトOffline Chart Makerを実行
  2. ファイル→オフラインチャートから、作成したオフラインチャートを開く
  3. このオフラインチャート上に、Portfolio Chartをセット
ポートフォリオに組み込む通貨ペアは、MT4の通貨ペアリストに表示されている必要があります。スクリーンショット機能などはキーボードがスイッチとなっています。

体験版は少し手順が異なるので、Readmeファイルをご覧ください。

設定ファイル

以下の書式で設定ファイル(テキストファイル)にポートフォリオを追加します。

DivisorやOffset、Digits(小数点桁数)も個別に設定することが可能です。詳しくはサンプルファイルをご覧ください。

スクリプトPortfolio Generatorを用いて、設定ファイルを自動生成することもできます。
<Portfolio Name="ポートフォリオ名">ポートフォリオ</Portfolio>

例)  <Portfolio Name="Pf1">EURUSD*100:2, WTI:1</Portfolio>

パラメーター

Portfolioで設定ファイル名を指定します。設定ファイルは「ファイル→データフォルダを開く→MQL4→Files」の中の、DataDirで指定するフォルダの中に配置します。

Portfolioにポートフォリオを直接指定して起動することもできます。Portfolioを空欄にすると、エディットボックスにポートフォリオを手動入力するモードになります。

UseCacheDataをtrueにすると、キャッシュファイルがある場合はそれを利用してチャートを描画します。

スクリーンショット機能などはキーボードを押してOn/Offします。キーは~Keyで設定することができます。(日本語キーボード対応)

パラメーター名デフォルト値説明
PortfolioPortfolioList.txtポートフォリオの設定ファイル
TimeframeListM5, M15 ...時間軸のリスト(カンマ区切り)
DataDirPortfolio Chartデータを置くディレクトリ
RefreshInterval1チャート更新間隔 [秒]
NumBarsMax5000生成・利用する足の本数
UseCacheDatatrueキャッシュデータを使うかどうか
ReportKeyRレポート作成のキー
ScreenshotKeySスクリーンショットのキー
ViewKeyVビューモードのキー
PrevKey<「前へ」ボタンのキー
NextKey>「次へ」ボタンのキー
ButtonXpos5ボタンの位置(X座標)
ButtonYpos20ボタンの位置(Y座標)
ButtonFontSize10ボタンの文字の大きさ
~Colorボタンの色

使い方 : Portfolio Generator

Portfolio Generatorは以下の2つの機能を持ったスクリプトです。
  1. 指定した銘柄、取引量から全パターンのポートフォリオを生成する
  2. ヒストリカルデータを読み込み、設定ファイルに登録されたポートフォリオのキャッシュデータを作成する
1が完了した後はダイアログが出現し、続けて2を行うことも可能です。つまり、全パターンのポートフォリオを作成し、続けてそれらのキャッシュデータを作成することができます。

ポートフォリオの生成

ポートフォリオ生成式は以下の書式で記述します。
Symbol(*Multiplier):Start/End/Step, Symbol(*Multiplier):Start/End/Step, ・・・
Symbol:銘柄
Multiplier:係数(省略可)
Start:取引量の開始値
End:取引量の終了値
Step:取引量の刻み幅(末尾にzをつけると取引量0も含める)
例えば「EURUSD*100:+2/+4/2, WTI:-1/+1/1z」と記述すると、以下の6種のポートフォリオを生成します。
  1. EURUSD*100:+2, WTI:-1
  2. EURUSD*100:+2
  3. EURUSD*100:+2, WTI:+1
  4. EURUSD*100:+4, WTI:-1
  5. EURUSD*100:+4
  6. EURUSD*100:+4, WTI:+1
銘柄数や取引量の変動幅を増やすと、生成されるポートフォリオ数が掛け算式にどんどん多くなっていきます。PCの性能によっては処理に時間がかかったり、Portfolio Chartで読み込めなかったりする場合があります。

キャッシュデータの作成

スクリプトを実行する前に、[DataDir]/Historyフォルダの中にヒストリカルデータを配置しておきます。ファイル名は、USDJPY_2015.csvのようにシンボルから始まる名前がついている必要があります。History Converterと同様、分割されたファイルを読み込むことが可能です。

csv, txt, hstなど様々な形式のヒストリカルデータを読み込むことができます。書式についても、多くに対応しています。対応ファイルはHistory Converterと同じですので、お手持ちのデータを読み込めるかどうか事前に確認してください。

パラメーター

PortfolioListには設定ファイルもしくはポートフォリオ生成式を指定します。

TimeframeListにはキャッシュデータを作成する時間軸のリストを指定します。M1やM5などの短い時間軸を指定すると、生成される足の数が多くなるため、実行に時間がかかりディスク使用量も大きくなるのでご注意ください。

NameTypeはポートフォリオ名のつけ方で、短縮した名前を自動的につけたい場合に使用します。

StartTimeとEndTimeを指定することで、特定の期間のキャッシュデータを作成できます。

Unduplicateをtrueにすると、同一のポートフォリオを削除します。例えば、上記の6つのポートフォリオでは、2番目は5番目を2倍しただけで同一なので削除されます。

パラメーター名デフォルト値説明
PortfolioListPortfolioList.txtポートフォリオの設定ファイル
TimeframeListD1, W1, MN1時間軸のリスト(カンマ区切り)
DataDirPortfolio Chartデータを置くディレクトリ
SrcTimezoneNoneヒストリカルデータのタイムゾーン
DstTimezoneNoneキャッシュデータのタイムゾーン
StartTime1970/1/1開始時刻
EndTime2038/1/1終了時刻
NameTypeShort1ポートフォリオ名のつけ方
SkipWeekendBarsfalse土日の足をスキップするかどうか
Unduplicatefalse同一ポートフォリオを除去するかどうか
ダウンロード
ポートフォリオのチャートを生成、Portfolio Chart
最新バージョン: Ver 1.04 (2016.5.15)

fx-onからダウンロード
Portfolio Chart.zip (体験版、使用法はReadme参照)

8 件のコメント:

  1. お世話になります。
    こちらのインジケーターに興味があり、体験版をダウンロードさせていただきました。

    文章をいろいろと見ましたがMT4の設定がよくわからないです。

    普通のインジと同じようにMQ4→Indicatorsに入れるのでしょうか。

    その後にチャートへの反映方法もよくわからないのです。

    基本的な使い方はCurrency Portfolioと同様です。
    任意のチャート上でスクリプトOffline Chart Makerを実行

    とございますが、こちらの意味がさっぱり理解できなく困っております。

    よろしくお願いいたします。

    返信削除
    返信
    1. 体験版をダウンロードしていただき、ありがとうございます。
      こちらのソフトはCurrency Portfolioの上位版で、ほぼ同じ使い方となっております。体験版のReadmeファイルに、ファイルの配置なども含めた使い方を記載しておりますのでご覧ください。

      削除
  2. こんにちは。
    ご返事ありがとうございます。

    textに下段があるのを見落としていました。

    先ほどMT4に組み込む事ができましたが、使い方がいまいちよくわからないです。

    https://charts.mql5.com/11/92/trial-m1-trading-point-seychelles.png

    3パターン選択が出来ており、それぞれを選択する毎にチャートが変化します。

    ①まずは体験版ではこの3パターン表示で問題なかったでしょうか。
    ②このチャートをトレードにどう生かしたらよいでしょうか。

    よろしくお願いいたします。

    返信削除
    返信
    1. 体験版はその3パターンを表示するようになっています。
      使い方は通常のチャートと同様にトレードすることです。例えば「AUDJPY:1, CADJPY:1」のポートフォリオのチャートが上昇していれば、AUDJPY買い、CADJPY買いのポジションを持てば利益が出ます。下落していれば逆のポジションを持つようにします。ポートフォリオは無数にあるので、最適なチャートを選んでトレードできるのが本インジケーターの強みです。

      削除
  3. Peaky FXさま

    お世話になります。

    ご返事ありがどうございました。

    こちらのポートフォリオの意味がわかってきました。

    「AUDJPY:1, CADJPY:1」のポートフォリオのチャートが上昇していれば、AUDJPY買い、CADJPY買いということですね。
    時間足の表示によっては上昇場面もありますが、別の時間足では下降トレンドになる場合があります。この時、買いで入るか売りで入るかは別の裁量が必要ですね。

    あとこちらのパターンですが、NZDJPYは-1となっていますのでチャートが上昇していればこの通貨のみは売りという解釈でよろしかったでしょうか。
    https://charts.mql5.com/11/99/trial-m1-trading-point-seychelles.png

    返信削除
    返信
    1. 時間軸などに対する考え方も、通常のトレードと同じものを適用できます。
      「NZDJPY:-1」のようにマイナスで組み込まれているポジションに関しては、上昇で売り、下落で買いとなります。

      削除
  4. お世話になります。
    こちらのインジケーターの購入を検討しており、体験版も試用させていただきました。
    1つ質問をお願いします。

    こちらのインジケーターで作ったチャートからは直接ポジションを持つことはできないという理解でよろしいでしょうか?
    (ポジションを持つ際は組み込んだ通貨ペア毎のチャートからエントリーする)

    また、今後組み込んだ通貨ペア、取引量で直接エントリーすることができるようになると嬉しいなと思うのですが、ご検討いただければありがたいです。

    お忙しい中大変恐縮ですが、よろしくお願いいたします。

    返信削除
    返信
    1. ご質問ありがとうございます。
      お書きいただいた通り、作成したチャートから直接ポジションを持つ機能はありません。ご意見を開発の参考にさせていただきます。

      削除