MQL5でiClose/iOpenの時系列アクセスなどを操作した場合の不具合。 - ページ 6

 

iTimeがPERIOD_M1でハングアップするのは確認した。


私のシステム

2018.11.15 10:03:35.115 Terminal        MetaTrader 5 x64 build 1944 started (MetaQuotes Software Corp.)
2018.11.15 10:03:35.118 Terminal        Windows 10 (build 17134) x64, IE 11, UAC, Intel Core i3-3120 M  @ 2.50 GHz, Memory: 4141 / 8077 Mb, Disk: 154 / 415 Gb, GMT+2
2018.11.15 10:03:35.118 Terminal        C:\Users\barab\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

正常に動作し、ポータブルはありません。

AUDUSD, M5で、10:08:20に「Test CopyTime.mq5」を実行しました。

2018.11.15 10:08:20.159 Experts expert Test CopyTime (AUDUSD,Daily) loaded successfully

Expert Advisor コード

//+------------------------------------------------------------------+
//|                                                Test CopyTime.mq5 |
//|                              Copyright © 2018, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2018, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   datetime CM1_T[1];
   datetime CM2_T[1];
   CopyTime(_Symbol,PERIOD_M1,0,1,CM1_T);
   CopyTime(_Symbol,PERIOD_CURRENT,0,1,CM2_T);
   Comment("CopyTime PERIOD_CURRENT: "+TimeToString(CM2_T[0],TIME_DATE|TIME_SECONDS)+"\n"+
           "CopyTime PERIOD_M1: "+TimeToString(CM1_T[0],TIME_DATE|TIME_SECONDS));
  }
//+------------------------------------------------------------------+

では

2018.11.15 10:27:45.583 Network '10169544': connection to MetaQuotes-Demo lost

強制的にインターネットから切断される(ルーターの電源を切る)


に再接続した後

2018.11.15 10:32:58.823 Network '10169544': authorized on MetaQuotes-Demo through Access Point EU 2 (ping: 50.64 ms)

コード

CopyTime(_Symbol,PERIOD_M1,0,1,CM1_T)

は、M1上のバーの現在のオープンタイムを提供することをやめ、接続が切断される前の最後の時間を提供するようになりました。


2018.11.15 10:08:20.159 Experts expert Test CopyTime (AUDUSD,Daily) loaded successfully
2018.11.15 10:27:45.583 Network '10169544': connection to MetaQuotes-Demo lost
2018.11.15 10:32:58.823 Network '10169544': authorized on MetaQuotes-Demo through Access Point EU 2 (ping: 50.64 ms)
2018.11.15 10:32:58.823 Network '10169544': previous successful authorization performed from 178.165.123.77 on 2018.11.15 10:03:38
2018.11.15 10:32:58.900 Network '10169544': terminal synchronized with MetaQuotes Software Corp.
2018.11.15 10:32:58.900 Network '10169544': trading has been enabled - hedging mode
2018.11.15 10:33:00.653 Network '10169544': scanning network for access points
2018.11.15 10:33:19.062 Network '10169544': scanning network finished
2018.11.15 10:33:19.062 Network '10169544': auto connecting to a better access point with 95 % quality (previous: 88 %)
2018.11.15 10:33:19.062 Network '10169544': connection to MetaQuotes-Demo lost
2018.11.15 10:33:19.716 Network '10169544': authorized on MetaQuotes-Demo through Access Point EU 4 (ping: 65.57 ms)
2018.11.15 10:33:19.716 Network '10169544': previous successful authorization performed from 178.165.123.77 on 2018.11.15 10:32:58
2018.11.15 10:33:19.825 Network '10169544': terminal synchronized with MetaQuotes Software Corp.
2018.11.15 10:33:19.825 Network '10169544': trading has been enabled - hedging mode


多分、静的な配列だと思います

datetime CM1_T[1];

また、動的配列を 使用する必要がありますか?


追加:CM1_T[1]をダイナミックCM1_T[]に置き換えた。約3分間、強制的に接続を解除した後、文字列

CopyTime(_Symbol,PERIOD_M1,0,1,CM1_T)

リンクを切断する前の M1 との最後の既知の時間を出力する。

ファイル:
 
Vladimir Karputov:

iTimeがPERIOD_M1でハングアップするのは確認した。

私のシステム

正常に動作し、ポータブルはありません。

AUDUSD, M5で、10:08:20に「Test CopyTime.mq5」を実行しました。

Expert Advisor コード

では

強制的にインターネットから切断される(ルーターの電源を切る)

に再接続した後

コード

は、M1上のバーの現在のオープンタイムを提供することをやめ、接続が切断される前の最後の時間を提供するようになりました。

多分、静的な配列だと思います

で、動的配列を 使用する必要がありますか?

M30に載せて、M30からもデータを取ってみてください。まさに、動画にあるようなフリーズの仕方です。タイムフレームを切り替えてもダメで、インジケータを削除してからインストールするのみです。

 
Vitaly Muzichenko:

M30に載せて、M30からもデータを取ってみてください。まさに、動画にあるようなフリーズが起きているのです。タイムフレームを切り替えてもダメで、インジケータを削除してからインストールするのみです。

インジケーターのリロードを弄るのは100%参考にならないので、3回に1回はインジケーターを完全にリロードして、もちろんコーヒーのカスで当てないように管理すると言うことを確認し、インジケーターをアンロードしてツールでリロードした方が簡単だと思います。

しかし、こんなタンバリンと踊るような中で、どんなトレーディングオートメーションが語れるのか、とんでもないことです。

 
Vladimir Karputov:

*** 多分、静的配列のせいだと思います

SoruXXXでは元々動的 配列を使った方が良いと書いてあるので、問題は配列の種類ではありません。

 
私は仕事上、様々な会社(Symantec, DeviceLock, Kaspersky, FortiNet, Xspiderなど)のテクニカルサポートに手紙を書くことがありますが、私が説明した問題の原因を見つける必要があったのは初めてです、mda.あとは自分で修正プログラムを書くだけです :)
 
Farkhat Guzairov:

...しかし、残念ながら、MQ製品は、私が10年ほど前から注目している製品です。

あと10年もすれば全てが正常に動くようになる )))))))))))))))))))))))))))))))))))))))))))))))))))))))))

 
私も半年ほど前、同じような悩みを抱えていました。裁定取引ロボットを書いていたので、同時に多くの登場人物のリストを作っていたんです。私は 裁定取引ロボットを書いていたので、同時に大きなシンボルのリストを扱っていました。ロボットは古い見積書では動かないように保護されていたので、問題は活動量の減少だけだった。唯一効果があったのは、EAをチャートに付け直したことです。
 
再現・修正いたします。
 
Renat Fatkhullin:
再現・修正いたします。

修正はいつごろになりそうですか?

 
Farkhat Guzairov:

修正プログラムはいつ頃提供されるのでしょうか?

再接続後にエイリアンの不可視時間枠の更新がフリーズする不具合に対処し、修正されました。再接続後のキャッシュの状態が正しくないことが原因でした。

ベータ版1946は、ヘルプ→デスクトップアップデートの確認→最新ベータ版から入手可能です。