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

 

SRの返信が送れない。1分ほど待たされた後、終了。

 
fxsaber:

SRの返信が送れない。1分ほど待たされた後、終了。

これは新しいタイプの禁止事項です)))
 
stringo:

はい、時間順に並べました。初期エントリはバイナリサーチで探索される。

スローバイナリサーチが判明
#include <MT4Orders.mqh>

// Metaquotes-Demo, Netting, RTS-6.17, 2017.04.06 - 2017.04.07, на основе реальных тиков, начальный баланс 10000000 RUR
void OnTick()
{  
  static bool Error = false;  
  static int Type = OP_BUY;
  
  if (Error)
    return;
  
  MqlTick Tick;    

  if (OrderSelect(0, SELECT_BY_POS) && (OrderType() <= OP_SELL))
  {
    const datetime PosTime = (datetime)::PositionGetInteger(POSITION_TIME);      
    HistorySelect(PosTime, PosTime);

    OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 0);   
  }
  else if ((OrdersTotal() == 0) && SymbolInfoTick(_Symbol, Tick) && (Tick.bid != 0) && (Tick.ask != 0))
  {
    Error = (OrderSend(_Symbol, Type + OP_BUYLIMIT, 1, (Type == OP_BUY) ? Tick.ask : Tick.bid, 0, 0, 0, "", 0, 0, INT_MAX) == -1);        
    
    if (!Error)
    {
      OrderSend(_Symbol, Type + OP_BUYLIMIT, 1, (Type == OP_BUY) ? Tick.ask : Tick.bid, 0, 0, 0);
      
      Type = OP_SELL - Type;
    }    
  }
}

ピンクの線がなければ、高速に動作します。それらを使うと、(数桁)非常に遅くなるのです。各 HistorySelect(PosTime, PosTime) は、履歴から数十件以下のレコードを選びます。しかし、それでは、すべての計算資源は 何のために使われているのでしょうか?本当にこの数十枚のレコードを刻々とコピーしていくだけなのでしょうか?

 

同じEAでもテスターとリアルタイムで動作が異なるという問題にまた遭遇しました。最初は、複雑なインジケーターのせいかと思いました。そして、内蔵のBandsに接続してみました。このような問題は見たことがありません。

私は非常に優れたExpert Advisorを持っており、それは非常によく動作します。

OnInit - インジケーターハンドルを取得する

OnTick - 分析(バッファへのコピー)と取引

OnDeinit - ハンドルを解放します。

試しに以下のようにしてみました。スキームに従ってリアルタイムにアルゴリズムを修正する。

OnTick - インジケータハンドルを取得し、分析(インジケータバッファにコピー)し、取引、 私はハンドルを解放 します。

そして、なんと!すべてがテスターと一致し始めた !

それは何ですか?バグ?それとも別の何か......。

 
Alexey Kravchenko:

何ですか?バグでしょうか?それとも別のものなのか......。


多通貨対応のインジケーターですか?
 
Sergey Dzyublik:

多通貨対応のインジケーターですか?
スタンダード バンドのインジケーター です。EA Multicurrency。
 
比較するオプションの1つが他の通貨ペアを更新しないことがあります。
そして、そのために、異なる結果が得られるのです。
 
Sergey Dzyublik:
おそらく、比較しているオプションの1つが、他の通貨ペアのデータを更新しないのでしょう。
これが、結果が異なる理由です。

では、このアップデートは、端末 自身が正しく行うべきなのですね。

私が扱うすべてのシンボルのOnInitでハンドルを取得し、必要なすべての時間枠を同期させます。新しいバーができたときだけ加工しています。私のExpert Advisorは「left」マークで起動します :-)

これはポイントではなく、トリガーという点ではリアルタイムと差がないはずです。

それに、インジケーターハンドルを毎回取らないと正常に動作しないとしたら、論外です...。

 
Alexey Kravchenko:

このアップデートは、端末 自身で正しく行う必要があるのですね。
また、すべてを正しく動作させるためには、毎回インジケーターハンドルを取得する必要があるとしたら、これは論外です......。


このスレッドの回答、特に開発者の回答をご覧ください、もしかしたら参考になるかもしれません。
https://www.mql5.com/ru/forum/190003

 

皆さん!全く書けなかったことを深くお詫びします。でも、大至急と言われるように、助けが必要なんです。

ターミナルエラーが発生し、カスタムインジケータやExpert Advisorの接続ができなくなりました。

このようなログ

2017.04.20 18:18:59.764 Custom Indicator AD (@Si,H1) の読み込みに失敗しました。

これは、初期インストールを更新した後に表示されるExamplesフォルダのカスタムインジケータです。

それ以外のカスタムやインジケーター、EAなどは全て読み込みが止まっています。突然ですが!(以前は動作し、テストして取引されていた)

以前にも同じようなことがあった方がいらっしゃると思います。

修正方法はありますか?

本題に入ります。

2017.04.20 18:48:00.931 Experts ExpertMACD (@Si,H1) の読み込みに失敗しました。

2017.04.20 18:48:42.786 Experts ChartInChart (@Si,H1) の読み込みに失敗しました。


フィーリングは)道が見つからないような...。

何を見落としているのだろう?

プラットフォームの位置を変更。AppsData/.../Terminalのフォルダを消去してから再インストール。同じ軸の別のコンピュータ(W2008RC2)では、すべて動作します。

ありがとうございます、ビルドを確認しました。

本当に回答...そしてアドバイスを楽しみにしています。何をするのか

2017.04.21 10:53:54.329 Terminal MetaTrader 5 x64 build 1583 開始 (MetaQuotes Software Corp.)

2017.04.21 10:53:54.329 Terminal Windows Server 2008 R2 Enterprise (x64 ベース PC), IE 08.00, UAC, Intel Core i5.

2017.04.21 10:53:54.329 Terminal C:\Users\Администратор\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

2017.04.21 10:55:07.320 Experts MACD Sample (EURUSD,H1) の読み込みに失敗しました。

2017.04.21 10:55:45.669 Custom Indicator AMA (EURUSD,H1) の読み込みに失敗しました。