HideTestIndicators関数を使ってロジックで使用しているインジケーターを隠す

MetaTrader 4
GogoJungle
2019/08/02 22:02
2779

EAをビジュアルモードでバックテストすると、バックテスト終了後にEAが使用しているインジケーターがチャートに表示されます。
販売・配布用のEAにおいてロジックの流出を避ける為、使用しているインジケーターを知られたくない場合があります。

使用しているインジケーターを非表示にするには、HideTestIndicators関数を利用します。

void HideTestIndicators(
   bool hide
);

引数にtrueを指定するとインジケーターが非表示、falseを指定すると表示となります。
この関数は一度だけ実行すれば反映されます。
OnInit や OnDeinit など一度だけ実行される関数内で実行します。

int OnInit(){
   // バックテスト後にインジケーターを非表示
   HideTestIndicators(true);
   
   return(INIT_SUCCEEDED);
}
HideTestIndicators.zip

コメント

カム
2024/02/17 18:00

カスタムインジケータを使って作成した場合
チャートに使っているインジケータが表示されてしまいます。

消す方法はありますか?
HideTestIndicators関数
を使って消そうと思ったのですが、いまいち
わかりません。
バックテスト用なのでしょうか?
もし出来るのでしたら詳しく教えてください。

GogoJungle
2024/02/17 20:00

EAのプログラム内にある int OnInit() の中で下記を挿入して確認をお願いできればと存じます。

HideTestIndicators(true);

ご参考いただけますと幸いです。何卒よろしくお願い申し上げます。

カム
2024/02/19 08:09

それは試したのですが消えません

GogoJungle
2024/02/20 09:39

説明不足で申し訳ございません。
恐れ入りますがEAのバックテスト終了後の表示に関する制御でございます。

カスタムインジケーターの場合はEA稼働時にフォルダに設置する必要があり
カスタムインジケーターを単独で稼働した場合は、ご指摘の通り表示されてしまいます。

非表示にする場合は、カスタムインジケーターは使用せず
EAに独自でロジックのプログラムを追加する必要がございます。

ご参考いただけますと幸いです。何卒よろしくお願い申し上げます。

BigRiver
2024/04/11 16:20

本件質問させてください。

基本的な質問なのですが
追加する場所についてです。


//
int OnInit(){
// バックテスト後にインジケーターを非表示
HideTestIndicators(true);

return(INIT_SUCCEEDED);
}
//
については下記のように 初期化処理部分に追加でよろしいのでしょうか?

//--------------------------------------------------------------------------------------------------------+
//初期化処理
//--------------------------------------------------------------------------------------------------------+
int OnInit()
{

// バックテスト後にインジケーターを非表示
HideTestIndicators(true);

return(INIT_SUCCEEDED);
// バックテスト後にインジケーターを非表示

if(IsTradeAllowed() == false) {
Alert(“Enable the setting ‘Allow live trading’ in the Expert Properties!”);
}

========================
②HideTestIndicators関数 部分
//
void HideTestIndicators(
bool hide
);
//

②はどこに追加すればいいのでしょうか?
  メイン処理 部分でしょうか?

①②とも 追加する部分が分かるようなご説明(事例として)を
 お願いいたします。

GogoJungle
2024/04/11 16:52

①は int OnInit() { の下に追加をお願い申し上げます。
return(INIT_SUCCEEDED); で処理が終了してしまいますので他に処理がある場合は
下記のように return(INIT_SUCCEEDED);} の上に記載をお願い申し上げます。

//--------------------------------------------------------------------------------------------------------+
//初期化処理
//--------------------------------------------------------------------------------------------------------+
int OnInit()
{

// バックテスト後にインジケーターを非表示
HideTestIndicators(true);

if(IsTradeAllowed() == false) {
Alert("Enable the setting ‘Allow live trading’ in the Expert Properties!");
}

return(INIT_SUCCEEDED);
}

②HideTestIndicators関数は、関数の説明でございまして、追加不要でございます。

ご参考いただけますと幸いです。何卒よろしくお願い申し上げます。

BigRiver
2024/04/12 20:40

ありがとうございました

無事 インジケータ 表記されなくなりました。

関連トピックス

検索結果がありません。

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

注目トピックス

検索結果がありません。