mql5におけるOOP、テンプレート、マクロ、微妙な使い分け - ページ 16

 
Andrey Khatimlianskii:

では、なぜわざわざ舌を切るような詩を読むのか。)

ああインベル!ああインベル!
なんという目、なんという額
探し続けるよ、探し続けるよ。
是非、見てみたいですね。

お疲れ様ブランド地で、調子に乗っている自分に気付き、止められなくなる ))))

おっしゃるとおり、私は常に数ヶ月後に読めるようなコードを書くようにしています(トレンドはセルフ・ドキュメント・コード)。コメントはほとんど書きません。ほとんどは一般的なコード構造を開発する段階で、自分が何をしたいかがわかるともうコメントは書きません

一般に、私はすでに「文字列の乗算」のジェネレータを書きました(あなたの「魔法のノック」で)))、今、私たちはさらに先へ進むことができます。

 
Igor Makanu:

自覚はあるんですよ、練習したことないから勉強が遅いんです((

以前、MQL4の新しい定義でビデオリールを作ったことがありますが、MQL5の定義と同じようなので、知っておくと便利かもしれませんね。) 見ていて、古くなっているものや、5年前は知らなかったものもあります。特に、何を基準にコンパイルするかは、ビルトインの定義があります。

#ifdef __MQL4__
    исполняем код для МТ4;
#endif    
#ifdef __MQL5__
    исполняем код для МТ5;
#endif    



 
Alexey Volchanskiy:

以前、MQL4の新しい定義についてビデオを作りましたが、それらはMQL5の定義と同じようなので、知人には役に立つかもしれません。)


見てきました、いえ、そうではなくて、この程度のマクロは20年前にすでに知っていたのですが...。使う必要がないから、このレベルで止まってしまっているんです。

ZS: 最近は、マクロがよくわからなくて、どう動くか気になるときは、コマンドラインでGCCコンパイラを-Eオプションで実行すると、時計のように正確に動くんですよ。)

 
Igor Makanu:

調べてみたら、いや、それはない、この程度のマクロは20年前にすでに知っていた...。基本的に使う必要がないので、そのレベルで止まっています。

ZS: 最近は、マクロを理解するのに慣れてきて、それでもどう動くか見るのが面白いと思ったら、コマンドラインでGCCコンパイラを-Eオプションで起動するんですが、時計仕掛けのように動きますね。)

まあ、最後まで見届けることができれば、言うことはないんですけどね。同僚が挙げた例は、何も難しいことではありません。

 
Alexey Volchanskiy:

まあ、最後まで見届けたのであれば、言うことはないのですが。同僚が挙げた例は、何も複雑なものではありません。

MQLのヘルプや初心者向けのC++の本と同じような内容で、ネストされたマクロの例がビデオに収録されています;)。

 
Igor Makanu:

MQLのヘルプや初心者向けのC++の本と同じような内容で、ネストされたマクロの例がビデオに収録されています;)。

というわけで、初心者向けの動画を作ってみました。また、子供のころは、何も考えずにマトリョーシカ人形を簡単に組み立てていたので、入れ子のやり方も知っています。カラシとか))

 

mql4でライブラリを書きたいのですが、ライブラリに記述された関数はテンプレートを適用、ライブラリにはマクロも含ま れます。これらの関数やマクロをロボットが書かれているメインファイルに接続することは可能でしょうか?あと、もう一つ質問があるのですが、なぜバーが右から左にインデックスされているのかがわかりません(Helpでは時系列といいます)。 ゼロのバーが最初になり、それが上書きされ、2番目になり、また上書きされ、3番目になり、また上書きされ、作業が複雑になるだけだということはわかりました。

デフォルトでバーをどのように書くのか、右から左に書くのか、それとも最後まで書くのか、右から左に書くのか、左から右に書くのかを考えなければならないのです。

 
makros(a) というマクロを作りたいのですが、a が 1 ならば int 型の値を、2 ならばdouble 型の 値を、3 ならば bool 型の値を返すというような動作をします。このようなことは可能でしょうか?
 
Seric29:
a が 1 の場合、マクロは任意の int 値を返し、a が 2 の場合、マクロは任意のdouble 値を返し、a が 3 の場合、マクロは任意の bool 値を帰すというように動作する makros(a) というマクロを作りたい。このようなことは可能でしょうか?

マクロは値を返すのですか?

 
Taras Slobodyanik:

マクロは値を返すのか?

さて、以下はコード例です。

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#define  N    0.0
#define  S    0


  double Try_helper;
#define  Try(EXPR, MES)               \
   Try_helper = EXPR;                \
   if (Try_helper <= 0.0) {          \
     printf("Error: %s ", MES);      \
     return 4;                         \
   }

int OnInit()
  { int qw=S; 

   return(INIT_SUCCEEDED);}