GOLDのpips変換について

2024/09/25 00:31
150

デフォルトのソースでは例えば「TPを50pips」に設定したい場合、500と入力する必要があると思います。

それについては当該ページ(https://labo.gogojungle.co.jp/articles/587)を元にソース変更で対応できるかとおもいますが、デフォルトコードだと小数点以下の価格換算用関数が2つとpips換算用関数が2つあります。

これらのうち、どのコードを変更すればよいでしょうか?
また、TP以外にもSLと補正値でもpipsの値を必要としたロジックでのEAで考えております。

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

//--------------------------------------------------------------------------------------------------------+
//価格換算用関数
// 処理:価格の小数点値に換算する。
// 引数:換算する値
// 戻り値:調整された価格
//--------------------------------------------------------------------------------------------------------+
double PointToPrice(int value)
{
return(value * Point);
}

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

//--------------------------------------------------------------------------------------------------------+
//pips換算用関数
// 処理:指定した通貨ペアの小数点以下桁数をもとに価格をpipsに換算する。
// 引数:換算する値,換算する通貨ペア
// 戻り値:調整されたpips
//--------------------------------------------------------------------------------------------------------+
double PriceToPipsWithSymbol(double value, string symbol)
{
double Symbol_Digits = MarketInfo(symbol,MODE_DIGITS);
int mult = (Symbol_Digits == 3 || Symbol_Digits == 5) ? 10 : 1;
return(value / MarketInfo(symbol,MODE_POINT) / mult);
}

コメント

GogoJungle
2024/09/26 18:58

下記の通りでございます。

PipsToPrice

変更する必要があります。
参照元のURLの方法にてご変更をお願いいたします。

PointToPrice

変更する必要はありません。
Priceは、常にvalue * Pointで求めることができるためです。

PriceToPips

変更する必要があります。
参照元のURLの方法にてご変更をお願いいたします。

PriceToPipsWithSymbol

出力したコードにて使用されている場合は変更する必要があります。(関数名で検索し、この関数をOnTick内の処理から呼び出しているかを調べます。)
取引を行う通貨ペア以外の通貨ペアの値をロジックに組み込む場合は、複雑な変更が必要になる可能性があります。
「Goldと○○」(○○は任意の通貨)のみを対象とする場合は、PipsToPriceと同じ変更でOKです。

関連トピックス

検索結果がありません。

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

注目トピックス

検索結果がありません。