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

 

どこに間違いがあるのか、私にはわからない。

Op.

ファイル:
5system2.mq4  8 kb
 
CJIeCaPb:

どこに間違いがあるのか、私にはわからない。

Ope.

while(O==3)ループで何かがおかしい

 
CJIeCaPb:

while(O==3)ループで何かがおかしい

ふぅ...。それだ、わかったぞ。終了後、チケットは削除され、注文を再実行する必要がある
 
こんにちは!これは問題です、私はファイルを開く ことができません。異なるファイル拡張子を試してみましたが、無駄でした。ファイルはファイルサンドボックスにあります。ハンドルにこだわるが、その理由がわからない。以下はそのコードです。
   int filehandle=FileOpen("test.txt",FILE_TXT|FILE_WRITE,";");
   if(filehandle<0)
   Alert("ошибка ",GetLastError());                          //Для проверки handle

 
 int filehandle=FileOpen("test.txt",FILE_WRITE|FILE_TXT,";");
 
evillive:
セパレーター無しで試したがダメだった。
 
Kapizdo4ka:
こんにちは、私はこの問題があります、私はファイルを開くことができません。異なるファイル拡張子を試しましたが、使用できず、エラー5004が表示されるだけです。ファイルはファイルサンドボックスにあります。ハンドルにこだわるが、その理由がわからない。以下はそのコードです。

ファイルが共有フォルダーにあることを指定してみてください。

ファイルオープンフラグ

ファイルがどのように処理されるかを定義するフラグの値。フラグは以下のように定義される。

識別子

価値

商品説明

FILE_READ

1

ファイルが読み出し用にオープンされる。このフラグは、ファイルを開く(FileOpen())ときに使用される。FILE_WRITEおよびFILE_READは、ファイルを開くときに設定する必要があります。

FILE_WRITE

2

ファイルを書き込み用にオープンする。このフラグは、ファイルを開く(FileOpen())ときに使用される。ファイルをオープンするときは、FILE_WRITE および/または FILE_READ フラグを設定する必要があります。

FILE_BIN

4

バイナリーリードライトモード(文字列との変換なし)。このフラグは、ファイルを開く(FileOpen())ときに使用します。

FILE_CSV

8

csv型のファイル(書き込まれたすべての項目は、ユニコードまたはアンシという適切な型の文字列に変換され、セパレータで区切られます)。このフラグは、ファイルを開く(FileOpen())際に使用されます。

FILE_TXT

16

単純なテキストファイル(csvと同じ、ただしセパレータなし)。このフラグは、ファイルを開くとき (FileOpen()) に使用されます。

ファイル・アンサー

32

ANSI文字列(半角文字)。このフラグは、ファイルを開くとき (FileOpen()) に使用されます。

FILE_UNICODE

64

UNICODE文字列(2バイト文字)。このフラグは、ファイルを開くとき (FileOpen()) に使用されます。

ファイル共有読み込み

128

複数のプログラムによる共有の読み取りアクセス。このフラグは、ファイルを開くとき(FileOpen())に使用されるが、ファイルを開くときのFILE_WRITEおよび/またはFILE_READの必要性の代用にはならない。

ファイル共有書き込み

256

このフラグは、複数のプログラムによる書き込みアクセス共有のために使用されます。このフラグは、ファイルを開く(FileOpen())際に使用されるが、ファイルを開く際にFILE_WRITEおよび/またはFILE_READの必要性を代替するものではない。

FILE_REWRITE

512

FileCopy() およびFileMove() により、ファイルを上書きすることができる。ファイルが存在するか、書き込み可能である必要があります。それ以外の場合は、ファイルを開きません。

ファイル_COMMON

4096

全クライアント端末の共有フォルダのファイルの場所 。このフラグは、ファイルを開くとき (FileOpen()) 、ファイルをコピーするとき (FileCopy(),FileMove()) 、およびファイルの存在を確認するとき (FileIsExist()) に使用されます。

ファイルを開くときに1つ以上のフラグを指定することができ、この組み合わせをフラグの組み合わせという。フラグの組み合わせは、列挙されるフラグの間に置かれる論理和(|)演算符号を用いて記述される。例えば、CSVファイルを開いて読み込みと書き込みを同時に行うには、FILE_READ|FILE_WRITE|FILE_CSVの組み合わせを指定します。

 
Vinin:

ファイルが共有フォルダーにあることを指定してみてください。

ファイルオープンフラグ

ファイルを開く方法を定義するフラグの値。フラグは以下のように定義される。

識別子

価値

商品説明

FILE_READ

1

ファイルが読み出し用にオープンされる。このフラグは、ファイルを開く(FileOpen())ときに使用される。FILE_WRITEおよび/またはFILE_READは、ファイルを開くときに設定する必要があります。

FILE_WRITE

2

ファイルを書き込み用にオープンする。このフラグは、ファイルを開く(FileOpen())ときに使用される。FILE_WRITE フラグは、ファイルを開くときに設定する必要があり、FILE_READ フラグは、ファイルを開くときに設定する必要があります。

FILE_BIN

4

バイナリーリードライトモード(文字列との変換を行わない)。このフラグは、ファイルを開く(FileOpen())ときに使用します。

FILE_CSV

8

csvファイル(書き込まれたすべての要素は、適切なタイプ、unicodeまたはansiの文字列に変換され、デリミタで区切られます)。このフラグは、ファイルを開くとき (FileOpen()) に使用されます。

FILE_TXT

16

単純なテキストファイル(型は同じだが、デリミタは無視される)。このフラグは、ファイルを開く(FileOpen())際に使用されます。

ファイル・アンサー

32

ANSI 型の文字列(半角文字)。このフラグは、ファイルを開くとき (FileOpen()) に使用されます。

FILE_UNICODE

64

UNICODE文字列(2バイト文字)。このフラグは、ファイルを開くとき (FileOpen()) に使用されます。

ファイル共有読み込み

128

複数のプログラム間でリードアクセスを共有。このフラグは、ファイルを開くとき(FileOpen())に使用されるが、ファイルを開くときに FILE_WRITE および/または FILE_READ を指定することの代わりとなるものではない。

ファイル共有書き込み

256

このフラグは、複数のプログラムで共有する書き込みアクセス用です。このフラグは、ファイルを開く(FileOpen())際に使用されるが、ファイルを開く際に FILE_WRITE および/または FILE_READ フラグを指定する必要性の代わりとなるものでは ない。

FILE_REWRITE

512

FileCopy() およびFileMove()は、ファイルの上書きに使用することができます。ファイルが存在するか、書き込み可能である必要があります。それ以外の場合は、ファイルを開きません。

ファイル_COMMON

4096

全クライアント端末の共有フォルダー内のファイルの場所 。このフラグは、ファイルを開くとき(FileOpen())、ファイルをコピーするとき(FileCopy(),FileMove()) 、およびファイルの存在を確認するとき(FileIsExist()) に使用される。

ファイルを開くときに、1つ以上のフラグを指定することができ、この組み合わせをフラグの組み合わせという。フラグの組み合わせは、リストされたフラグの間に置かれる論理和(|)を用いて記録される。例えば、CSVファイルを開いて読み込みと書き込みを同時に行うには、FILE_READ|FILE_WRITE|FILE_CSVの組み合わせを指定します。

ありがとうございました。しかし、その答えはもっと単純なものであった。全ては新ビルドでの変更のためです。FileOpen関数は、従来のint型ではなく、uint型を指定しなければならないことが判明しました。
uint filehandle=FileOpen(filename,FILE_TXT||FILE_WRITE,"\r\n");

そして、エラーが発生した場合、この関数は -1 の代わりに 0 を返すようになりました。

 

簡単なトレイリングストップをスケッチしました。 bez_Level - トレイリングスタートのレベル(pips単位)。TrallStep - 末尾のステップ。Magic - マジック数です。

問題は、EAが複数の注文を開いたとき、最初の注文だけがトリルされることです。そして、1次が終了すると、2次がトリルを開始する。エラーメッセージが表示されない。自分の悪いところを探そうとしても無理です。ありがとうございます...

int lim=OrdersTotal()-1;

for(int i=lim; i>=0; i--)
{
if(bez_Level>0)
{
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(オーダータイプ()==OP_SELL)
{
{ if((注文開始価格()-Ask)>(Point*bez_Level))である。
{
if((OrderStopLoss()>(Ask+Point*bez_Level)+(Point*TrallStep)) || (OrderStopLoss()==0)))
{
//--- 注文の変更と終了
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*bez_Level,OrderTakeProfit(),0))
Print("末尾のエラー",GetLastError());
}
}
}
if(OrderType()==OP_BUY)
{
if((ビッドオーダーオープンプライス()>ポイント*bez_レベル))
{
if(OrderStopLoss()<Bid-(Point*bez_Level)-(Point*TrallStep))とする。
{
//--- 修正オーダー
if(!OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*bez_Level,OrderTakeProfit(),0))
Print("末尾のエラー",GetLastError())
}
}

}

}
}
}
 

みんな、どんなコツがあるんだ?なぜ、イニータから出ないのですか?

なぜスタート地点にエントリーがないのか?

int init()
 {
   if(init_data()==false)error=true;
   if(error==false)load_data();
   if(error==false)count_data();
   //if(error==true)Print("---------->>>>>>> ERORR!!! <<<<<<<<<--------------");
   setparam();
   Print ("Инит завершён успешно");
   return (0);
 }

int start()
{
  // if(iTime(Symbol(),0,0) == prevtime) return(0);    //ждем нового бара
 //  prevtime = iTime(Symbol(),0,0);                   //если появился новый бар , включаемся    
   Print (" Старт после нового бара"); 
...