記事「アプリケーションを使用してMQL5の関数を理解する」についてのディスカッション

 

新しい記事「アプリケーションを使用してMQL5の関数を理解する」はパブリッシュされました:

関数はどのプログラミング言語においても重要なものです。関数は、開発者が同じことを繰り返さないことを意味するDRY (Do not Repeat Yourself)の概念を適用するのに役立つなどの多くのメリットを提供します。この記事では、関数に関する詳細情報と、物事を複雑にすることなく取引システムを強化するために、あらゆるシステムで使用または呼び出しできる簡単なアプリケーションを作成して、MQL5で独自の関数を作成する方法について説明します。

資本が最大ドローダウンに達した場合にすべてのオープン注文をクローズするタスクを実行するソフトウェアが必要で、このタスクをソフトウェアの多くの部分で実行する必要があるとします。この場合、関数を作成し、このタスクを実行するために必要なコードまたはロジックをすべて含めてから、他の部分でこの関数を呼び出す方が良いでしょう。タスクを実行するために多くの部分で同じコードを記述して繰り返すのは、良いことではなく、手に負えなくなります。

なぜこのタイプの関数を使用する必要があるのかを尋ねる場合、この質問は、ユーザー定義関数を使用することの特徴を学ぶことにつながります。これは以下です。

  • DRY(do not repeat yourself、同じことを繰り返さない)の概念を適用するのに役立つ: ユーザー定義関数を使用すると、同じコードを何度も繰り返さずに、タスクを1回実行できる関数を作成してそれをソフトウェア内の適切な部分で呼び出すことができます。
  • 再利用性: 作成した関数は、いつでも再利用できます。
  • 分割統治の概念を適用するのに役立つ: ソフトウェアを作成するとき、問題を解決するためにコードが複雑になることがありますが、大きな問題を小さな問題に分割し、関数を通じてそれぞれを解決すれば、大きな問題を解決するという目的を達成するのに非常に役立ちます。
  • コードがより読みやすく、理解しやすくなる: 関数を使用すると、それぞれの関数が特定の問題を処理し、特定のタスクを担当するため、コードがより整理されて読みやすくなります。
  • 抽象化の概念を適用するのに役立つ: 関数を使用すると、コードを抽象化する方法が得られます。関数を使用しない場合、関数を使用するよりも多くのコード行を記述する必要があることが判明する可能性があるためです。
  • カプセル化の概念を適用するのに役立つ: 関数を使用すると、関数を使用しない場合よりもコードとデータを安全に管理できるようになります。
  • デバッグプロセスの改善: 関数を使用すると、エラーの調査と解決がはるかに簡単になり、改善に役立ちます。

これらの特徴により、ソフトウェアでこれらのユーザー定義関数を使用すると、どれだけのメリットがあるかが簡単にわかります。

作者: Mohamed Abdelmaaboud

 

役に立った

ありがとう

ポインターや関連する問題についても、同じようなものが見つかることを期待しています。

 
Mohamed Hassan Mohamed Hassan Alsherbiny #:

有用

お疲れ様

ポインターや関連する問題についても、同じことを見つけたい。

ご丁寧なコメントありがとう。

そうするようにするよ。

 

この記事の著者に感謝します!MQL5プログラミング言語を 学ぶすべての初心者にとって、とても有益な情報だと思います。お気に入りに追加しました。

ありがとう、ウラジミール。

追記:ロシア語のフォーラムで記事を公開するときに私が唯一望むことは、すべてのコメントをロシア語にすることです。その方が何倍も情報を消化しやすい。以下はその例です。の代わりに

//加算関数
// 返されるデータ型は整数 - 関数名はadd - パラメータまたは引数は2つのint型変数val1とval2
int add(int val1, int val2)
  {
   //その関数を呼び出すときに実行させたい関数の本体
   //val1とval2の加算結果を代入する新しい変数を作成する。
   int result = val1+val2;
   //エキスパートタブに結果を印刷
   Print(result);
   // 返り値
   return 0;
  }

の代わりに、「翻訳を一度に見ることができれば最高です:

//加算関数
//返されるデータ型は整数。関数の名前は add である。パラメータまたは引数は int 型の2つの変数 val1 と val2 である。
int add(int val1, int val2)
   {
    //関数が呼び出されたときに実行させたい関数本体。
    //val1とval2を加算した結果を代入する新しいresult変数を作成する。
    int result = val1+val2;
    //結果を「エキスパート」タブに印刷する。
    Print(result);
    // 返り値
    return 0;
   }

ところで、コメントをロシア語に翻訳しているときに、もうひとつ質問という形で追加したことがある。この関数のreturnは なぜresultではなく 0を 返す のか?

作者のミスではないのでしょうか?

 
MrBrooklin #:

ところで、コメントをロシア語に翻訳しているときに、もうひとつ質問という形で追加したことがある。この関数のreturnは なぜresultではなく 0を 返すのか?

これは作者のミスではないのか?

プログラマー諸君!それとも やはり作者のミスなのでしょうか?

よろしく、ウラジミール。

 
MrBrooklin #:

プログラマーの皆さん!return 演算子の目的が理解できないほど、私の脳みそは乾いてしまったのだろうか、それとも 作者のミスなのだろうか?

よろしく、ウラジミール。

こんにちは、ウラジミール。あなたはすでに経験豊富なプログラマーになられているので、単なるミスだと推測できると思うのですが...。

 
Alexey Viktorov #:

こんにちは、ウラジミール。あなたはすでに経験豊富なプログラマーになっていると思うので、これが単なるミスであることは推測できると思いますが......。

おはよう、アレクセイ!ありがとう、もちろんだよ。))ただ、どうしてこのようなミスのある 記事を フォーラムに 載せるのかが不思議です。

ありがとう、ウラジミール。

 
MrBrooklin #:

アレクセイ、おはよう!もちろん、ありがとう。でも、僕はまだ北京と同じくらい、十分な経験を積んだプログラマーにはほど遠いんだ。))ただ、どうしてこのようなエラーのある記事を フォーラムに 載せるのだろう?

ありがとう、ウラジーミル。

ウラジミール、"十分な経験 "は "第一人者 "という意味ではない。これはお世辞ではありません。

関数が書かれていてデバッグされていないのだから、不注意によってこのようなエラーが起こり得るのだ。すべての記事を注意深く 読み直し、そのようなミスを修正するのにどれだけのスタッフが必要ですか?間違いに気づいたら報告し、修正され、みんながハッピーになる。

 
Alexey Viktorov #:

ウラジミール、"十分な経験 "は "第一人者 "を意味しない。お世辞でもなんでもない。

関数が書かれ、デバッグされていないのだから、不注意によってそのようなミスが起こりうる。すべての記事を注意深く 読み直し、そのようなミスを修正するのにどれだけのスタッフが必要ですか?間違いに気づいたら報告し、修正され、みんながハッピーになる。

要は、知識ゼロの初心者も含めて、こういう記事から学ぶわけで、そのコードが正しいかどうかを評価する機会はなく、鵜呑みにするしかない。))

よろしく、ウラジミール。

 
MrBrooklin MQL5プログラミング言語を 学ぶすべての初心者にとって、とても有益な情報だと思います。お気に入りに追加しました。

ありがとう、ウラジミール。

追記:ロシア語のフォーラムで記事を公開するときに私が唯一望むことは、すべてのコメントをロシア語にすることです。その方が何倍も情報を消化しやすい。以下はその例です。の代わりに

すぐに翻訳が表示されるとうれしいです:

ところで、コメントをロシア語に翻訳しているときに、質問の形でもう1つ追加したことがある:なぜこの関数のreturnは resultではなく 0を 返す のか?

作者のミスではないのでしょうか?

こんにちは、ブルックリンさん!

コメントとご連絡ありがとうございます。このミスは編集され、正しい出版のために送信されました。


ありがとうございました。

 
Mohamed Abdelmaaboud #:

こんにちは、ブルックリンさん!

コメントとお知らせをありがとうございます。このエラーは編集され、正しいものを公開するために送信されました。

ありがとうございました。

こんにちは。

ありがとうございました。