"ダミー "からの質問 - ページ 85

 
AUser:

データをファイルに保存する方法を考えています。以下のようなコードを書きました。

最後の価格値のみファイルに保存されます。ある列の価格の値が欲しい。どこで間違えたのだろう?

MQL5リファレンス/ 標準定数・列挙・構造体/ 入出力定数/ ファイルオープンフラグの「読み込み・書き込みフラグを指定した場合の動作の特殊性」を参照。
 

私は本当に馬鹿です))先ほどアドバイスを聞いてコードを書き直したのですが、なぜこうなったのか理解できませんが・・・とにかく、何も変わっていません。考え方としては、ファイルに何かを書き込むための最も初歩的なプログラムであり、私はとても頭が悪いのです......)。

void OnInit()
{
double BID = SymbolInfoDouble(_Symbol,SYMBOL_BID);
int FILE = FileOpen("FILE",FILE_WRITE|FILE_CSV,'\t',CP_ACP);
FileIsEnding(FILE);
FileWrite(FILE,BID);
}
void OnDeinit(const int reason)
{
int FILE = FileOpen("FILE",FILE_WRITE|FILE_CSV,'\t',CP_ACP);
FileClose(FILE);
}

念のためですが、私はティックをファイルに保存するプログラムを書こうとして います。なぜか最後の1目盛りだけ保存されます。

 
AUser:

私は本当に馬鹿です))先ほどアドバイスを聞いてコードを書き直したのですが、なぜこうなったのか理解できませんが・・・とにかく、何も変わっていません。考え方としては、ファイルに何かを書き込むための最も初歩的なプログラムであり、私はとても頭が悪いのです......)。

念のためですが、ティックをファイルに保存するプログラムを書こうとしています。なぜか最後の1目盛りだけ保存される。

機能
FileIsEnding(FILE);

ファイルカーソルをファイルの末尾に 設定することはありません。

うまくやれば、幸せになれる。:)

 
AUser:

私は本当に馬鹿です))先ほどアドバイスを聞いてコードを書き直したのですが、なぜこうなったのか理解できません...とにかく何も変わっていないのです。考え方としては、ファイルに何かを書き込むための最も初歩的なプログラムであり、私はとても頭が悪いのです......)。

念のためですが、私はティックをファイルに保存するプログラムを書こうとしています。なぜか最後の1目盛りだけ保存されます。

これくらいがちょうどいい。

int FILE;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   FILE = FileOpen("FILE",FILE_WRITE|FILE_CSV,'\t',CP_ACP);
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   FileClose(FILE);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   double BID = SymbolInfoDouble(_Symbol,SYMBOL_BID);
   FileWrite(FILE,BID);
  }
//+------------------------------------------------------------------+
 
sergey1294:

かくありたい

その通りです、ありがとうございます))
 
ZahvatkiN:

MT4では取引を開始する前にストップロスやテイクプロフィットのレベルを設定することができますが、MT5ではできないことに気がつきました。

 
sergeev:

ZahvatkiN:

MT4では、取引を開始する前に、ストップロスとテイクプロフィットのレベルを設定できることに気づきましたが、MT5にはそれがないのですか、それとも可能ですが、違う方法なのでしょうか?


ここで話題になったのが、https://www.mql5.com/ru/forum/1111/page561
 

Hello.Code.Working TF M15.Open-Closeブロックへの遷移は新しいバーで行われます。

もし、再クオート(例えば)により、ポジションが開か れない場合、次のバーで再び開かれます。

また、エントリー基準(直前のバーのOHLCを見る)がなくなると、ポジションは開きません。

正しく理解できていますか?

ZS.おそらく、少なくとも新しい分に入ることに意味があるのでしょう。

void OnTick()
  {CopyTime (_Symbol,PERIOD_M15,0,1,time);
   if (lastbar==time[0]) return;
   lastbar=time[0];
   
  SearchForExit();
  SearchForEnter();
 
   return;
  }
 

同僚たちよ、ベンチマークを行わずとも、一目見て、どちらが速いかわかるでしょうか。履歴全体のCopyTime() を一度実行するか、いくつかのバー(履歴全体のBars()より少ないかもしれません)に対してのみ毎回呼び出し、そのうちの一つ(現在のバー)の時間だけをArrにコピーするか?

ベンチマークを振り返るのではなく、知識に基づいて論理的に推論すると、自分の答えを正当化できるのでは? ...すでにC/C++の方向性であることは理解していますが...。

 
正しいアプローチは、それぞれの課題に対して合理的に適切な深さを要求することです。また、完全な深度検索をする必要はありません。 重要なのは、履歴をいつでも非同期でダウンロードできる点です。