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

 
vinnipyx:
午後MT5で、ティックマークがあるにもかかわらず、設定が保存されないというバグがあるのですが。具体的には、実行するたびにすべてのツールバーが非表示になり、その都度開き直さなければならない。次の起動時にパネルが一時的に表示されますが、その後消えます(ブローカーとの接続が確立された後と思われます)。これはどうすれば直るのでしょうか(開店ブローカー)?


ひょっとして、F11を押していませんか?

フルスクリーン

フルスクリーン

フルスクリーンモードの有効/無効を設定します。このオプションは、ツールバー、ステータスバーを無効化し、すべてのサービスウィンドウを閉じます。MetaEditorのタイトルバー、メインメニュー、コード編集ウィンドウ、ファイルタブは画面上に残ります。

 
Vladimir Karputov:


ひょっとして、F11を押していませんか?

フルスクリーン

フルスクリーンモードの有効/無効を設定します。このオプションを有効にすると、ツールバー、ステータスバーが無効になり、すべてのサービスウィンドウが閉じられます。MetaEditorのタイトルバー、メインメニュー、コード編集ウィンドウ、ファイルタブは画面上に残ります。

ありがとうございました!2週間ほどこの状況にうんざりしています。そう、誤ってf1を押してしまったのでしょう。
 
fxsaber:

Market Watchの全シンボル(数百本)について、直近数千本分のバー/ティック履歴を一度に取得する必要があります。そして、それをリアルタイムで更新する。

MT5のアーキテクチャは、このようなスクリーンキャストに最適化されているのでしょうか?新しいプログラムタイプは、そのような課題を松葉杖なしで解決できるのでしょうか?

すべてのキャッシュをコールド状態から引き上げ、実際のキャッシュにするために必要なものは何ですか?

また、スクリーナー実行時にテスターを生かすにはどうすればいいのか?


あなたはテクニカル指標と、Finwizのようなスクリーナーを取得したい場合、彼らはまた、すべてのハンドルがメモリの多くを食べることを訴える、そのMCはそれと戦うために約束する。そのため、ある程度の周期で市場調査をしながら画面を表示するとなると、多くのメモリが必要になり、初回実行には多くの時間がかかります。
 
kaus_bonus:

なぜテスターにスクリーナーが必要なのか、私にはわかりません。
100個のシンボルに対して一度にマルチボリュームで、それぞれのOnTimerがすべてのシンボルのティック履歴を 分析します。
 
fxsaber:
100個のシンボルで一気に多列化し、それぞれのOnTimerが全シンボルのティック履歴を 分析するのです。


往生際の悪いこと)

テスターで実行すると、すべてのティックデータが再準備されるのですか!1ヶ月/ティッカーで約100MB。市場全体を俯瞰するとなると、、、ディスクはゴムでなければならないが、どのくらいかかるのか?

テスターエージェントのキャッシュは、エージェントがアクティブでない5分後にクリアされることを覚えているなら、ちょうどあなたが1時間か2時間データを準備して、5分間放置して、それで終わり、また始めなければならないことを想像してください。

 
kaus_bonus:

往生際の悪いこと)

だからこその質問です。私の理解が正しければ、テスターはS#のインフラで問題なくやっているのです。間違っているかもしれません。
 

MT4ではOrderSendの 実行からログを取った記憶が全くないので、MT5に慣れているようです。

MT4のどのビルドから、ログの不正な処理が行われるようになったのでしょうか?MT5では、印刷と同様の特別なユーザーアクション(+実行エラーと自動売買ボタン)だけが、そこに記録を作ることができます。それともMT4ではずっとそうだったのでしょうか?

 
fxsaber:

Market Watchの全シンボル(数百本)について、直近数千本分のバー/ティック履歴を一度に取得する必要があります。そして、それをリアルタイムで更新する。

MT5のアーキテクチャは、このようなスクリーンキャストに最適化されているのでしょうか?新しいプログラムタイプは、そのような課題を松葉杖なしで解決できるのでしょうか?

すべてのキャッシュをコールド状態から解除し、実際のキャッシュにするには何が必要ですか?

キャッシュのウォーミングアップ
#define _CS(A) ((!IsStopped()) && (A))
#define  TOSTRING(A) #A + " = " + (string)(A) + "\n"

void OnStart()
{
  ulong FullCycle = 0;
  MqlTick Ticks[];
  
  while (_CS(true))
  {
    const ulong StartTime = GetMicrosecondCount();
    
    for (int i = SymbolsTotal(true) - 1; _CS(i >= 0); i--)
      Comment(TOSTRING(SymbolsTotal(true)) + TOSTRING(SymbolName(i, true)) +
              TOSTRING(i) + TOSTRING(CopyTicks(SymbolName(i, true), Ticks)) +
              TOSTRING(MQLInfoInteger(MQL_MEMORY_USED)) + TOSTRING(MQLInfoInteger(MQL_MEMORY_LIMIT)) +
              TOSTRING(FullCycle));
              
    FullCycle = GetMicrosecondCount() - StartTime;              
  }
}

スクリプトのCopyTicksが非同期でないこと、MQL_MEMORY_USEDが嘘であることは、スクリプトのランタイムからよくわかります。

そして何より、何かがキャッシュをつまずいている(Metaquotes-Demo)。

Market Watchで最低でも100個のシンボルを使って実行してください。

しかも、一部の文字にしかキャッシュがつかないという問題が目立ちます。他は問題ないです。

これらの文字でCopyTicksに引っかかるようです。

 
Konstantin:

1.ドキュメントに組合の 記述があるのはいつ頃ですか?

2.シンプルな 構造に置き換わるか?

3.ドキュメントで構造体について説明されているように、ユニオンの 型変換はサポートされるのでしょうか?

1.ユニオンの 追加

2.そうではなく、異なるデータ表現を得ることが可能です。

3.いいえ

 

MT5 1598

void OnStart()
{
  string Array[];
  
  ArrayInitialize(Array, "");
}

コンパイラーログ

'ArrayInitialize' - no one of the overloads can be applied to the function call Test2.mq5       5       3
could be one of 8 function(s)   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
   built-in 'ArrayInitialize'   Test2.mq5       5       3
1 error(s), 0 warning(s)                2       1

関数のシグネチャはログで確認できるのでしょうか?