ライブラリ: マルチテスター - ページ 44

 

取引、自動取引システム、取引戦略のテストに関するフォーラム

CopyTicks」のテスト

fxsaber, 2024.02.26 12:41 pm

CopyTicksが60秒間ハングし、エラー4403を返す場合は、サーバーへのアクセスポイントを変更してみてください。たとえそこへのpingがあまり好ましくなくても。

この意味で、端末によるアクセスポイントの自動選択は危険です。

このインジケーターを起動しないと(ターミナル全体に対して1つのインスタンス)、CopyTicksの作業が行われている戦闘ターミナルから離れられなくなります。

#include <fxsaber\MultiTester\MTTester.mqh> //https://www.mql5.com/ja/code/26132

#property indicator_chart_window
#property indicator_plots 0

input int inIntervalAlert = 5; // エラータイムアウト間隔(秒)
input int inMaxPoints = 5;     // ファーストサーバーのポイント数

int OnCalculate( const int rates_total, const int prev_calculated, const int, const double &[] )
{
  static ulong StartTime = GetTickCount64();
  const ulong CurrTime = GetTickCount64();
  
  if (!prev_calculated)
  {
    Alert("Restarted!");
    
    StartTime = CurrTime;
  }
  else if (CheckCopyTicks() != ERR_HISTORY_TIMEOUT)
    StartTime = CurrTime;
  else if (CurrTime - StartTime > (ulong)inIntervalAlert * 1000)
  {
    static int Pos = 0;
    
    const int ServerPoint = Pos++ % inMaxPoints;
        
    Alert("CopyTicks error (timeout > " + (string)(CurrTime - StartTime) +
          " ms). Trying (" + (string)Pos + ") to switch to the " +
          (string)(ServerPoint + 1) + "/" + (string)inMaxPoints + " server point.");

    MTTESTER::SetServerPoint(ServerPoint);
  }

  return(rates_total);
}

int CheckCopyTicks( const string Symb = NULL )
{
  MqlTick Tick;
  MqlTick Ticks[];
  
  ResetLastError();
  
  if (SymbolInfoTick(Symb, Tick))
    CopyTicks(Symb, Ticks, COPY_TICKS_ALL, Tick.time_msc - 1000000, 1);
    
  return(_LastError);
}


2024.10.29 16:07:24.802 CopyTicksHelper (EURUSD,M1)     Alert: CopyTicks error (timeout > 5015 ms). Trying (8) to switch to the 3/5 server point.
2024.10.29 16:07:25.909 CopyTicksHelper (EURUSD,M1)     Alert: Restarted!


このインジケータは、実行中のすべてのExpert Advisor/スクリプトを一度にタイムアウトエラーで終了させます。その後、正常に動作し続けます。

 
fxsaber #:

このインジケーター(ターミナル全体に対して1つのインスタンス)を実行しないと、CopyTicksでの作業が行われている戦闘ターミナルから離れられなくなる。



このインジケータは、実行中のすべてのExpert Advisor/スクリプトを、対応するタイムアウトエラーから一度に強制終了させます。そして、正常に動作し続けます。

Expert AdvisorでCopyTicksを 常に使用する必要がある実際のケースを教えてください。私は本当にOnInit()でデジタルフィルターを実行するために過去のティックを取得するためだけに使用しています。MQL4ではバッファがいっぱいになるまで数分待たなければなりませんでした。

 
Alexey Volchanskiy #:

Expert Advisor が常にCopyTicks を 使用する必要がある実際のケースを教えてください。

テスターで起こるように、リアルでもティックをスキップしないでください Real上のExpert Advisorは、将来、過去のインターバルで実行することを決定したときに、Testerで受信するのと全く同じ価格データのシーケンスを受信します。

 

私は完全な馬鹿か、何かを見逃しているに違いありません。

もし私がEAを持っていて、1年間毎日1回だけ視覚的でないテスト(最適化ではない)を実行したい場合...各日はハードコードされたパラメータでテストされます。 誰か簡単なチュートリアルを書いてください。

1.ライブラリのダウンロード - インストール手順

2.あなたのEAとそのようなファイルの名前であなたのEAを選択するために、このコードを記述します。

3.ここで開始日と終了日を選択します。

4.バックテストの期間と長さを指定する。

5.すべてを正しく機能させるために、以下のコードを追加してください。

6.毎日のバックテストの結果を指定し、csvに保存する。

などなど。

このライブラリは @fxsaberの ために特別に作られたようなのですが、どのように実装すればいいのか迷っています。


私たちみんなが望んでいたものをコーディングしてくれてありがとう。誰かがあなたに何かを修正するように頼んでいるときの「!Did」のようなあなたのコメントが大好きです。

 
CheckInputs - нахождение аварийных проходов при Оптимизации советника
CheckInputs - нахождение аварийных проходов при Оптимизации советника
  • www.mql5.com
Во время Оптимизации советника некоторые проходы могут завершаться аварийно. Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий Новая версия платформы MetaTrader 5
 

取引、自動取引システム、取引戦略のテストに関するフォーラム

ライブラリ: マルチテスター

fxsaber, 2022.12.12 13:20

時には、作業端末で同じことを行う必要があります。例では、以下のこのアクションの自動化。

その結果、ワンクリックですべての端末からデータを収集しました。MTTESTER::RunEX5の おかげで - 必要な端末(ポータブル)でEX5を実行します。

アプリケーション

МультиТерминальный скрипт.
МультиТерминальный скрипт.
  • www.mql5.com
Здесь будет представлен новый вид MQL5-программ - мультитерминальный скрипт: скрипт, который сам запускается на всех открытых MT5-терминалах. Пример. Первым таким скриптом стал CustomReport по причине
 

スクリプトは、実行中の端末のどれがポータブルかを示す。

#include <fxsaber\MultiTester\MTTester.mqh> //https://www.mql5.com/ja/code/26132
  
void OnStart()
{
  HANDLE Handles[];
  
// すべての端末に目を通す
  for (int i = MTTESTER::GetTerminalHandles(Handles, false); (bool)i--;)
    Print("\"" + MTTESTER::GetTerminalPath(Handles[i]) +
          "\" - " +(MTTESTER::IsPortable(Handles[i]) ? "portable." : "NOT portable."));
}
 

こんにちは。

ホットキーではなく インジケータで作成したオブジェクトをクリックして スクリプトを実行 したいのですが、 MTTESTER ::RunEX5を使う ことは できますか?

MTTESTER::RunEX5を使って みましたが、基本的なエラーが多いです。何が間違っているのでしょうか?

MultiTester.Example1」と「MultiTester.Example2」を「MultiTester.Example2」に貼り付けました。

"MultiTester.mqh "と他の.mqhファイルを全部、゙MetaQuotesTerminal゙D..5MQL5゙Include゙fxsaber゙MultiTester゙に入れました。

以下のエラーが出ました

in EX1:

'sinput' - 予期しないトークン Ex1.mq5 3 1

'=' - 不正な代入の使用 Ex1.mq5 3 23

'sinput' - 予期しないトークン Ex1.mq5 4 1

'=' - 不正な代入の使用 Ex1.mq5 4 23

'sinput' - 予期しないトークン Ex1.mq5 5 1

'=' - 不正な代入の使用 Ex1.mq5 5 24

'sinput' - 予期しないトークン Ex1.mq5 6 1

'=' - 不正な代入の使用 Ex1.mq5 6 31


EX2:

イベント処理関数が見つかりません Ex2.mq5 1 1


in MultiTester.mqh:

expression not boolean TesterSettings.mqh 104 37

expression not boolean TesterSettings.mqh 118 39

'SetTesterSettings' - 宣言されていない識別子 MultiTester.mqh 43 13

')'- 式が予想されます MultiTester.mqh 43 31

'SetTesterSettings' - 宣言されていない識別子 MultiTester.mqh 51 10

')'- 式が予想される MultiTester.mqh 51 28


を指定します:

file 'C: \Users....

'TESTERCACHE' - 型のない宣言 Task.mqh 80 38

.

.

.

テンプレートのインスタンス化 'MTTESTER::TASK::GetMaxFitnessPos<unknown>' Task.mqh 244 29 を参照してください。


 
Asa Social #:

ホットキーではなく、インジケータで作成したオブジェクトをクリックして スクリプトを実行 したいのですが。

こちらの 例を参照してください。

MTTESTER::RunEX5を使って みましたが、基本的なエラーが多いです。何が間違っているのでしょうか?

技術的に、コンパイルされていないコードをCodebaseで公開することはできません。問題はあなたの側にあります。
Библиотеки: Expert - Попробуйте использовать ChartApplyTemplate. Запустите советник на всех чартах, где уже есть запущенный советник.
Библиотеки: Expert - Попробуйте использовать ChartApplyTemplate. Запустите советник на всех чартах, где уже есть запущенный советник.
  • 2017.08.28
  • Automated-Trading
  • www.mql5.com
После этого задать ему нормальное значение через ChartSetInteger. Если же нужно еще и советник запустить на том же чарте. а оттуда запускать на нужном уже нам чарте советник. Библиотека работает без DLL - полностью удовлетворяет требованиям Маркета
 

取引、自動取引システム、取引戦略のテストに関するフォーラム

ライブラリ: マルチテスター

fxsaber, 2022.12.12 13:20

MTTESTER::RunEX5- 必要なターミナル上でEX5を実行します(ポータブル)

portable-restriction を削除しました。