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

 
君からどれだけ離れているか
 
の人、ターミナルのグラフを、再度スイッチを入れた後にマークアップを保存するようにするにはどうしたらいいか教えてください。
csv形式で保存したが、うまくいかなかった
 
Seselio:

Есть условие для открытия ордера BUY. Открывается ордер, как сделать переход к SELL условию после закрытия BUY ордера?

if(High[1]-Close[1]>=NormalizeDouble(xbs1*_Point,_Digits))
   {
    int b_tik=OrderSend(_Symbol,OP_BUY,Lots,Ask,Slip,Low[2]-sl,High[1]+ tp,"",Magic,0,clrBlue)==true; //открытие ордера
      
       GlobalVariableSet("B_order",0); // Больше не ищем вход Buy

       //-----?????
       GlobalVariableSet("S_order",1); // Переходим к поиску Sell
       return;
   }
Baiと全く同じです。ここでのあなたの論理は、Baiにとっても不完全なもので、そうであるべきだと思います。
if(GlobalVariableGet("B_order",1)) //ищем  вход Buy
if(High[1]-Close[1]>=NormalizeDouble(xbs1*_Point,_Digits))
   {
    int b_tik=OrderSend(_Symbol,OP_BUY,Lots,Ask,Slip,Low[2]-sl,High[1]+ tp,"",Magic,0,clrBlue)==true; //открытие ордера
      
       GlobalVariableSet("B_order",0); // Больше не ищем вход Buy

       //-----?????
       GlobalVariableSet("S_order",1); // Переходим к поиску Sell
       return;
   }
else if(GlobalVariableGet("S_order",1))// ищем  вход Sell
{Условие для SELL}
 

このバグには全く困惑しています、書き始めたらあっちに行ったりこっちに行ったりして。短く

質問:Alertを使ったデモで動作確認をしたのですが、EAで意図的に間違った注文を出そうとしたら、エラーコード4051が出ました。 つまり、注文を出す前と出した後にこの関数GetLastError()をセットしています。EA起動から1ティック、Error call--> 0 --> 間違った条件で注文を出そうとした --> Error call--> 4051、2ティックが発動した時点で既に最初のコールが4051を表示しており、私がEAを処理するまでそれ以上リクエストを送信しない、というのが私の入手方法です。GetLastError()関数は、ターミナルまたはサーバーから最後のエラーを呼び出し、それをリセットする方法を教えてください。 つまり、例えば「一般エラー」コード2の場合、5分後にサーバーが正常に動作すると、エラーがないことをサーバーに通知されます。要するに、この論理で混乱した、できる人は助けなさいということです。最近ここに来たと思ったら、勘違いしていた。

Справочник MQL4
Справочник MQL4
  • docs.mql4.com
Справочник MQL4
 
Evgeniy Oshurkevich:

このバグには全く困惑しています、書き始めたらあっちに行ったりこっちに行ったりして。短く

質問:Alertを使ったデモで動作確認をしたのですが、EAで意図的に間違った注文を出そうとしたら、エラーコード4051が出ました。 つまり、注文を出す前と出した後にこの関数GetLastError()をセットしています。EA起動から1ティック、Error call--> 0 --> 間違った条件で注文を出そうとした --> Error call--> 4051、2ティックが発動した時点ですでに最初のコールが4051を表示しており、EAの処理が終わるまでそれ以上リクエストを送らない、というのが私の入手方法です。GetLastError()関数は、ターミナルまたはサーバーから最後のエラーを呼び出し、それをリセットする方法を教えてください。 つまり、例えば「一般エラー」コード2の場合、5分後にサーバーが正常に動作すると、エラーがないことをサーバーに通知されます。要するに、この論理で混乱した、できる人は助けなさいということです。最近ここに来たと思ったら、勘違いしていた。

ResetLastError()関数でエラーをリセットしてみてください。
 
Alekseu Fedotov:
ResetLastError()でエラーをリセットしてみてください。
ありがとうございました。
 

例外!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!親愛なる皆様へ初心者に嫌がらせされても驚かないように!!!での検索エンジンはどうしたんだ?私は2週間前からここにいるある種の専門家ですが、検索エンジンでOrderSend() について調べようと思ったときの私の顔を見るべきだったでしょう!!!!新人がかわいそうさて、アドレスバーで5ではなく4に変更したのですが、そこで認証されず、エンターキーを押したらmql5に戻りました。Mql4にログインしていない場合、検索エンジンが動作しないのですが。

また、フォーラムでは、多くの賢い人が「何のための検索エンジンなのか」「検索エンジンで調べろ」「我々はちょっと怠け者だ」などと書いていますが、悪気はありません。

 

ドキュメントでは

GetLastError

システム変数_LastError の内容を返します。

intGetLastError()。

戻り値

mql4プログラムの実行中に発生した最後のエラーの 値を返します。

注.

この関数が呼ばれた後、変数_LastErrorの内容はクリアされます。


LastErrorは0にクリアさ れることが注意書きに明記されています。

それでは、_LastErrorについて詳しく見て いきましょう

int _LastError

変数_LastErrorには、mql4プログラムの実行中に発生した最後のエラーの 値が格納されます。ResetLastError()関数は、値をゼロにリセット することができます。

また、GetLastError() 関数を使用して、エラーコードを取得することもできます。


ResetLastError()関数で値をゼロに 戻すことができる、と書かれています_LastError resets itself to zero と書いてあるのに、 なぜリセットする必要が あるのでしょうか?

OK、ResetLastError() を読み続けてください。

ResetLastError

変数 predefined_LastError の値を 0 に設定する。

voidResetLastError()。

戻り値

戻り値なし。

備考

GetLastError() は、変数_LastError をクリアする。

GetLastError()関数は変数_LastErrorをクリアする

では、なぜResetLastError(); が必要なのでしょうか?

また、GetLastError()の2回目の呼び出しの後に0がある場合、どのようなエラーが発生したかを後で知ることができますか?なぜなら、_LastErrorが クリアされるからです。

ちなみに、今のデモではGetLastError() はtick毎に同じエラーを表示し、リセットされません。

つまり、1tick目に同じエラーが発生し、2tick目に私のEAはすでに前回のエラーを見ているので、オープン要求を送信しない

昨夜はちょっと寝てしまった。大晦日以来、酒を飲んでいないのだ。



_LastError - Предопределенные переменные - Справочник MQL4
_LastError - Предопределенные переменные - Справочник MQL4
  • docs.mql4.com
_LastError - Предопределенные переменные - Справочник MQL4
 
Evgeniy Oshurkevich:

ドキュメントでは

GetLastError

システム変数_LastError の内容を返します。



MT4のドキュメントが古く、まだ修正されていないことがたくさんあるので、今は通常のMT5のドキュメントを読んで、古い関数が書かれている通りに動くようにしてください。

GetLastError

システム変数_LastError の内容を返します。

intGetLastError()。

戻り値

mql5プログラムの実行中に発生した最後のエラーの値を返す。

備考

この関数が呼び出された後、変数_LastErrorの内容はクリアされません。この変数をゼロにリセットするには、ResetLastError() 関数を呼び出す必要があります。

こちらもご覧ください

トレードサーバーのリターンコード

 
Evgeniy Oshurkevich:

大晦日から飲 んでないので、なんとなく寝てました。

私は1997年からです。)

ほら、ティックがあって、それに伴ってシグナルがあって、エラーが出たら処理する必要がある。処理して再度クエリしますが、クエリ前にエラーのある変数をゼロにして おくと、次のクエリでエラーがあれば変数に戻りますが、エラーがなければ「0」になります。

変数をゼロにする必要はありませんが、エラーが発生した場合は新しい値を返します。いずれにせよ、前回のティックで出たエラーには関心を持たず、「今」あるものだけを処理すればいいのです。