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

 
Seric29:

一般論として、Artyomは何も答えていないし、上の人は、関数は既知でなければならない構造を扱うので、グローバルに宣言しなければならないという答えを出したので、構造はグローバルに宣言しなければ ならないという結論になるのです。

構造体を扱う関数は、その性質上、同じ静的構造体しか受け入れない。つまり、構造体をローカルに宣言して、限られたスコープを持つようにして、それを関数に渡すことはできないのです。

私が言ったことを理解できないのに、私を引き合いに出さないでください。アルテムの言葉を注意深く読んでください。

急いでいたため、コードに不正確な部分があった。これは、彼が間違ったことを話していたということではありません。構造体はカスタムデータ型であり、グローバルスコープで定義される 。ユーザー型の変数は、どこでも宣言 することができます。そして、そのような変数はいくつでも宣言することができます。
 
Artyom Trishkin:
統計はこれと変わりません。

ちなみに、午前1時や午後11時に表示されないだけでなく、こんな風に表示されるんですよ。


技術的な仕事です。

進捗状況

TORの承認
デモ
作品と支払いの送信


これらのチェックボックスをすべてクリックすると、1週間後に自動的に支払いがなくなると書かれています。ただし、受け取ったのはデモファイルだけで、そこには昨年しか使えない日付制限のあるものが入っています。飽きたのか、今度は給与ファイルが自動で変わるのを1週間も待つのか。


すでに起こったことです。


Zlaya_budka 様が「デモ」ステップを確認されました。
2020.01.29 21:47

仕事の引継ぎと支払い

お客さまにデモを受け入れていただき、次は開発者が最終的な成果物を引き渡さなければなりません。

作品の検収後、お客様の口座から自動的に支払われます(手数料を差し引いた金額)。提出された作品に対して、1週間以内にお客様から返信がない場合は、自動的に注文が完了したものとみなします。

2020.01.29 21:47

開発者=========================================================="作業と支払いの引継ぎ"のステップを確認。


この喜びはどういうことなのでしょうか?

Zlaya_budka
Zlaya_budka
  • www.mql5.com
Профиль трейдера
 
Alexey Viktorov:

知らないのに参考にしないでください。アルテムの言葉をよく読んでください。

急いでいたため、コードに不正確な部分があった。間違って話したということではありません。構造体は、カスタムデータ型で、グローバルスコープで定義さ れます。ユーザー型の変数は、どこでも宣言 できる。そして、そのような変数はいくつでも宣言することができます。

まあ、私の場合、まさに構造について話しているのですが、それもカスタム変数型であることは明らかですが、特に私はローカルレベルに興味があるのです。授業を通してできるかもしれない。原理的には、クラスを通してプライベートな型を宣言して終わりなのでしょうが、あまりよく理解できません。

 
同僚 - テスターのパスごとにinitが開始されるかどうか教えてください。
 
Seric29:

さて、私はまさに私のケースと構造について話しており、まさにこのように、それはまた、カスタム変数の型であることは明らかですが、特に私はローカルレベルに興味があります。授業を通してできるかもしれない。原則的には、クラスを通してプライベートな型を宣言することができるのですが、あまりよく理解できていません。

グローバルなレベルで構造を定義する - プログラム全体がそれを知っている必要がある - それはあなたが作成した新しいタイプの変数です。

そして、この構造の型を持つ別の変数を、どのローカルレベルでも定義することができます - その中(ローカルレベル)だけで、そのスコープで作成された変数が見えるようになります。

 

みなさん、こんにちは。

添付ファイル

extern   ENUM_BASE_CORNER  InpCorner      =  CORNER_LEFT_UPPER;   // Угол привязки индикатора

このオブジェクトに

//--- Clicking on the fifth rectangle
   if(id==CHARTEVENT_OBJECT_CLICK) 
     {
      string clickedChartObject=sparam;
      if(clickedChartObject==obj_name[5]) 
        {
         string name="name_"+IntegerToString(MathRand()+100,0,' ');

         y=100;x=5;
         ChartXYToTimePrice(0,x,y,window,dt_1,price_1);
         ChartXYToTimePrice(0,x+250,y,window,dt_2,price_2);
         ChartXYToTimePrice(0,x,y+20,window,dt_3,price_3);

         ChannelCreate(0,name,0,dt_1,price_1,dt_2,price_2,dt_3,price_3,1,clrRed,STYLE_SOLID,1,InpBackRect,true,false,false,InpHidden_OBJ,0);
        }
     }

ブール

//+------------------------------------------------------------------+
//| Create an equidistant channel by the given coordinates           |
//+------------------------------------------------------------------+
bool ChannelCreate(const long             chart_ID=0,                   // chart's ID
                   const string           name="Channel",               // channel name
                   const int              sub_window=0,                 // subwindow index  
                   datetime               time1=0,                      // first point time
                   double                 price1=0,                     // first point price
                   datetime               time2=0,                      // second point time
                   double                 price2=0,                     // second point price
                   datetime               time3=0,                      // third point time
                   double                 price3=0,                     // third point price
                   const ENUM_BASE_CORNER corner = CORNER_RIGHT_UPPER,  // the angle of the graph for the binding
                   const color            clr=clrRed,                   // channel color
                   const ENUM_LINE_STYLE  style=STYLE_SOLID,            // style of channel lines
                   const int              width=1,                      // width of channel lines
                   const bool             back=false,                   // in the background
                   const bool             selection=true,               // highlight to move
                   const bool             ray_left = false,             // extend the line to the left
                   const bool             ray_right=false,              // channel's continuation to the right
                   const bool             hidden=true,                  // hidden in the object list
                   const long             z_order=0)                    // priority for mouse click
  {
//--- reset the error value
   ResetLastError();
//--- create a channel by the given coordinates
   if(!ObjectCreate(chart_ID,name,OBJ_CHANNEL,sub_window,time1,price1,time2,price2,time3,price3))
     {
      Print(__FUNCTION__,
            ": failed to create an equidistant channel! Error code = ",GetLastError());
      return(false);
     }
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
   ObjectSetInteger(chart_ID,name,OBJPROP_STYLE,style);
   ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
   ObjectSetInteger(chart_ID,name,OBJPROP_RAY_RIGHT,ray_right);
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- 
   return(true);
  }
//+------------------------------------------------------------------+
//| Delete the channel                                               |
//+------------------------------------------------------------------+
bool ChannelDelete(const long   chart_ID=0,     // chart's ID
                   const string name="Channel") // channel name
  {
//--- reset the error value
   ResetLastError();
//--- delete the channel
   if(!ObjectDelete(chart_ID,name))
     {
      Print(__FUNCTION__,
            ": failed to delete the channel! Error code = ",GetLastError());
      return(false);
     }
//---
   return(true);
  }
//---
 

ChartXYToTimePriceは、デフォルトでも左上から 座標を計算するのですね。

ChartXYToTimePriceは、私が指定したコーナーからどのように再計算されるのでしょうか?

 
MakarFX:

ChartXYToTimePriceは、左上から 座標とデフォルトを計算することは理解しています。

ChartXYToTimePriceは、私が指定した角度からどのように再計算されるのでしょうか?

決断する材料を持っている人の心しか変えられないのです。また、「それ」が他人の設定を実行するだけなら、何かを納得させるための台詞はすべて無駄でしかありません))。

タスクがよくわからないのですが、結合角度ENUM_BASE_CORNER だけでなく、結合点ENUM_ANCHOR_POINT にも注意してください。

 

Alexey Viktorov:

タスクがよくわからない

呼び出し時にインジケータが左上 隅にオブジェクト(OBJ_CHANNEL)を作成する

もう一方のコーナーにオブジェクトを作成するための条件を設定する方法。

 
MakarFX:

呼び出し時にインジケータが左上 隅にオブジェクト(OBJ_CHANNEL)を作成する

もう一方のコーナーにオブジェクトを作成するための条件を設定する方法。

取扱説明書をよくお読みください。OBJ_CHANNELは角度とは関係ありません。

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Способы привязки объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Способы привязки объектов
  • www.mql5.com
Графические объекты Text, Label, Bitmap и Bitmap Label (OBJ_TEXT, OBJ_LABEL, OBJ_BITMAP и OBJ_BITMAP_LABEL) могут иметь один из 9 различных способов привязки своих координат, задаваемых свойством OBJPROP_ANCHOR. – объекты имеет ширину и высоту. Если указано "только для чтения", то это означает, что значения ширины и высоты...