MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 503

 
Vitaly Muzichenko:

見事に機能します!

2つのポジションから、最後の1つ、つまりスクリーンショットにあるように11本目のバーを選びました。


バリデーションコード

私はポジションを入力する条件を変更することを決めた、ちょうどLow[2]にLimitを設定すると動作しましたが、私の最初の呼び出しで今日のように条件が、それは動作しませんので、それは関数が呼び出される 前に条件そのものにある

 
Вадим Мотеюнас:

私はポジションを入力するための条件を 変更することにしました、ちょうど Low[2]にリミットを設定 すると、それが動作しましたが、今日の私の最初の呼び出しのように条件が、それは動作しませんので、問題は関数を呼び 出す前に条件そのものであること

注文を設定したのはあなたであり、ポジション(買い、売り)へのエントリーではありません。

なるほど、それはいいことですね。

 
Vitaly Muzichenko:

注文を設定したのはあなたであり、ポジション(Buy, Sell)へのエントリーではありません。

よし、わかったぞー、だからいいんだ。

最初にエントリーする条件として、if(Open[2]>Close[2] && Open[1]>Close[1] && Close[1]<Low[2]) があったということです。

で、この関数を呼んでバーインデックスを返していたのですが、今はそれを削除してOrderSendに Low[2]を入れたら動くようになりました。

結局、一日も無駄にせず、死点から少しずらしながら

 
問題を克服しました。皆さん、ご意見ありがとうございました。
 
if(takelimit=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(takelimit,GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1)
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Comment(GetLastError());
         }
 
Вадим Мотеюнас:

1 と 1 かもしれない /true とエラーコード 1 です。

ERR_NO_RESULT1エラーは発生しないが、結果は不明
bool takelimit;

if(takelimit=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(string(takelimit)+"   :",GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1)
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Comment(GetLastError());
         }
 
Вадим Мотеюнас:

あなたのコード全体が間違っています。

bool takelimit;

if(takelimit?=OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
      Print(string(takelimit)+"   :",GetLastError());//здесь возвращает число 11, получается ошибка код 11, но не нашел расшифровку нигде?
      {if(iBarShift(Symbol(),0,OrderOpenTime())==1) // <<< что это, почему сравнивать с единицей? OrderOpenTime() может вернуть "1"???
        
      deletelimit=OrderDelete(ticket);
      if(!deletelimit)
         Com
 
Vitaly Muzichenko:

あなたのコード全体が間違っています。

バー番号と時刻を 照合しています。

int ticket;

void Fn()
  {
   ResetLastError();
   if(!OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)){Print(GetLastError());}
   else
     {
      if(iBarShift(Symbol(),0,OrderOpenTime())==1 && !OrderDelete(ticket)){Comment(GetLastError());}
     }
  }
 
Nikolay Gaylis:

バー・ナンバーと時間を照らし合わせる。

はい、ブラケットに気づきませんでした。

 
Nikolay Gaylis:

そこで時間ごとにバーの番号をチェックするのですが...。

ニコライ・ゲイリス

1 と 1 かもしれない /true とエラーコード 1 です。

ERR_NO_RESULT1エラーは発生しないが、結果が不明である

Print(takelimit,GetLastError()) は、1番目の変数がbool型なのでGetLastErrorを必要とせず、カンマがあるのでGetLastErrorはGetLastErrorを呼び出した瞬間のコードの最後のエラーを返すので2値を返しますか?