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

 
MakarFX #:

自分自身に備忘録を書けるように - その機能は?

:))) まるで、必要なときに自分でできないかのように、スラッシュを2つ挿入し、いくつかの単語を書くのです。その枠の中で何か書いてみましたか?右のフォワードスラッシュは、入力した文字数だけ右に進みますが、2行以上書く必要がある場合はどうでしょうか?何かをするのではなく、フレームを描くことに時間を浪費しなければならないのです。ただ、イデオがある種の病的なビジョンを押し付けているだけなのです。

 
Nerd Trader #:

:))) まるで、必要なときに自分でできないかのように、スラッシュを2つ挿入し、いくつかの単語を書くのです。その枠の中で何か書いてみましたか?右のフォワードスラッシュは、右に入力した文字数分だけ消えますが、2行以上書く必要がある場合はどうでしょうか?何かをするのではなく、フレームを描くことに時間を浪費しなければならないのです。こうあるべきという病的なビジョンを押し付けているだけなんです。

関数の前にスラッシュを2つ入れればOKです。

//
int OnCalculate (const int rates_total,
                 const int prev_calculated,
                 const datetime& time[],
                 const double& open[],
                 const double& high[],
 
MakarFX #:

関数の前にスラッシュを2つ入れればOK

コメントと関数の間に空白行があると枠が挿入されることは、すでに上で書きました。
 

ボタンがクリックされると、水平方向の線が 作成されます。価格に対するカーソルの位置によって、異なる色で再表示されます。問題は、カーソルが価格から離れた適切な位置にあるときに、黄色と灰色の線がちらつき、常に作成されることです(緑は問題ありません)。同様のコードで、線色プロパティのみを変更し、再作成しない場合は、正しく動作します。

ここでの論理NOTは、その場所、つまり== 0と書くかわりに。

void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
  ...
  ...
  ...
  if(ObjectGetInteger(0,"Button Stop Order",OBJPROP_STATE)){
    int x = (int)lparam;
    int y = (int)dparam;
    //Переведём координаты X, Y в дату и время
    if(ChartXYToTimePrice(0,x,y,window,dt,price)){
      //Линия меняет цвет с зелёного на желтый
      if(price < Bid){
        if(!ObjectFind("Buy Stop") || !ObjectFind("not allowed")){
          ObjectDelete(line_name);
          line_name = "Sell Stop";
          CreateLine(line_name, clrYellow);
        }      
      }
      //Линия меняет цвет с желтого на зелёный
      if(price > Ask){
        if(!ObjectFind("Sell Stop") || !ObjectFind("not allowed")){
          ObjectDelete(line_name);
          line_name = "Buy Stop";
          CreateLine(line_name, clrGreen);
        }
      }
      //Линия меняет цвет на серый если в зоне спреда
      if(price > Bid && price < Ask){
        if(!ObjectFind("Buy Stop") || !ObjectFind("Sell Stop")){
          ObjectDelete(line_name);
          line_name = "not allowed";
          CreateLine(line_name, clrGray);
        }
      }
      //Прикрепляем линию к курсору
      if(id == CHARTEVENT_MOUSE_MOVE)
        if(ObjectMove(0,line_name,0,0,price))
          ChartRedraw(0);
    }
  }else if(ObjectFind(line_name) == window) Print(ObjectDelete(line_name));
 
Nerd Trader 水平方向の線が 作成されます。価格に対するカーソルの位置によって、異なる色で再現されます。問題は、価格から適当な位置にカーソルがあるときに、黄色と灰色の線がちらつき、常に作成されていることです(緑はOK)。同様のコードで、線色プロパティのみを変更し、再作成しない場合は、正しく動作します。

ここでの論理NOTは、その場所、つまり== 0と書くかわりに。

ObjectFindはint型であり、bool型ではない
 
Nerd Trader #:

なぜなら、ネイティブのmql4環境に移行することを決めたのに、そこから先は本当に腹が立つからです。フレームはいかがですか?そして、とにかく売る。

マカーのメソッドを使って、欲しいものを手に入れるのです。

MakarFX#:

スタイルを知らなかったので、自分が読みたいように書式を 整えたんです。

 
MakarFX #:
ObjectFindはint型であり、bool 型ではない
この場合、"!"と" ==0 "の違いはありません。
 
Nerd Trader #:
この場合、"!"と" ==0 "の違いはありません。

違いがあるんです!!!

      if(!ObjectFind("Buy Stop"))Print("All right Христофор Бонифатич!");
      else Print("Something is wrong!");
      if(ObjectFind("Buy Stop")!=0)Print("All right Христофор Бонифатич");
 
Nerd Trader #:
この場合、"!"と" ==0 "の違いはありません。
if(!ObjectFind("Buy Stop"))

このクエリーは、次のようなものです。

チャパエフとペーチャが飛行機に乗っていると、突然、操縦席に座っていたチャパエフが叫びます。

"ペーチャ、楽器!"

Petyaは答える。"38 "だ

ワシリーイワノビッチ:"38何?"

Petya:"楽器はどうするんだ?"

 
MakarFX #:

このリクエストは次のようなものです。

No Makar、こんな感じです。

ObjectFind()関数は、メインウィンドウの番号を返します。そして、この数値は0です。一方、0==falseなので、関数が0を返してもfalseを返すということになります。もちろん、この関数が-1、つまりエラーを返した場合、オブジェクトの位置がメインウィンドウにないと考えることができるので、私はこれを使いません。そのうえ、どんな修正が入るかわからない...。

一般に、議論してはいけないし、そうすることを学んではいけない.