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

 

この問題を解決する方法を教えてください。
テスターでExpert Advisorを最初に実行した後(Read=false)、統計情報を含むcsvファイルが作成されます。
int OnInit()内に以下のコードを記述します。

  ResetLastError();
  if(Read)
  {
    filehandle=FileOpen(FileName,FILE_READ|FILE_CSV);
  }
  else
  {
    filehandle=FileOpen("razdvigka.csv",FILE_WRITE|FILE_CSV);
  }
作成されたファイルはtesterAgentMQL5Filesというディレクトリに格納されます。

ただし、2回目の実行時 (Read=true)。このファイルからデータを読み取る必要があるのですが、ファイルが削除されています。

 
Vitya:

この問題を解決する方法を教えてください。
テスターでExpert Advisorを最初に実行した後(Read=false)、統計情報を含むcsvファイルが作成されます。
int OnInit()内に以下のコードを記述します。

作成されたファイルはtesterAgentMQL5Filesというディレクトリに格納されます。

ただし、2回目の実行時 (Read=true)。このファイルからデータを読み取る必要があるのですが、ファイルが削除されています。

この場合、FILE_COMMONの フラグでファイルを作成する必要があります。端末の 共有フォルダーに ファイルが作成されます。
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5
 
tol64:
この場合、FILE_COMMONの フラグでファイルを作成する必要があります。端末の 共有フォルダーに ファイルが作成されます。
filehandle=FileOpen(FileName,FILE_READ|FILE_CSV|FILE_COMMON);
ありがとうございます。
把握しました。
削除済み  
Rosh:
ChartIndicatorAddを チェックアウトする。
ありがとうございました。
 
Servicedesk、アプリケーション#359447は手探りですか、それとも無駄な努力をしましたか?
 
x100intraday:
Servicedesk、アプリケーション#359447は手探り状態なのか、それとも何もしていないのか?
いろいろな議論が交わされていますね。しかし、まだ答えは出ていない。
 

これがインジケータと仮定した場合)、初回は日付が表示されますが、次のチャート上の設定(2枚目、3枚目)では日付は表示されません。

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
    Print(TimeCurrent());
   
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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 &TickVolume[],
                const long &Volume[],
                const int &Spread[])
{
  
  
  
  return(rates_total);
  
}
 
Karlson:

これがインジケータだと仮定すると)、初回は日付を表示しますが、チャートの次の設定(2枚目、3枚目)では日付を表示しません。

これで、インジケータの計算部分が遅れてmql空間から削除されるようになりました。

同じインディケータを(同じパラメータで)異なる(しかし同じシンボル/タイムライン)チャートに適用する場合、再初期化は行われません。

最後のコピーを削除した後、タバコを吸いに行った場合、起動時に再初期化が行われます。

そんな最適化の副作用。:)

注:喫煙は健康に悪いです

;)

削除済み  

プログラマーの皆様へ。

mql5のプログラムコードの中で、最も速度に影響を与えるものは何か、教えてください。問題は、自分でプログラムを作ってコード量を増やしていくうちに、速度が著しく低下してしまうという事実に直面したことです。ただし、Advisors および Examples フォルダにある、よりコード集約的な標準 Expert Advisors の方がはるかに高速です。

一般的に、フォーラムでのコード構造をより良くフォーマットする方法についての記事や説明はないのでしょうか?初心者のプログラマーに アドバイスをお願いします。ありがとうございました。

 
Alex5757000:

プログラマーの皆様へ。

mql5のプログラムコードの中で、最も速度に影響を与えるものは何か、教えてください。問題は、自分でプログラムを作ってコード量を増やしていくうちに、速度が著しく低下してしまうという事実に直面したことです。ただし、Advisors および Examples フォルダにある、よりコード集約的な標準 Expert Advisors の方がはるかに高速です。

一般的に、フォーラムでのコード構造をより良くフォーマットする方法についての記事や説明はないのでしょうか?初心者のプログラマーにアドバイスをお願いします。ありがとうございます。

IMHOでは、ネストされたループが最も速度に影響すると考えています。ループの入れ子は3つ目までが実質的な限界で、それ以上はループの大きさに十分注意する必要があります。私のP4を例にとると、3Hzで動いていて、1秒間に〜10k回の演算が可能です。

この数値は、1000x1000x10の3回の入れ子サイクルを1秒で実行することを意味し、3回目のサイクルを100に増やすと10秒になると理解すればよいだろう。