記事についてのディスカッション - ページ 3

 
fxsaber:
作者には、このプロジェクトのさまざまな使い方を紹介するビデオの録画をお願いしたい。

もし時間があれば。しかし、一般的には、あなたからの要求は少し予想外です。あなたは、最初の記事から私の出版物を見ています(そのすべてがフォローされていないかもしれませんが)。

 

こんにちは、

素晴らしいプロジェクトをありがとう ございます。

DealHistoryGetter.mqhの コンパイルに問題があり、エラーメッセージは 'calcContracts' - memberfunction not defined line 488です。


本当にありがとうございました。

 

こんにちは、

素晴らしいプロジェクトをありがとう ございます。

DealHistoryGetter.mqhの コンパイルに問題が あり、 エラーメッセージは ' calcContracts' - memberfunction not defined line 488です。


本当にありがとうございました。

Documentation on MQL5: Constants, Enumerations and Structures / Named Constants / Predefined Macro Substitutions
Documentation on MQL5: Constants, Enumerations and Structures / Named Constants / Predefined Macro Substitutions
  • www.mql5.com
Predefined Macro Substitutions - Named Constants - Constants, Enumerations and Structures - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 
Franco87:

こんにちは、

本当にありがとう

DealHistoryGetter.mqhの コンパイルに問題が あり、 エラーメッセージは次のとおりです: ' calcContracts' - memberfunction not defined line 488.


ありがとうございました。

こんにちは、私は最近このファイルを使用している私のエキスパートをコンパイルしました。

 
あなたのエキスパートアドバイザーから送られた .mq5 ファイルを "New uploading variant" という名前でコンパイルすると、下の画像にあるようにたくさんのエラーが表示されます。

この問題を解決するにはどうすればよいでしょうか。





Regards
 

こんにちは、アンドレイ。あなたのオプティマイザーが動作し、最終的に完成したことを嬉しく思います。完全にMql5で構築されたソリューションは、作者のサポートに厳しいことが判明し、レールから外れてしまいました。そして、あなたのオプティマイザーは、C#がある限り動作し、MT5のストラテジー・テスター・ウィンドウは変わらない。バック・フォワードの最適化に対する 多くの需要がないのは不思議だ。とにかく、ご苦労様でした!


テスターはすでに動いているが、いくつか要望を言おう。
1.結果を示す表のヘッダーに、説明付きのツールチップが欲しいです。var 90, var 95, mx....
2. "results "タブのウィンドウ1と3のPLとDDの値が一致しません。
3. OnTester()関数は、オプティマイザーファイルで定義されているため、コンパイルされません。
4.バランスチャートなしでどうする?オプティマイザーのウィンドウに大まかなグラフが表示され、EAの価値を評価することができます。少なくとも、オプティマイザーはすべてのフォワードパスの最終結果を表示する必要があります。
5. pipsでの利益計算が必要です。特に、テスターが暗号通貨でどのように動作するかを考慮すること。
6.そして最後に、複数の TF を追加する可能性について夢見たいと思います。複数のアセットを追加できる可能性と似ている。
さて、そして、多くの、多くのお金...。

 
Good Beer 最適化に対する 多くの需要がないのは不思議だ。とにかく、ご苦労様でした!


テスターはすでに動いているが、いくつか希望を言っておこう。
1.結果を示す表のヘッダーに、説明付きのツールチップが欲しいです。var 90, var 95, mx....
2. "results "タブのウィンドウ1と3のPLとDDの値が一致しません。
3. OnTester()関数は、オプティマイザーファイルで定義されているため、コンパイルされません。
4.バランスチャートなしでどうする?オプティマイザーのウィンドウに大まかなグラフが表示され、EAの価値を評価することができます。少なくとも、オプティマイザーはすべてのフォワードパスの最終結果を表示する必要があります。
5. pipsでの利益計算が必要です。特に、テスターが暗号通貨でどのように動作するかを考慮すること。
6.最後に、複数の TF を追加する可能性について夢見たいと思います。複数のアセットを追加できる可能性と似ている。
さて、そして多くの、多くのお金...。

ご意見ありがとうございます。私はこのプロジェクトをサポートしませんが、はい、それは長い間動作するはずです。

もし誰かがプロジェクトを洗練、微調整する願望を持っているなら - その時はそうしてください)
https://github.com/AndreyKrivcov/MetaTrader-Auto-Optimiser.

GitHub - AndreyKrivcov/MetaTrader-Auto-Optimiser
GitHub - AndreyKrivcov/MetaTrader-Auto-Optimiser
  • AndreyKrivcov
  • github.com
Experts mast use class CAutoUploader (CustomInclude/History manager/AutoLoader.mqh)
 
EDUARDO RODRIGUES NASCIMENTO #:
あなたのエキスパートアドバイザーから送られた "New uploading variant" という .mq5 ファイルをコンパイルすると、下の画像にあるようにたくさんのエラーが表示されます。 これを解決するにはどうしたらよいでしょうか? よろしくお願いします。







それでは。記事に添付されているアーカイブをダウンロードし、その中の2つのフォルダを参照してください:

そこで記事に添付されているアーカイブをダウンロードし、その中に2つのフォルダを確認します:


MetaTrader-Auto-OptimiserフォルダをアーカイブからMetaTrader 5があるルートディレクトリに移動します:

MetaTrader-Auto-OptimiserフォルダをアーカイブからMetaTrader 5があるルートディレクトリに移動します:


アーカイブのMQL5フォルダーに2つのフォルダーがあります - ターミナルのMQL5フォルダーにコピーしてください。したがって、Test ExpertフォルダがMQL5フォルダにコピーされ、CustomGenericとHistory managerの2つのフォルダがMQL5フォルダにコピーされます。

ExpertsTest ExpertNew uploading variantフォルダにあるSimpleMA.mq5ファイルをコンパイルする:

アーカイブ内のMQL5フォルダーに2つのフォルダーがあります - ターミナルのMQL5フォルダーにコピーしてください。したがって、Test Expert フォルダが MQL5Experts フォルダにコピーされ、2 つのフォルダが MQLInclude フォルダにコピーされます: CustomGeneric と History manager です。

ExpertsTest ExpertNew uploading variant フォルダにある SimpleMA.mq5 ファイルをコンパイルします:


100 個のエラーと 60 個の警告が出る:

100 個のエラーと 60 個の警告が出た


最初のエラーに進み、それがクローズドインポートでないことを確認しよう:

最初のエラーに進み、これがクローズドインポートではないことを確認しましょう:


エラーに関する記述をダブルクリックし、エラーのある行のUploadersEntities.mqhファイルにアクセスしてください:

エラーに関する記述をダブルクリックし、エラーのある行のUploadersEntities.mqhファイルにアクセスしてください:


何が見えますか?そして、本当にインポートが閉じられていないことがわかります。修正してみましょう

何が見えますか?そして、本当にインポートが閉じられていないことがわかります。修正 しましょう:

//+------------------------------------------------------------------+
//|UploadersEntities.mqh
//| Copyright 2020, MetaQuotes Software Corp.
//|https://www.mql5.com
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"

#include "ReportCreator.mqh"
#import "ReportManager.dll"
#import
//+------------------------------------------------------------------+
//| 入力パラメータのデータを格納する構造体
//+------------------------------------------------------------------+
struct BotParams
  {
   string            name,value;
  };

// 動的配列に新しい値を追加する
#define ADD_TO_ARR(arr, value) \
{\
   int s = ArraySize(arr);\
   ArrayResize(arr,s+1,s+1);\
   arr[s] = value;\
}

// 動的パラメータ配列に新しいロボットパラメータを追加する。
#define APPEND_BOT_PARAM(Var,BotParamArr) \
{\
   BotParams param;\
   param.name = #Var;\
   param.value = (string)Var;\
   \
   ADD_TO_ARR(BotParamArr,param);\
}

//+------------------------------------------------------------------+
//|| 配列のリストをコピーする関数。
//+------------------------------------------------------------------+
void CopyBotParams(BotParams &dest[], const BotParams &src[])
  {
   int total = ArraySize(src);
   for(int i=0; i<total; i++)
     {
      ADD_TO_ARR(dest,src[i]);
     }
  }

//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
double GetAverageCoef(CoefChartType type, CReportCreator &report_manager)
  {
   CoefChart_item coef_chart[];
   report_manager.GetCoefChart(false,type,coef_chart);

   double ans= 0;
   int total = ArraySize(coef_chart);
   for(int i=0; i<total; i++)
      ans+=coef_chart[i].coef;

   ArrayFree(coef_chart);
   return (ans/(double)total);
  }
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
string get_path_to_expert(void)
  {
   string arr[];
   StringSplit(MQLInfoString(MQL_PROGRAM_PATH),'\\',arr);
   string relative_dir=NULL;

   int total= ArraySize(arr);
   bool save= false;
   for(int i=0; i<total; i++)
     {
      if(save)
        {
         if(relative_dir== NULL)
            relative_dir=arr[i];
         else
            relative_dir+="\\"+arr[i];
        }

      if(StringCompare("Experts",arr[i])==0)
         save=true;
     }

   return relative_dir;
  }
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
typedef void(*TCallback)();
typedef double(*TCustomFilter)();
typedef int (*TOnTesterInit)();


//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
void EmptyCallback() {}
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
double EmptyCustomCoefCallback() {return 0;}
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
int EmptyOnTesterInit() {return(INIT_SUCCEEDED);}

enum ENUM_CALLBACK_TYPE
  {
   CB_ON_TICK,
   CB_ON_TESTER_DEINIT
  };

struct Data
  {
   int tf, // ReportItem.TF
       laverage, // ReportReader.Laverage
       totalTrades, // ReportItem.OptimisationCoefficients.TotalTrades
       totalProfitTrades, // ReportItem.OptimisationCoefficients.MaxPLDD.Profit.TotalTrades
       totalLooseTrades, // ReportItem.OptimisationCoefficients.MaxPLDD.DD.TotalTrades
       consecutiveWins, // ReportItem.OptimisationCoefficients.MaxPLDD.Profit.ConsecutivesTrades
       consequtiveLoose, // ReportItem.OptimisationCoefficients.MaxPLDD.DD.ConsecutivesTrades
       numberProfitTrades_mn, // ReportItem.OptimisationCoefficients.TradingDays[Mn].Profit.Trades
       numberProfitTrades_tu, // ReportItem.OptimisationCoefficients.TradingDays[Tu].Profit.Trades
       numberProfitTrades_we, // ReportItem.OptimisationCoefficients.TradingDays[We].Profit.Trades
       numberProfitTrades_th, // ReportItem.OptimisationCoefficients.TradingDays[Th].Profit.Trades
       numberProfitTrades_fr, // ReportItem.OptimisationCoefficients.TradingDays[Fr].Profit.Trades
       numberLooseTrades_mn, // ReportItem.OptimisationCoefficients.TradingDays[Mn].DD.Trades
       numberLooseTrades_tu, // ReportItem.OptimisationCoefficients.TradingDays[Tu].DD.Trades
       numberLooseTrades_we, // ReportItem.OptimisationCoefficients.TradingDays[We].DD.Trades
       numberLooseTrades_th, // ReportItem.OptimisationCoefficients.TradingDays[Th].DD.Trades
       numberLooseTrades_fr; // ReportItem.OptimisationCoefficients.TradingDays[Fr].DD.Trades
   ulong startDT, // ReportItem.DateBorders.From
         finishDT; // レポート項目.日付の境界線.Till
   double payoff, // レポート項目.最適化係数.ペイオフ
          profitFactor, // ReportItem.OptimisationCoefficients.ProfitFactor
          averageProfitFactor, // ReportItem.OptimisationCoefficients.AverageProfitFactor
          recoveryFactor, // ReportItem.OptimisationCoefficients.RecoveryFactor
          averageRecoveryFactor, // ReportItem.OptimisationCoefficients.AverageRecoveryFactor
          pl, // ReportItem.OptimisationCoefficients.PL
          dd, // レポート項目.最適化係数.DD
          altmanZScore, // ReportItem.OptimisationCoefficients.AltmanZScore
          var_90, // ReportItem.OptimisationCoefficients.VaR.Q_90
          var_95, // ReportItem.OptimisationCoefficients.VaR.Q_95
          var_99, // ReportItem.OptimisationCoefficients.VaR.Q_99
          mx, // ReportItem.OptimisationCoefficients.VaR.Mx
          std, // ReportItem.OptimisationCoefficients.VaR.Std
          max_profit, // ReportItem.OptimisationCoefficients.MaxPLDD.Profit.Value
          max_dd, // ReportItem.OptimisationCoefficients.MaxPLDD.DD.Value
          averagePl_mn, // ReportItem.OptimisationCoefficients.TradingDays[Mn].Profit.Value
          averagePl_tu, // ReportItem.OptimisationCoefficients.TradingDays[Tu].Profit.Value
          averagePl_we, // ReportItem.OptimisationCoefficients.TradingDays[We].Profit.Value
          averagePl_th, // ReportItem.OptimisationCoefficients.TradingDays[Th].Profit.Value
          averagePl_fr, // ReportItem.OptimisationCoefficients.TradingDays[Fr].Profit.Value
          averageDd_mn, // ReportItem.OptimisationCoefficients.TradingDays[Mn].DD.Value
          averageDd_tu, // ReportItem.OptimisationCoefficients.TradingDays[Tu].DD.Value
          averageDd_we, // ReportItem.OptimisationCoefficients.TradingDays[We].DD.Value
          averageDd_th, // レポート項目.最適化係数.取引日[Th].DD.値
          averageDd_fr, // ReportItem.OptimisationCoefficients.TradingDays[Fr].DD.Value
          balance; // ReportReader.Balance
   char              currency[100];
  };
//+------------------------------------------------------------------+

もう一度コンパイルしてください。インポートエラーはなくなりましたが、コンパイラはインポートされたファイルの関数やメソッドを見ることができません:

もう一度コンパイルしてみよう。インポートエラーはなくなりましたが、今度はコンパイラがインポートされたファイルの関数やメソッドを見ません:


サードパーティーのDLLからメソッドとクラスをインポートしていることを思い出してください。MQL5/Librariesフォルダにあるはずです。

アーカイブからMetaTrader 5のルートディレクトリにコピーされたMetaTrader-Auto-Optimiserフォルダを開きます。その中にMetatrader Auto Optimiser.slnというファイルがあります:

サードパーティのDLLからメソッドとクラスをインポートしていることを思い出してください。

アーカイブからMetaTrader 5のルートディレクトリにコピーしたMetaTrader-Auto-Optimiserフォルダを開きます。その中に Metatrader Auto Optimiser.sln というファイルがあります:


このファイルをダブルクリックして、MS Visual Studioでプロジェクトを開きます。

プロジェクトを開くと、古いプラットフォーム用であることがわかります:



プロジェクトを開くと、古いプラットフォーム用であることがわかります:


ターゲットを.NET Framefork 4.8プラットフォームにアップグレードする」にチェックを入れたまま、「続行」ボタンをクリックします。

次に、2つ目のプロジェクトについて:

アップグレードターゲットを.NET Framefork 4.8プラットフォームへ "にチェックを入れたまま、"Continue "ボタンをクリックします。

次に、2つ目のプロジェクトについてもう一度:


プロジェクトをロードした後、"Release "とAny CPUを選択します:

プロジェクトをロードした後、"Release "とAny CPUを選択します:


Ctrl+F5 を押して、プロジェクトをコンパイルしてビルドします。

MS Visual Studioでプロジェクトをコンパイルした後、ターミナルのルートディレクトリに移動し、その中にあるフォルダ ➤MetaTrader-Auto-Optimiser➤ReportManager➤Release に移動します。このフォルダからビルドされたReportManager.dllライブラリのファイルをターミナルのMQL5/Librariesディレクトリにコピーします。

MQL5ExpertsTest ExpertNew uploading variantフォルダからSimpleMA.mq5ファイルを再度コンパイルします。

完了、エラーなし:

そして、Ctrl+F5を押して、プロジェクトをコンパイルしてビルドします。

MS Visual Studioでプロジェクトをコンパイルした後、ターミナルのルート・ディレクトリに移動し、その中の "MetaTrader-Auto-Optimiser "フォルダの中にある "ReportManager "フォルダの中に移動します。このフォルダからコンパイルされたライブラリファイルReportManager.dllをターミナルのMQL5Librariesフォルダにコピーします。

では、MQL5ExpertsTest Expert New uploading variantフォルダからSimpleMA.mq5ファイルを再度コンパイルしてみましょう。

完了、エラーはありません:


お楽しみください。

ファイル:
 
Artyom Trishkin #:

そこで記事に添付されているアーカイブをダウンロードし、その中にある2つのフォルダを見る:

そこで記事に添付されているアーカイブをダウンロードし、その中の2つのフォルダを見る:


アーカイブからMetaTrader-Auto-OptimiserフォルダをMetaTrader 5があるルートディレクトリに移します:

MetaTrader-Auto-OptimiserフォルダをアーカイブからMetaTrader 5のあるルートディレクトリに移動する:


アーカイブ内のMQL5フォルダーに2つのフォルダーがあります - ターミナルのMQL5フォルダーにコピーしてください。したがって、Test ExpertフォルダはMQL5フォルダにコピーされ、CustomGenericとHistory managerの2つのフォルダはMQL5フォルダにコピーされます。

ExpertsTest ExpertNew uploading variant フォルダにある SimpleMA.mq5 ファイルをコンパイルします:

アーカイブ内のMQL5フォルダーに2つのフォルダーがあります - ターミナルのMQL5フォルダーにコピーしてください。したがって、Test Expert フォルダが MQL5Experts フォルダにコピーされ、2 つのフォルダが MQLInclude フォルダにコピーされます: CustomGeneric と History manager です。

ExpertsTest ExpertNew uploading variant フォルダにある SimpleMA.mq5 ファイルをコンパイルします:


100 個のエラーと 60 個の警告が表示されます:

100 個のエラーと 60 個の警告が出る


最初のエラーを見て、それがクローズド・インポートでないことを確認してください:

最初のエラーに進み、これがクローズド・インポートではないことを確認しよう:


ありがとうございます。