ナンピンインターバルについて

2025/02/18 15:22
24

お世話になります。
MT4のゴールドのヒスリカルデーターが直近のものしかない為A*****からダウンロードしてバックテストしたのですが、ナンピンインターバルが機能しなく数pipで連続でナンピンしてしまします。他通貨ペアは問題なく、ゴールドだけその症状が出てしまいます。解決方法はありますでしょうか。

コメント

GogoJungle
2025/02/18 16:20

大変恐縮ですが、金融庁無登録の海外業者が関わるご質問には、法的な問題により、弊社から詳しい回答をさせていただけない状況でございます。

一般的な回答となってしまいますが、業者の仕様によって小数点以下の桁数が異なることが原因で、価格とpipsを変換する関数が正常な値を返していない可能性がございます。

ソースをご覧いただきますと、次の2つの関数が見つかることと存じます。

//--------------------------------------------------------------------------------------------------------+
//価格換算用関数
//   処理:pipsを価格に換算する。
//   引数:換算する値
//   戻り値:調整された価格
//--------------------------------------------------------------------------------------------------------+
double PipsToPrice(double value)
{
   int mult = (Digits == 3 || Digits == 5) ? 10 : 1;
   return(value * Point * mult);
}
//--------------------------------------------------------------------------------------------------------+
//pips換算用関数
//   処理:価格をpipsに換算する。
//   引数:換算する値
//   戻り値:調整されたpips
//--------------------------------------------------------------------------------------------------------+
double PriceToPips(double value)
{
   int mult = (Digits == 3 || Digits == 5) ? 10 : 1;
   return(value / Point/ mult);
}

これらのmultの扱いにつきまして、「小数点以下の桁数が3桁または5桁⇒10倍、そうでなければ1倍」という計算式となっておりますが、ご利用いただいているのがこれに当てはまらない業者や通貨ペアかもしれません。

対処法といたしましては、

int mult = (Digits == 3 || Digits == 5) ? 10 : 1;

の行を

int mult = 1;

もしくは

int mult = 10;

もしくは

int mult = 100;

のようにご変更いただき、倍率を何倍にすればよいのか、バックテストにて挙動をお確かめいただく方法がございます。
完全なサポートができず失礼いたしますが、何卒よろしくお願いいたします。

関連トピックス

検索結果がありません。

ノーコードで誰でも簡単EA開発!MQL言語学習にも使える! | GogoJungle

注目トピックス

検索結果がありません。