エラー、バグ、質問 - ページ 2138

 

履歴のアップロードに問題があるのでは?

昨日は30分ほど待ち、その後アカウントを変更し、今日は再確認することにしました。


  1. ルーブルの口座を開設する RUR
  2. テスターでEURUSDのテストをしています。
  3. ターミナルがEURRURの相場を読み込もうとしています。
  4. 見積書なし、テスターはフリーズ



どうにか苦労して、履歴をダウンロードすることにしたのですが、これが存在せず

2018.02.21 15:58:48.244 Tester  EURRUR: history data begins from 2018.02.21 00:00
2018.02.21 15:58:48.344 Tester  USDRUR: preliminary downloading of M1 history started
2018.02.21 15:58:49.244 Tester  USDRUR: 20% history downloaded
2018.02.21 15:58:49.544 Tester  USDRUR: 30% history downloaded
2018.02.21 15:58:49.844 Tester  USDRUR: 40% history downloaded
2018.02.21 15:58:50.144 Tester  USDRUR: 51% history downloaded
2018.02.21 15:58:50.444 Tester  USDRUR: 61% history downloaded
2018.02.21 15:58:50.657 Tester  USDRUR: 71% history downloaded
2018.02.21 15:58:51.057 Tester  USDRUR: 81% history downloaded
2018.02.21 15:58:51.357 Tester  USDRUR: 91% history downloaded
2018.02.21 15:58:51.657 Tester  USDRUR: preliminary downloading of M1 history completed in 0:03.417
2018.02.21 15:58:51.657 Tester  USDRUR: history data begins from 2016.12.26 00:00
2018.02.21 15:58:51.661 Core 1  agent process started
2018.02.21 15:58:52.095 Core 1  connecting to 127.0.0.1:3000
2018.02.21 15:58:52.095 Core 1  connected
2018.02.21 15:58:52.103 Core 1  authorized (agent build 1755)
2018.02.21 15:58:52.105 Tester  EURUSD,H1 (Alpari-MT5-Demo): testing of Experts\Exp - TickSniper PRO FULL v36 20180220.ex5 from 2018.01.01 00:00 to 2018.02.10 00:00
2018.02.21 15:58:52.891 Core 1  common synchronization completed
2018.02.21 15:58:53.064 Tester  quality of analyzed history is 100%
2018.02.21 15:58:54.393 Core 1  EURRUR: history synchronization started



USDJPYでOK

 

カスタムキャラクターバーでバカ騒ぎしている状況です。履歴(CustomRatesReplace)には何本でも書き込めるのですが、こちら(TERMINAL_MAXBARS)では読み込み(CopyRates)ができないのです。

この間違った状況を何とか解決しなければならない。ローカルヒストリーの始まりが見える

SeriesInfoInteger(_Symbol, PERIOD_M1, SERIES_SERVER_FIRSTDATE);

しかし、それを手に入れるためには

MQLでTERMINAL_MAXBARSを変更できるようにするとか?または、MaxBarsの制限なしにCopyRatesをオーバーロードさせるか?

 

MT5のこの挙動は以前から気づいていましたが、今になって書き込むことにしました。

MEとMT5+testerで仕事をしています。Agentに接続できず、Terminalを再起動する必要がある場合があります。このバグに慣れてしまったので、関係ないですが。

そこで、ターミナルを閉じて、MEでF4キーを押してターミナルを開く。そしてここから、ある意味ナンセンスなことが始まるのです。

MEは何度か「Not responding」状態になる。端末が起動しない。数秒後、再びF4を押すと、前と同じ反応が返ってきました。

その結果、弱くないマシン(十分なメモリ、SSD、95%のCPU空き)で20秒(最短)でTerminalが起動するようになりました。

MT4と比較すれば-天と地の差です。MEからF4でほぼ瞬時にMT4が起動します。MT5 - 何か超生々しいアプリケーションのように起動します。

 
fxsaber:

カスタムキャラクターバーでバカ騒ぎしている状況です。履歴(CustomRatesReplace)には何本でも書き込めるのですが、こちら(TERMINAL_MAXBARS)では読み込み(CopyRates)ができないのです。

この間違った状況を何とか解決しなければならない。ローカルヒストリーの始まりが見える

しかし、それを手に入れるためには

もしかしたら、MQLでTERMINAL_MAXBARSを変更することができるかもしれません。または、MaxBarsの制限なしにCopyRatesをオーバーロードさせるか?

SDは、MaxBarsより先に気配値履歴を取得できなくても問題ないと考えています。この例では、(すでにローカルマシンに存在する必要な履歴がある多くのシナリオのうちの1つ)。

リソースを節約するために制限を設けていることが前提です。そして、当然ながら、その通りです

Equiti-line statsを計算するためのMarket Productを想像してみましょう。

この製品を適用する前に、ユーザーは、UnlimitBarsを行う必要があることが判明した。そして、塗った後-返却すること。

感心しない松葉杖は生き続ける!?

 

端末の起動 時にインジケータが必ずしもACCOUNT_LOGINを返さない

0 11:00:01.880 Custom indicator tester EURUSD,H1: loaded successfully.
0 11:00:01.887 tester EURUSD,H1: OnInit 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN)が0を返しました。
0 11:00:01.887 tester EURUSD,H1: 初期化されました。
0 11:00:01.887 tester EURUSD,H1: OnCalculate 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN)が0を返しました。
0 11:00:05.980 tester EURUSD,H1: OnCalculate 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN)が0を返しました。
0 11:00:06.654 tester EURUSD,H1: OnCalculate 0 < ---- AccountInfoInteger(ACCOUNT_LOGIN)が0を返しました。
0 11:00:07.030 tester EURUSD,H1: OnCalculate 442394 < ---- AccountInfoInteger(ACCOUNT_LOGIN) return account number
0 11:00:07.040 tester EURUSD,H1: OnCalculate 442394 < ---- AccountInfoInteger(ACCOUNT_LOGIN) return account number

ソースコード

//+------------------------------------------------------------------+
//|                                                       tester.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   string text=IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN));
   Print("OnInit "+text);

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   string text=IntegerToString(AccountInfoInteger(ACCOUNT_LOGIN));
   Print("OnCalculate "+text);
   return(rates_total);
  }
//+------------------------------------------------------------------+

間違っているかもしれませんが、口座番号がわからないとプログラムが動かないというのが私の意見です......。

 
Vladimir Pastushak:

間違っているかもしれませんが、口座番号がわからないとプログラムが動かないというのが私の意見です......。

EAやインジケーターで口座番号を 使うことは、Report-dealingを除いてはありません。

しかし、オフラインであってもアカウント番号(端末の電源を切る前の最後の接続)は常に利用可能であるべきだということには同意します。

 
fxsaber:

EAやインジケーターで口座番号を 使うことは、Report-doors以外ではありません。

しかし、オフラインでもアカウント番号(端末の電源を切る前の最後の接続)は常に利用可能であるべきだということには同意します。

オンラインでも。どのアカウントで、どの時点で、何が起きたのかを常に把握し、理解する必要があります。

どのアカウントで何が行われたかが分からないのに、どうやってプログラムを実行するのですか?

ここは「シャラッシュ・モンタナシ」ではないので、ここの口座に数百万円入っている人がいるかもしれない......。

 
Vladimir Pastushak:

オンラインでも。どのアカウントで、どの時点で、何が起きたのかを常に把握し、理解する必要があります。

どのアカウントで何かが行われているのかが分からないのに、どうやってプログラムを実行するのか。

ここは「シャラッシュ・モンタナシ」ではないので、ここの口座に数百万円入っている人がいるかもしれない......。

99%のEAは口座番号を 解析していない。

 
fxsaber:

99%のアドバイザーが口座番号を 分析しない

99.99%のEAが「シャラッシュ・モンタナシ」だから・・・。

私は、すべての高品質なEAが独自の操作ログを保持し、運用中またはEAをアンロードするときに、ユーザーが要求に応じて操作ログを取得する必要があると確信しています。致命的なエラーの場合は、義務です。

クリティカルエラーとは、切断、再接続、コードの遅さなどを意味します。

 
Vladimir Pastushak:

99.99%のEAが「シャラッシュ・モンタナシ」だから・・・。

まさにそういうアドバイザーを書いているんです。