mql4言語の特徴、微妙なニュアンスとテクニック - ページ 4

 
Alexey Kozitsyn:
うわー、これは微妙なところですね。SDに書いたのだろうか?

著者は書いています。言語の能力は、昔から古い文書と矛盾している、つまり文書化されていないものが実際に使われているわけで、それに応じて主張するのはおかしな話です。

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

ダブルとQNaNを素早く比較する方法は?

fxsaber さん 2016.10.11 15:56

気づかれないように放置。

double QNaN   =Nan(0x7FF7000000000000);  

グローバル 変数の初期値を関数で宣言できるようになりました!

残りの静的変数も同様です。

このイノベーションについて、開発者が沈黙していたのは奇妙なことです。


Документация по MQL5: Основы языка / Переменные / Статические переменные
Документация по MQL5: Основы языка / Переменные / Статические переменные
  • www.mql5.com
Основы языка / Переменные / Статические переменные - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
fxsaber:
両言語のスタティックについて微妙な点がある

アレクセイ・コジツィン
うわー、なんて細かいところなんだ...。SDで書かれたのですか?

ヘルプにstatic variable... と書いてありますが、大丈夫でしょうか?を読んでみてください。

静的変数は、任意の式で初期化できる単純なローカル変数とは異なり、定数または その型に適した定数 式で初期化することが可能です。


でも、機能ではありません。

このような仕組みになっています

#property strict
#property indicator_chart_window

int TestBrokenStatic()
{
   static int stInt = 101;
   stInt++;
   return stInt;
}

int OnInit()
{
   static int result = 0;
   result = TestBrokenStatic();
   Print("TestStatic Expected result 102   - Actual result=", result);
   result = TestBrokenStatic();
   Print("TestStatic Expected result 103   - Actual result=", result);
   
   return INIT_SUCCEEDED;
}

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   return rates_total;
}
2017.04.29 13:49:51.546 !Test USDCHF,M15: TestStatic Expected result 103   - Actual result=103
2017.04.29 13:49:48.457 !Test USDCHF,M15: TestStatic Expected result 102   - Actual result=102
2017.04.29 13:49:40.089 Custom indicator Test\!Test USDCHF,M15: loaded successfully
Статические переменные - Переменные - Основы языка - Справочник MQL4
Статические переменные - Переменные - Основы языка - Справочник MQL4
  • docs.mql4.com
Статические переменные - Переменные - Основы языка - Справочник MQL4
 
Alexey Viktorov:

ヘルプにstatic variable... と書いてありますが、大丈夫でしょうか?を読んでみてください。

でも、機能ではありません。

そういうことなんです。

そうすると、コンパイラはエラーを出さなければならない...。
 
Alexey Viktorov:

ヘルプにstatic variable... と書いてありますが、大丈夫でしょうか?を読んでみてください。

一気にドキュメントへのリンクと、開発 者の半年前のコードディスカッションへのリンクを貼ってしまいましたが、大丈夫でしょうか...。自分自身のアドバイスに従ってください。

特に静的なconstで。

 
fxsaber:

一気にドキュメントへのリンクと、半年前の開発 者のコード考察へのリンクを貼ったのですが、大丈夫でしょうか...。己に従え

特に静的なconstで。

アグリツキー語はわからないし、メカの翻訳は韓国語が混じった中国語・日本語よりも理解できないことがあるので、リンク先は見ていない。

そして、そんなに敏感にならなくてもいいんです。そんな些細なことを気にしていなかったとは、私の言葉には一片の咎めもない。

 
Alexey Viktorov:

アグリツキー語の知識がないためリンク先を見ませんでしたが、メカの翻訳は中国語・日本語にハングルを加えたものよりも理解できないことがありますね。

あ、あと、そんなに病的になる必要はないですよ。私の言葉には、そんな些細なことに注意を払わなかったという非難は含まれていない。


トレーディング、自動売買システム、ストラテジーテスターに関するフォーラム

mql4言語の特徴、微妙なニュアンスとコツ

fxsaber さん 2017.04.29 11:07

この言語の機能は、長い間、古い文書と矛盾していました。つまり、実際には文書化されていないものが使われており、それについて主張することは、それに応じて奇妙なことなのです。

 
Alexey Kozitsyn:
そうすると、コンパイラがエラーを出すはずなのですが...。

そうすべきなのかもしれませんが...私たちは、私たちが持っているものを持っています。

 
fxsaber:

昔のドキュメントではそうだったのでは?


ps.遅ればせながら、これらの文献の意味を理解した......。

しかし、この発言に対する反論は以下の通りです。

fxsaber

気づかれないように放置。

グローバル 変数の初期値を関数で宣言できるようになった!

残りの静的変数も同様です。

このイノベーションについて、開発者が沈黙しているのは不思議なことです。

それとも、まったく別のことですか?宣言するのか、初期化するのか?
 
static const bool IsTester = (::MQLInfoInteger(MQL_TESTER) || ::MQLInfoInteger(MQL_OPTIMIZATION) ||
                              ::MQLInfoInteger(MQL_VISUAL_MODE) || ::MQLInfoInteger(MQL_FRAME_MODE));
 
fxsaber:

今は確認できませんが、MQL_TESTERにはそれ以外も含まれているようです。しかし、それ以外のものを別々にすると、お互いが含まれない。

つまり、テスターでプログラムが動作することを理解するためには、一番最初のフラグをチェックすればよいのです。

理由: