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

 
novator:
こんばんは、1つのEAで複数のメディエを使用することは可能でしょうか?

こんばんは。

はい、そうです。

 
Integer:

あら、気が大きくなっているわね。そして、「こんなソースブックはいらない」と公言してから、スイッチが入りました。私には必要ない、価値もないと思っていますが、ヴァディミさんにとっては大きな誇りなんですね。もう一度念を押しておきますが、しがみついてるのがおかしいだけですよ・・・。それを旗のように頭上に掲げているのです。


ディミトリ、ヴァディムと議論するのはやめてくれ。シーカーを誘導するのがいいんだろうけど :)ここ数日、図書館と格闘しています。この発言のプレッシャーで、私の疑問はどんどん遠のいていく...。

ここはペニスの計測をする場ではなく、問題を議論する場なのです。どちらが賢いかは、私たちが決めることではありません。

 
hoz:


ディミトリ、ヴァディムと議論するのはやめてくれ。正しい道を探している人たちを導くのが良いのでしょう :)ここ数日、図書館と格闘しています。この発言のプレッシャーで、私の疑問はどんどん遠のいていく...。

ここはションベン大会じゃなくて議論スレッドなんだよ。どちらが賢いかは、私が決めることではありません。


見てきました。よくできた質問は、解決策の半分です。インリュードは輸入 品ではありません。接続されていないようなファイルから、何らかの関数を呼び出してみてください。そこに書かれていることは、必要がないかもしれない、それは注意を払うに値しない。
 
Integer:

見た。よくできた質問は、解決策の半分です。インリュードは輸入品ではありません。接続されていないようなファイルから、何らかの関数を呼び出してみてください。そこに書かれていることは、必要がないかもしれない、それは注意を払うに値しない。

というわけで、明日にでもかけてみようと思います。デバッガがないので、この作業にどのようにアプローチしたらいいのかわからない。エラーもない。そして、フクロウは動かない。何も印刷されない。とにかく、明日試してみて報告します。
 
novator 2013.11.24 19:37#.
こんばんは、1つのEAで複数のメジを使用することは可能でしょうか?
できます。
 

なぜうまくいかないのか

   int handle;
   handle=FileOpen("openorder.csv",FILE_CSV|FILE_READ|FILE_WRITE,"\n");
   if(handle>0)
     {
      FileWrite(handle,open_price_order,"\n");
      FileClose(handle);
     }
 
itum:

なぜうまくいかないのか


CSVファイルの標準的なデリミタは、改行ではなく、カンマなどの文字がデリミタとして設定されているようです。また、CSVからデータを文字列として読み込む場合、文字列のどこかにデリミタではないカンマがあると、文字列全体をクォートでマークする必要があります。

ここでは、その様子をご紹介します。

DateTime,Name,Country,Volatility,Actual,Previous,Consensus
"20131125 09:00:00", "Nationwide house price index (y/y)", "UK ", "2", "", "5.8%", "6.0%".

ファイルの最初の行はカンマで区切られた値で構成されています。普通に読めます。2行目は、すべてのデータを逆カンマで囲んでいるが、区切り文字としてカンマも使っている。しかし、5.8%の行ではカンマがデリミターになっていないものがある。この行は必ず逆カンマで囲んでください。さて、このコードでは、文字列の最初と最後にある余分な逆カンマを削除しなければなりません。その際、次のようなことを行っています。

   DatTim=FileReadString(handle);StrTrim(DatTim);if(DatTim !="DateTime") err=1;else{
    Name=FileReadString(handle);StrTrim(Name);if(Name !="Name") err=1;else{
     Country=FileReadString(handle);StrTrim(Country);if(Country !="Country") err=1;else{
      Volatility=FileReadString(handle);StrTrim(Volatility);if(Volatility !="Volatility") err=1;else{
       Actual=FileReadString(handle);StrTrim(Actual);if(Actual !="Actual") err=1;else{
        Previous=FileReadString(handle);StrTrim(Previous);if(Previous !="Previous") err=1;else{
         Consensus=FileReadString(handle);StrTrim(Consensus);if(Consensus !="Consensus") {err=1;}}}}}}}

ファイルヘッダの解析です。私のコードにあるStrTrim(DatTim)関数は、行頭と行末に不要な引用符がある場合に、それを削除するだけです。あとは、ファイルを読み込んで、文字列から必要な形式にデータを変換するだけです。しかし、すべてはCSVファイルの中身に依存しますが。CSVに文字列がある場合は、原則として問題なく動作します。

FileReadString( int handle, int length=0) およびFileOpen( string filename, int mode, intdelimiter=',') を参照ください。

 

やりたいことは、注文の始値を CSVに書き出すだけです。どうすればいいのか?

 
itum:

やりたいことは、注文の始値をCSVに書き出すだけです。どうすればいいのでしょうか?



それなら正しいようです。


handle=FileOpen("openorder.csv",FILE_CSV|FILE_READ|FILE_WRITE,",")。

FileSeek(handle,0,SEEK_END);// これは既存のファイルに追加する場合です。

FileWrite(handle,open_price_order)を実行。

私は逆にCSVを読んでいました。セパレーターに"Ⓐ"を付けないでください。各FileWriteの後に追加されます。や「;」を入れる。そして、Excelを開くと、あるいは誰であろうと、区切り記号を入力するように要求されます。動作するはずですが、テスターで確認する時間がありません...。FileWrite(handle,open_price_order); では1行挿入されますが、FileWrite(handle,open_price1_order, open_price2_order ); では1行のままで、oppenpriceの間にセパレータが挿入されるからです。その後FileWriteを呼び出すと、ファイル内の行が新しくなります。

 
こんにちは。
MT4についてです。
EAが月曜日から金曜日まで取引し、金曜日は23時間未満となるように、一週間の日数を設定する方法をどなたか教えてください。

もし私が間違っているとしたら、それはいくつかのアルゴリズムのテストにおいて、テストの開始日に影響を与えるような特殊性があることに気づいたからです。
ありがとうございました。