MQL5におけるOOPに関する質問

 

昨日、ある質問が出たので、兄弟に相談することにした)

2016.05.21(土)、私はある男性に、標準 ライブラリを例にOOPの基本を説明していました。以前はMQL4でプログラミングをしていたが、5年間休んでいて、また戻ってくることにした。私自身、MT5ですべてをやり直すため、彼にMT5のヘッジを紹介するようになりました。

どんなに不思議に思えても、この人(マキシム、つまりこの記事を読んでいるあなたです :)はOOPの基本を理解し、デバッガ下の標準ライブラリの例を使って、最も重要な部分まで確認することができました。

しかし!!!録画の約束をしていたのに、技術的な理由で全てニャーと飛んでしまいました((

OOPに関するビデオ・チートシートを作ることを約束した。

質問です。

MQL5でOOPに関するトピックを10分間提案してください。 YouTubeに投稿します、みんなの役に立つでしょう

------------------

気になることは何でも書いてください、整理します、空いた時間でご要望にお応えします。

グッドラック ))

 
Alexey Volchanskiy:

昨日、ある質問が出たので、兄弟に相談することにした)

2016.05.21(土)、私はある男性に、標準 ライブラリを例にOOPの基本を説明していました。以前はMQL4でプログラミングをしていたが、5年間休んでいて、また戻ってくることにした。私自身、MT5ですべてをやり直すため、彼にMT5のヘッジを紹介するようになりました。

不思議なことに、その人(マキシム、つまりこの記事を読んでいるあなたです :)はOOPの基本を理解し、デバッガ下の標準ライブラリの例を使って、最も重要な部分にまで踏み込むことができたのです。

しかし!!!録画の約束をしていたのに、技術的な理由で全てニャーと飛んでしまいました((

OOPに関するビデオ・チートシートを作ることを約束した。

質問です。

MQL5でOOPに関するトピックを10分間提案してください。 YouTubeに投稿します、みんなの役に立つでしょう

------------------

気になることは何でも書いてください、整理します、空いた時間でご要望にお応えします。

グッドラック ))

Alexey、ポインタ、関数ポインタ、テンプレートクラスでの作業など、ヘルプの中で最もカバーされていない場所について例を作ってください。正直なところ、私見ですが、このようなC++の動画が豊富で知識が増えるわけではなく、知識を増やすには文献やウェビナー、精進が必要だと思います。
 
coderex:
Alexey、ポインタ、関数ポインタ、テンプレートクラスでの作業など、ヘルプの中で最もカバーされていない場所での例を作ってください。率直に言って、私見ですが、このようなC++のビデオは氾濫しており、それだけでは何の知識も増えないので、文献やウェビナー、精進して高めることが必要だと思います。
MQLにはポインターはなく、ディスクリプタがある)最近、関数へのポインタ(条件付き)が導入されましたが、これは「アルゴ・トレーダーはみんな自殺志願者だから、ポインタを与えるな」という一般的な概念に適合するための、ある種の松葉づえのようなものです。
 
Alexey Volchanskiy:
MQLにはポインターはなく、ハンドルがあります))最近、関数へのポインタ(条件付き)が導入されましたが、これは「アルゴ・トレーダーはみんな自殺志願者だから、ポインタを使ってはいけない」という一般概念に合わせた、一種の松葉づえのようなものです。

アレクセイ、言葉にしがみつくんじゃないよ :)もし私が「ディスクリプター」と書いていたら、なぜかすぐには理解していただけないでしょう。最近導入されたもの、昔導入されたものについては、本質は変わらない、これらのヘルプに関する質問は宙に浮いている、一言もない、少しもないのである。そしてこれらの名前は、C++とMQLに関してどのように異なる挙動をしようとも、すべて同じに見える、少なくとも開発者はそのようにしようとしているのだ。すでにポインターの比較も導入されているようですね :)正直なところ、MTの場合、どこで使うのか想像がつきませんが。

しかし、これらの質問を取り上げていただければ、多くの初心者コーダーが感謝することでしょう。先日もビデオを拝見しましたが、とても分かりやすい説明の仕方をされていますね :)

 
coderex:

アレクセイ、言葉にしがみつくんじゃないよ :)もし私が「ディスクリプター」と書いていたら、なぜかすぐには理解していただけないでしょう。最近導入されたもの、昔導入されたものについては、本質は変わらない、これらのヘルプに関する質問は宙に浮いている、一言もない、少しもないのである。そして、これらの名前は、C++とMQLに関してどのように異なる動作をしようとも、すべて同じに見える、少なくとも、開発者はそのようにしようとしているのである。すでにポインターの比較も導入されているようですね :)正直なところ、MTの場合、どこで使うのか想像がつきませんが。

しかし、これらの質問を取り上げていただければ、多くの初心者コーダーが感謝することでしょう。私は一度あなたのビデオを見ました、あなたは人々を明確に説明する方法を知っています :)

どんな場合でも、教育ビデオをヘルプの延長線上に作ってはいけないのです。目的は教育であり、価値のない細部を照らすことではありません。
 
Alexey Volchanskiy:

質問です。

MQL5のOOPについて10分間のトピックを提案してください、YouTubeに載せます、つまり、みんなの役に立つことです

OOPは、コードやクラス、オブジェクト、ポインタなどの難解な名称を使わずに説明されるべきです。

古典派プログラミング講座はどのように行われるのですか?最初、学生は人間の思考からプログラミングの基本(ループ、関数、変数など 必要な「知識のお荷物」)に移行しようと悶々としています。そして、関数や変数やifがごちゃごちゃになって、多少なりとも整然とした構造になったところで、「ほら、OOPというものがあるじゃないか」と言われるのです。今まで教えられたことを忘れて、人間らしく考えよう」。その結果、テンプレートは崩壊し、苦労して手に入れたばかりの「知の荷物」はゴミ箱に投げ捨てられ、天と地の狭間にいることになる。当然、この「PLO」は、その後数年間、脳の残った部分に震えと痛みを伴う悪い夢として記憶される(他の部分は新しい知識によって焦がされてしまった)。

いや、私はプログラミングを学ぶべきでないと断言します。それどころか、有害で危険なものです。そうではなく、考え方を 教えることが必要なのです。そして、それとともに古典的な学習方法の完全な失敗があります。

 
Vasiliy Sokolov:
私見ですが、トレーニングビデオでHelpの拡張版は絶対に作れないと思います。課題は教育であり、価値のない細部を照らすことではありません。

Alexeiはフォーラムユーザーの意見を求め、私は彼に私の意見を書きました、そして何がそこになるかは、Alexeiだけが知っています:)

ところで、どこにも情報がないのに、どうやって勉強するのでしょうか?私はC++で書いているので知っていますが、MQL5だけを学んでいる人は、リファレンスには一言も書かれていないので、このような細かいことは分からないと思います :)

 
OOPを有能に学びたいですか?- UMLを学ぶ
 

Vasiliy Sokolov:

そして、頭の中にある関数や変数やifのごちゃごちゃが、多少なりとも整然とした構造になったところで、「ほら、OOPというものがあるじゃないか」と言われるのです。今まで教えられたことを忘れて、人間らしく考えよう」。そして、テンプレートが壊れ、せっかく手に入れた「知の荷物」がゴミ箱に捨てられ、地と天の狭間にいる自分に気づくのです。

まあ、やりすぎだよ。ある男性は、当初はOOPにしか携わっていませんでした。例えば、コーヒーを入れるだけでもいい。パターンはどこから来るのでしょうか?IMHO、知能の低い教師が、自分の問題を生徒に転嫁するナンセンスさ。
 

OOPで人を怖がらせてはいけない。

MQL5で良いEAなどを作るには、OOPを知る必要はありません。クラスやポインタという言葉も知らなくていい。

OOPは、特にチームワークが必要な場合、大きなタスクや複雑なものを作るときに使われることがほとんどです。

そして、MQL5ではOOPなしでもOKです。

私は10年以上前から、OOPの知識を主な要件とする外資系企業で働きたいプログラマーの育成に携わっていることを付け加えておきます。

これは、私がOOPの反対派だと思われないために言っているのです。ただ、意図したとおりに使い、生活を複雑にしないことが必要です。

 

OOPの理解は、プログラムが複雑になればなるほど、ひとりでに身につきます。プログラマは、コードシートをいくつかの関数に分割し始め、様々な関数の結果を相互に転送する必要があります。すぐに、関数の引数を介してすべてを転送することが最善の解決策ではないことを疑い始め、ほとんどの場合、彼はグローバル変数を 作成し始めるでしょう。私の経験:mcl4の頃、私はこのようなものを作り始めました。

// file_1.mqh
int name1_counter = 0;
int name1_data = 0;
double name1_value = 0;
void name1_action() {name1_counter++; name1_data = ;}
int name1_get() {return }

// file_2.mqh
int name2_counter = 0;
int name2_data = 0;
double name2_value = 0;
void name2_action() {}
int name2_get() {}


OOPについては何も知らなかったのですが、ほぼ完成していました(そう、たった1つのインスタンスですが、スケルトンはできていたのです)。 このような手順でトレーニーを指導していきます。intとifのシートから始めて、徐々にコードを構造化する。最終的には、ほぼ自力でOOPに到達することができ、そこに至るまでの経緯を理解できることが大きなポイントです。

昔、この「魔法」のOOPについて一冊の本を読んだ記憶があります。この本のクライマックスは、「これぞOOPの力だ」と仮想関数のデモンストレーションを行ったことだ。そんな作家の手を引きちぎるべきだろう。今のところ、まともな本に出会っていない。

理由: