MetaTrader 4用のシンボル合成チャートインジケーターは、トライアングルヘッジ (MT5用のシンボル合成ツール)と同様のコンセプトですが、こちらはMT4でのチャート表示に特化しています。
Market Watchウィンドウにソースシンボルがあれば、任意のシンボルを合成し、リアルタイムのオフラインチャートを生成します。これは、Period_Converter_Opt.mq4(https://www.mql5.com/en/code/7673)をベースにしています。
基本的な使い方はPeriod_Converter_Optに似ています。
パラメーター設定の違いは次の通りです:
- extern int spread = 0;
このスプレッドはsSym01(チャートに添付されたシンボル)のポイント数です。0は現在の値を意味します。
MetaTrader 4の履歴ファイルには過去のスプレッドデータが含まれていないため、仮想価格を計算する際にAsk価格を決定するために必要です。
- extern int vDigits = 5;
合成シンボルの桁数を指定します。これはPeriod_Converter_Opt.mq4のOmitDigitに置き換えられます。
- extern string vSymbol ="EURUSD_v";
生成したいシンボルです。名前は任意ですが、11文字以内にしてください。
- string sSym01 ="EURGBP"; // (外部変数ではありません)
ソースシンボル#1です。
これは自動的に添付されたチャートのシンボルから設定されます。
このツールをこのシンボルチャートに添付することで、sCalが「D」の場合に「データ不足エラー」を避けることができます。
- extern string sSym02 ="GBPUSD";
ソースシンボル#2です。
Market Watch上での名前がプレフィックスやサフィックスを含めて正確に一致する必要があります。
- extern string sCal ="M";
合成の計算方法です。「M」は「掛け算」を意味し、「D」は「割り算」を意味します。
vSymbolの仮想価格がsSym01とsSym02の掛け算で計算できる場合は「M」を設定してください。
例: vSymbol="EURUSD" sSym01="EURGBP" sSym02="GBPUSD"
vSymbol="EURJPY" sSym01="EURGBP" sSym02="GBPJPY"
vSymbol="EURJPY" sSym01="EURUSD" sSym02="USDJPY"
vSymbol="BTCJPY" sSym01="BTCUSD" sSym02="USDJPY"
注意: sSym01とsSym02は入れ替え可能です。メジャー通貨ペアはsSym01にすることで、より多くのティックを得られます。
vSymbolの仮想価格がsSym02をsSym01で割った結果で計算できる場合は「D」を設定してください。
例: vSymbol="USDJPY" sSym01="EURUSD" sSym02="EURJPY"
vSymbol="ZARJPY" sSym01="USDZAR" sSym02="USDJPY"
vSymbol="EURUSD" sSym01="USDJPY" sSym02="EURJPY"
注意: sSym01とsSym02は入れ替えられません。
アンダーラインの通貨は「メディア」通貨です。
