どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 410

 
Trader7777:
もう一つの質問ですが、テスターでエラー138(ERR_REQUOTE)が表示されますが、どういう意味ですか? 。
テスターにリクオートがないことを意味します。取引注文に エラーがあることを意味します。ほとんどの場合、マーケット1をペンディングで開こうとしているのではないでしょうか。
 
artmedia70:
これは、テスターにリクオートがないことを意味します。取引注文にエラーがあることを意味します。ほとんどの場合、成行注文を保留として開こうとしています。 。

いいえ、保留中の注文は ありません。リクオートとは何ですか?
 
Trader7777:
いいえ、保留中の注文はありません。リクオートとは何ですか?
成行でポジションを持とうとする際に、許容されるスリッページを超えて価格が動いてしまうことです。テスターでは表示されないので、BidやAskではなく、未知の価格でポジションを 持とうとしていることになります。
 

こんにちは、ファイルへのデータ書き込みについて質問です。

FILE_READ|FILE_WRITEモードで、ファイルに書き込もうとすると、古いファイルの上に書き込まれ、追記されないのはなぜか、教えていただけませんか。

つまり、もし書き込むべきイベントが最後のソビエトの実行中に、前のソビエトの実行中よりも少なく発生したならば、最後以外の実行の残りはファイルの終わりにぶら下がるでしょう。

file_log = "expert_" + magic_number + "_log.csv";
handle_log = FileOpen(file_log, FILE_CSV|FILE_READ|FILE_WRITE, ',');
if(handle_log < 0)  {
  Alert("Ошибка при открытии файла ", file_log, "Возможно, файл занят другим приложением.");
  PlaySound("alarm.wav");
}
else  {
  if(FileWrite(handle_log, "time", "ticket", "type", "openprice", "stoploss", "takeprofit", "lot", "closeprice", "effect_points", "деньги советника") < 0  ||    // это заголовки
      FileWrite(handle_log, TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS), "Советник открыт с параметром delta=", delta) < 0)  {   // для отраж-я возмож. изм-я параметра при рестарте
    Alert( "Ошибка записи в файл ", file_log, " ошибка-", GetLastError() );
    PlaySound("alarm.wav");
  }
}

ファイルが開かれ、initで最初のレコード(上図)が作られる。 開始時に、イベントに従って作業レコードが順番にファイルに追加されます。 deinitでファイルを閉じます。

 
yan720:

こんにちは、ファイルへのデータ書き込みについて質問です。

FILE_READ|FILE_WRITEモードにおいて、ファイルに書き込もうとすると、古いファイルに上書きされ、追記されないのはなぜか教えてください。

つまり、もし書き込み可能なイベントが最後のSovietの実行中に、前の実行中よりも少なく発生したならば、最後以外の実行の残りは、ファイルの終わりにぶら下がるでしょう。

ファイルが開かれ、initで最初のレコード(上図)が作られる。 開始時に、イベントに従って作業レコードが順番にファイルに追加されます。 deinitでファイルを閉じます。

ファイルオープン関数のオプションは2つしかないはずですが、「FILE_CSV|FILE_READ|FILE_WRITE」と3つありますね。

ファイルを閉じる機能がないため、データが保存されないのですね。

そして最後には、新規に追加する際に一番最後に移動するためのレコードカーソルを追加することができます

 
yan720:

こんにちは、ファイルへのデータ書き込みについて質問です。

FILE_READ|FILE_WRITEモードで、ファイルに書き込もうとすると、古いファイルの上に書き込まれ、追記されないのはなぜか、教えてください。

つまり、もし書き込むべきイベントが、最後のソビエトの実行中に、前のソビエトの実行中よりも少なければ、最後以外の実行の残りは、ファイルの末尾にぶら下がることになります。

ファイルが開かれ、initで最初のレコード(上図)が作られる。開始時に、イベントに従って作業レコードが順番にファイルに追加される。deinitでファイルを閉じます。


ファイルの末 尾まで書き込んでみましたか?
 
Vinin:

ファイルの末尾まで行って書き込んでみましたか?

うーん...。なるほどね...。:)ありがとうございます。

でも、どうやって......?言語の ファイル関数の 説明にはありませんでしたね。while(!FileIsEnding(handle_log)) を通してその中にあるものをすべて読むか、それとももっと「直接的」な方法があるのでしょうか?

 
yan720:

うーん...。なるほどね...。 :) ありがとうございます。

どうやって......?言語のファイル関数の説明には、そのようなことは書かれていませんでした。while(!FileIsEnding(handle_log)) 経由でその中のすべてを読むか、それとももっと「直接的」な方法があるのか?


ファイルシーク(FileSeek)
 

ありがとうございます。
 
yan720:

うーん...。なるほどね...。:)ありがとうございます。

でも、どうやって......?言語のファイル関数の説明にはありませんでしたね。while(!FileIsEnding(handle_log)) を通してその中のすべてを読み取る、より「直接的」な方法はあるのだろうか。


すごいな...。確かに問題が解決してよかったのですが、なぜか私のメッセージに気づかず、同じことを少し違う言葉で言って、すぐに不具合について伝えたところ、ファイルを閉じる 以外は、どこで起こるのかすぐにわかりませんでした:)