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

 
mql5さん教えてください、Expert Advisorは時間の値を書き込まないと読み込めないことがありますが、クラッシュなどがあり、時間が消えてしまうことがあるようです。ターミナルでグローバル変数に datetimeを書き込んでも、doubleで、問題ないでしょうか?ありがとうございました。
 
Fast235 #:

プロは、家庭教師を雇うのが手っ取り早い。

が、ディープなプロではなく、熱心なプロがチューターとして必要なのは、ベースを正しく説明すること、それだけです。残りの10kページ。異質な情報......。

アドバイスありがとうございました

 



1つのOnTickブロックにすべてを書き込むか、関数で分けるか、どちらが良いか教えてください。つまり、OnTickで 関数呼び出しのみを 行うようにすること

(私の質問は、主にコードの最適化とその見通しと落とし穴についてです)
 
freelancerAntonyan グローバル変数に datetimeを書き込んでも、doubleで、問題ないでしょうか?ありがとうございました。
GVもそうですが、クラッシュした場合は何も書き込まれません。また、原理的には何の問題もありません。書くときも、読むときも、明示的な型変換を適用すればよい。
 
freelancerAntonyan グローバル変数に datetimeを書き込んでも、doubleで、問題ないでしょうか?ありがとうございました。

は、ユニオンを介してdoubleに 書き込んだり、doubleから読み出したりすることができます。

 
Ivan Butko 関数呼び出しのみを 行うようにすること (質問は主にコードの最適化についてと、展望や落とし穴についてです)

関数呼び出しの方が正しい。

関数だけは、コードからOnTickのロジックが理解できるように、論理的に完結している必要があります。

 
MakarFX #:
ここにあるファイルを渡してください。これは何か新しいですね、まだ聞いたことがありません。

任意の*.mq4ファイルを任意の拡張子にリネームしてコンパイルしようとすると、コンパイラはそれをMT5であるかのようにコンパイルしようとするので、うまくいかないでしょう。

ファイル内に何を書いても、(

#ifdef __MQL4__

#else

#endif

は、ファイル名を *.mq4 に戻すまで動作しません。

どうすれば回避できるのか、どなたかプロの方はご存知でしょうか?

 
Valeriy Yastremskiy #:

関数呼び出しの方が正しい。

関数だけは、OnTickでの操作のロジックがコードから理解できるように、論理的に完結している必要があります。

ありがとうございます、つまり
 
Sergey Zhukov #:

任意の*.mq4ファイルを任意の拡張子にリネームしてコンパイルしようとすると、コンパイラはそれをMT5であるかのようにコンパイルしようとするので、うまくいかないでしょう。

ファイル内に何を書いても、(

は、ファイル名を *.mq4 に戻すまで動作しません。

どうすればいいのか、どなたかプロの方に教えていただけませんか?

全然コンパイルできない!

ファイルを投げれば、中の関数をすべて削除することができます。

 
Sergey Zhukov #:

任意の *.mq4 ファイルをリネームする

Sergey、ファイル名を変更する理由はよくわかりませんが、このように動作します:


include1.mqh:

void go()
   {
   #ifdef __MQL5__
      printf("Это пятёрка");
   #else
      printf("Это четвёрка");
   #endif
   }

script1.mq4とscript1.mq5です。

#include <include1.mqh>

void OnStart()
   {
   go();
   }


なるほど、そこが問題なんですね。

__MQL4__

は、今の言葉にはない。