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

 
Nerd Trader #:
はい確かに同じくらい8個が、チャートは価格が0は問題ではないことを示していない、ラインはまだカーソルにしがみついて(それに従います)

ObjectDeleteは毎回 "0 "に逃げて しまうので、使わないでください。

マシ
      ObjectSetString(0,"line 1",OBJPROP_NAME,line_name);
      ObjectSetInteger(0,line_name,OBJPROP_COLOR,clrRed);
 
MakarFX #:

ObjectDeleteは毎回 "0 "に逃げて しまうので、使わないでください。

マシ
リネームオプションがあり、はい、うまくいきました。ObjectDelete()の場合、なぜ緑と赤の線が1つのインスタンスで作成され、ちらつかないのでしょうか?また、黄色の線(ストップロス)がすでにある場合、なぜBidを下回ると無限に増殖するのでしょうか?
 

0は偽を意味する。0でないものはすべて である。しかし、このような、あらゆる条件が混在するコードの可読性を考えた人はいるだろうか。

if(!ObjectFind("Buy Stop"))

ブーリアン値ではありません。しかし、簡単にブーリアンにすることができます。

bool objectExist(const long _chartID, const string _name) { return(ObjectFind(_chartID, _name) >= 0); } // чётко определим условие существования объекта!
if (!objectExist(0, "Buy stop"))
  Print("Error! Object not found.")

つまり、コードライティングに対する正しいアプローチを持つことが最大のポイントなのです。そうすれば、そのような問題は起きないでしょう

 
Nerd Trader #:
リネームオプションがあり、はい、うまくいきました。ObjectDelete()の場合、なぜ緑と赤の線が1つのインスタンスで作成され、点滅しない のでしょうか?そしてイエローライン、すでにあるのなら、なぜ無限に増え続けるのでしょう?

これらの線は、あなたがコントロールすることができます。

if(id==CHARTEVENT_OBJECT_CLICK){

そして、点滅する線は、すべてのOnChartEventに反応します。

if(ObjectGetInteger(0,"Button Stop Order",OBJPROP_STATE))
 
Mihail Matkovskij #:

0は偽を意味する。0でないものはすべて である。しかし、このようなあらゆる条件が混在するコードの可読性について考えた人はいるだろうか。

ブーリアン値ではありません。しかし、簡単にブーリアンにすることができます。

つまり、コードライティングに対する正しいアプローチを持つことが最大のポイントなのです。そうすれば、そのような問題は起きないでしょう

return(ObjectFind(_chartID, _name) >= 0)

また、メインウィンドウでオブジェクトが "0 "の場合は、falseを返すのでしょうか?

 
MakarFX #:

そして、ちらつく線は、どんなOnChartEventにも反応する、からです。

私は彼に、「ボタンが押されたら行を作成し、ボタンが離されたら削除する(リンクできる他のタイプのオブジェクトも同じ)」と伝えました。でも、彼は「何でもない、すべて "普通 "にやる」と言いました。:)

 
Nerd Trader #:

また、メインウィンドウでオブジェクトが "0 "の場合は、falseを返すのでしょうか?

それが、ドキュメントを読もうとしないあなたを打ち負かすことができるのです

https://www.mql5.com/ru/docs/objects/objectfind

https://docs.mql4.com/ru/objects/objectfind

戻り値

成功した場合、見つかったオブジェクトが配置されているサブウィンドウの番号0メインチャートウィンドウ)を返します。オブジェクトが見つからなかった場合、この関数は負の数を返します。エラーの 詳細情報を 得るには、GetLastError()関数を呼び出して ください。

Документация по MQL5: Графические объекты / ObjectFind
Документация по MQL5: Графические объекты / ObjectFind
  • www.mql5.com
ObjectFind - Графические объекты - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
MakarFX #:

これらの線は、あなたがコントロールすることができます。

そして、点滅する線は、すべてのOnChartEventに反応します。

緑色の線だけでなく、一般的にすべての線がカーソルの動きに反応します。黄色の線「Sell Stop」は、緑の線「Buy Stop」(価格 < Bid)、灰色の線「not allowed」(価格 > Bid && 価格 < Ask)に対して if(価格 > Ask)という条件があるため、スプレッドエリアで3つの線が作成されていることに今気づきました。
 
Nerd Trader #:

また、メインウィンドウでオブジェクトが "0 "の場合は、falseを返すのでしょうか?

bool FindObject(string name)
  {
   if(ObjectFind(0,name)) return(false);
   return(true);
  }
 
Mihail Matkovskij #:

私は彼に、「ボタンが押されたら線を作り、ボタンが離されたら削除する(他の種類のオブジェクトに取り付けられるのも同じ)」と伝えました。でも、彼は「何でもない、ちゃんとやるから」と言ったんです。:)

プロパティによる色変更のことでしょうか? そのようなオプションがあるのですが、なぜうまくいかないのか理解する必要があります。

Mihail Matkovskij(ミハイル・マトコフスキー #:

ここで、ドキュメントを読みたくないという気持ちを打ち砕くかもしれないものがありますよ?

https://www.mql5.com/ru/docs/objects/objectfind

https://docs.mql4.com/ru/objects/objectfind

では、メインウィンドウのオブジェクトが "0 "のとき、この関数はfalseを返すのでしょうか?0.である点を説明してください。またはゼロに等しい