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

 
fxsaber:

あなたは誤解しています。確かにどの端末でも検索可能です。でも、自分からしか アカウントにアクセスできないんです。他の端末にはない。

接続できない端末は、古いアクセスポイントがキャッシュされ、新しいアクセスポイントがない可能性が高いです(ブローカーがアクセスポイントの設定を変更する)。

1) 以前、接続されていない端末でSwissquote-Serverに接続したことがありますか(成功または失敗)?

2) アカウントを開くウィンドウで、"Swissquote-Server "と入力してEnterキーを押し、成功するまで待ち、再度接続を試みます。

3) 再インストール/新品/未使用のパソコンですか?OSは何ですか?また、アップデートは最新ですか?

 
Renat Fatkhullin:

接続できない端末は、古いアクセスポイントがキャッシュされ、新しいアクセスポイントがない可能性が高いです(ブローカーがアクセスポイントの設定を変更する)。

1) 接続されていないターミナルで、以前にSwissquote-Serverに接続したことがありますか(成功または失敗)?

していません。

2) アカウントを開くウィンドウで、「Swissquote-Server」と入力し、Enterキーを押して、成功するまで待ち、再度接続を試みます。

まさに、リストにないサーバーに接続する必要があるときに、私が行うことです。サーバーは表示されているが、接続されていない。

3) 再インストール/新品/未使用のパソコンですか?OSとアップデートの有無を教えてください。

ネイティブ端末。

2020.03.26 08:05:40.967 Terminal        Swissquote Bank MT5 Client Terminal x64 build 2368 started for Swissquote Bank SA
2020.03.26 08:05:40.969 Terminal        Windows 7 Service Pack 1 build 7601, Intel Core i7-2700 K  @ 3.50 GHz, 7 / 15 Gb memory, 4 / 29 Gb disk, IE 11, Admin, GMT+2
2020.03.26 08:05:40.969 Terminal        C:\Program Files\Swissquote Bank MT5 Client Terminal


エイリアン・ターミナル

2020.03.26 08:06:51.678 ICMarkets - MetaTrader 5 x64 build 2368 started for International Capital Markets Pty Ltd.
2020.03.26 08:06:51.679 Windows 7 Service Pack 1 build 7601, Intel Core i7-2700 K  @ 3.50 GHz, 7 / 15 Gb memory, 4 / 29 Gb disk, IE 11, Admin, GMT+2
2020.03.26 08:06:51.679 C:\Program Files\ICMarkets - MetaTrader 5


同じマシン上で動作します。configフォルダを破棄すると、接続ができるようになりました。しかし、その場合、Research Terminal上の他のすべてのアカウントのデータが失われてしまいます。


ZS 直接試したいので、サーバーのIPアドレスをPMで教えてもらえますか?

 
fxsaber:

してないんです。

リストにないサーバーに接続する必要があるときは、いつもそうしているんだ。サーバーは表示されているが、接続されていない。

ネイティブ端末。


エイリアン・ターミナル


同じマシン上で動作します。configフォルダを破壊すると、接続が切れる。しかし、その場合、Research Terminal上の他のすべてのアカウントのデータが失われてしまいます。


ZS 直接試したいので、サーバーのIPアドレスをPMで教えてもらえますか?

問題なく繋がりました。

2020.03.26 13:34:06.558 Network new demo account '6036452' opened on Swissquote-Server
2020.03.26 13:34:21.308 Network '8550475': disconnected from MetaQuotes-Demo
2020.03.26 13:34:22.540 HistoryCenter   delete old files from E:\MetaQuotes\MetaTrader 5\bases\Swissquote-Server\history\AEP, last access time 2018.03.02 18:42
2020.03.26 13:34:23.588 Experts automated trading is disabled because the account has been changed
2020.03.26 13:34:23.946 Network '6036452': authorized on Swissquote-Server
2020.03.26 13:34:23.946 Network '6036452': previous successful authorization performed from 176.49.173.218 on 2020.03.26 07:34:05
2020.03.26 13:34:25.751 Network '6036452': terminal synchronized with Swissquote Bank SA
2020.03.26 13:34:25.751 Network '6036452': trading has been enabled - hedging mode
2020.03.26 13:34:26.843 Network '6036452': scanning network for access points
2020.03.26 13:35:01.961 Network '6036452': scanning network finished
 
Artyom Trishkin:

問題なくすべて接続できました。

はい、デモは問題なく入ります。

2020.03.26 08:42:07.401 new demo account '6036453' opened on Swissquote-Server
2020.03.26 08:42:09.188 '6036453': authorized on Swissquote-Server


実機では、そうではありません。

2020.03.26 08:42:40.551 '6036453': disconnected from Swissquote-Server
2020.03.26 08:42:41.418 'xxxxxxx': no connection to Swissquote-Server
 
fxsaber:

はい、デモは問題なく入ります。


本番では、ダメです。

サーバーは2台。

1枚目でデモを作成しました。

2枚目でリアルかも?

 
Artyom Trishkin:

サーバーは2台。

1枚目でデモを作成しました。

同じです。

2枚目でリアルかも?

2台目には別の取引サーバーがありました。

 

みんな助けて

少し前にプログラミングを始めたのですが、このようなエラーが発生しました。どういったことなのか教えてください...

1.MarketInfo(Symbol(),MODE_TICKVALUE)を使用したところ、テスターではEURUSDペアが 0.01を表示しているのに、ターミナルでは1を表示しています。

2. iClose,iOpen,iHigh,iLow は、shift=1 のとき 0 を返すことがあります。


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

 

ArrayResize()+reserveの速度の問題は、まだ悩みの種です。
今回は、プリミティブなデータ型の 配列に関する問題です。

#define  K 1000
#define  M (1000 * K)

#define    SpeedTest(test_count,msg,EX_pref, EX_test, EX_post) {         \
               uint result = 0; ulong count=test_count;                 \
               for(ulong ii=0;ii<count&&!_StopFlag;ii++){               \ 
                   EX_pref                                              \
                   uint start=GetTickCount();                           \
                   EX_test                                              \
                   result += GetTickCount() - start;                    \ 
                   EX_post                                              \
               }                                                        \
               printf("%-60s: loops=%i ms=%u",msg,count,result);}
                                              
class A{
public:
   int data;
};


template<typename T>
void test1(const int test_count, const int array_size){
   T class_array[];
   T tmp[];
   
   SpeedTest(
      test_count, StringFormat("Test %s ArrayResize all", typename(T)),
      {}
      ,
      {
         ArrayResize(class_array, array_size);
         for(int i = 1; i <= array_size; i++){
            ArrayResize(class_array, array_size, i);
            class_array[i-1] = NULL;
         }
      },
      {            
         ArraySwap(tmp, class_array);
         ArrayFree(tmp);
      }
   )
};

template<typename T>
void test2(const int test_count, const int array_size){
   T class_array[];
   T tmp[];
   
   SpeedTest(
      test_count, StringFormat("Test %s ArrayResize one by one with reserved memory", typename(T)),
      {},
      {
         ArrayResize(class_array, array_size);         
         for(int i = 1; i <= array_size; i++){
            ArrayResize(class_array, i, i);
            class_array[i-1] = NULL;
         }
      },   
      {            
         ArraySwap(tmp, class_array);
         ArrayFree(tmp);
      }
   )
};

 


void OnStart()
{
  const int test_count = 1;
  const int array_size = 20*K*K;  
  
   printf("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
   test1<int>(test_count, array_size);              // Avg time: release( 120) / debug( 155)
   test2<int>(test_count, array_size);              // Avg time: release( 205) / debug( 235)
   test1<int>(test_count, array_size);
   test2<int>(test_count, array_size);
   test1<int>(test_count, array_size);
   test2<int>(test_count, array_size);
   test1<int>(test_count, array_size);
   test2<int>(test_count, array_size);
   test1<int>(test_count, array_size);
   test2<int>(test_count, array_size);
   
   printf("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
   test1<double>(test_count, array_size);           // Avg time: release( 155) / debug( 190)
   test2<double>(test_count, array_size);           // Avg time: release( 250) / debug( 260)
   test1<double>(test_count, array_size);
   test2<double>(test_count, array_size);
   test1<double>(test_count, array_size);
   test2<double>(test_count, array_size);
   test1<double>(test_count, array_size);
   test2<double>(test_count, array_size);
   test1<double>(test_count, array_size);
   test2<double>(test_count, array_size);
   
   printf("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
   test1<A*>(test_count, array_size);              // Avg time: release( 190) / debug( 200)
   test2<A*>(test_count, array_size);              // Avg time: release( 330) / debug( 340)
   test1<A*>(test_count, array_size);
   test2<A*>(test_count, array_size);
   test1<A*>(test_count, array_size);
   test2<A*>(test_count, array_size);
   test1<A*>(test_count, array_size);
   test2<A*>(test_count, array_size);
   test1<A*>(test_count, array_size);
   test2<A*>(test_count, array_size);
}

前バージョンと比較して、若干のコードの改良を行いました。
- の両方のテストにおいて、ArrayResize は同じ回数呼び出されることが保証されており、以前はオプティマイザが貢献していました...
- ArrayFreeの時間はランタイムの計算から除外されます。


プリミティブなデータ型の場合、ArrayResize()+reserveは通常のArrayResize()より3倍以上遅く実行されます(205ミリ秒 vs. 65ミリ秒)。
これは、GenericArrayList.mqhでCArrayList::Addを20Mコールした場合、メモリを予約しない場合と予約した場合で1.85倍の速度差があります(170 ms vs 95 ms)。
ここは明らかにおかしい。

原始的なArrayResize()+reserve機能 タイプで速度を向上させる方法はありますか?
そこで、何がそんなに大きな損失となるのでしょうか?

現実はもっと複雑なのでしょうが、実行結果に影響するチェック項目はほんの数個です。

IsDynamic == true
IsIndexBuffer == false
IsSetAsSerrias == false
new_size > サイズ
新しいサイズ < 容量
IsFundamental == true (またはコンストラクタとデストラクタ == 0)

いくつかのチェックは、ビットマスクを介して組み合わせることで、より可能性の高いメインのコード実行方向を高速化することも可能です。
また、稀にビットマスクチェックが失敗した場合、どのフラグが結果に影響したかを追加で指定する...。

 
fxsaber:

はい、デモは問題なく入ります。

本番では、ダメです。

2020.03.26 08:42:41.418 'xxxxxxx': no connection to Swissquote-Server

ごきげんよう。

1.実アカウントに接続されていない端末(リサーチ)では、アカウント一覧にこのアカウントが存在するのですが?

つまり、このxxxxxxxxというアカウントはナビゲーターに表示されているのか?


2.xxxxxxxxのアカウントがある場合、コロンの後にYYYYYという名前で表示されていますか(数字だけではありません)。

3.アカウントがxxxxxxxxである場合、それを削除(ナビゲータでDeleteメニューコマンド)して再接続すると、接続に成功するのでしょうか。


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

 
Anton:

1.実アカウントへの接続ができない端末(研究用端末)で、アカウント一覧にこのアカウントは存在しますか?

つまり、このxxxxxxxxのアカウントがナビゲーターに表示されているかどうかです。

xxxxと表示される。

2.アカウントxxxxxxxxがある場合、コロンの後にYYYYという名前で表示されているか(数字だけでなく)。

YYYYYとコロンがない。

3.xxxxxxxxのアカウントを持っている場合、それを削除(ナビゲーターでDelete)して再接続すると、接続されるのでしょうか?

了解!


初回接続時は、サーバー名を入力しただけのようです。このエントリーはナビゲータに表示されますが、トレードサーバーのデータはなく、空白がそこに行きました。しかも、そのアカウントを強制的に検索してデータを取得しても、空白が代入されたままでした。


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


SZZ トピックについて。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

MetaTrader 5 プラットフォームの新バージョン(ビルド2280

fxsaber, 2020.02.19 11:32

既存の取引口座に接続する際、間違った取引サーバー名を指定すると、Navigator上で口座が移動してしまい、単に口座がないのではないかと思われます。


MetaQuotes-Demoにログインする際、MetaQuotes-Demo2サーバーのアドレスを指定します。ナビゲーターでご覧ください。既存アカウントへの適用は、接続に成功した後にしてください。

検索文字列: Uluchshenie 005.