MQL5言語をゼロから独学で学ぶ - ページ 27

 
Vasiliy Sokolov:

これは真空中の球状の馬であり、動作するEAのフローチャートではありません。ブロックによっては、全く存在しない場合もあります。ブロックの配置を変更することができます。どんなMCLプログラムもイベントハンドラです。これは、スキームにない主要な仮定であり、読者を誤解させるということだ。私からのアドバイス:こんな古いものは読まないでください。コバレフの教科書は時代遅れだ。特にMT5の注文システムに関しては、正しい情報ではないものが多い。コバレフは、このばかげた方式を記憶し、イベントのセットを記憶し、そして地球儀のフクロウを引っ張ることを本質的に提案している:この方式はエキスパート・アドバイザー・プログラムで実装されていると思われる。MKLにはスキームがありません。取引環境の使い方には、典型的なパターンがあります。しかし、普遍的なスキームがあるわけではないので、それを理解し、覚えておかなければならない。すべての「仕組み」は、関数とその関数の事象に対する反応によって構成されています。さらに、要求されるデータもあり...。また関数で

失礼ながらそこには、そんなものはない。ただ、これは教育用のExpert Advisorであり、これを使ってトレードすることは禁止されていることを学生たちに理解してもらう必要があります。そして、トレードをするためには、トレード戦略を学ばなければならない...。でも、これは語学を学んだ後の話です。ちなみに、説明はわかりやすくて良い。ここ、特にコドベースのコメントで見落としがちなこと。書いてあることが理解できないことがある))))そうですね、良いコードにそんなものはないです)

 
MrBrooklin:

Sergei Kovalev氏のMQL4の教科書に、私が探していたものがありました。ここでは、「シンプルなExpert Advisorの構造 」からの抜粋を紹介します。以下は、いくつかの機能ブロックに基づいたシンプルなExpert Advisorの基本構造で、各ブロックは特定の独立した部分の計算を実行します」。


この点に関して、専門家のアドバイスが必要です。この構造化されたスキームは、MQL5でExpert Advisorを書く のに適用できますか、それとも他のブロックを追加すべきですか?

ウラジミールさん、よろしくお願いします。

はい、この方式はあなたに合っています。シンプルで整然としています。言葉をマスターしたら、ブロックを複雑にしたり、変更したり、追加したりするのは自由ですが、まずはこのブロックを使ってみてください。正しいスキーム
 
Vasiliy Sokolov:

これは真空中の球状の馬であり、動作するEAのフローチャートではありません。ブロックによっては、全く存在しない場合もあります。ブロックの配置を変更することができます。どんなMCLプログラムもイベントハンドラです。これは、スキームにない主要な仮定であり、読者を誤解させるということだ。私からのアドバイス:こんな古いものは読まないでください。コバレフの教科書は時代遅れだ。特にMT5の注文システムに関しては、正しい情報ではないものが多い。コバレフは、このばかげた方式を記憶し、イベントのセットを記憶し、そして地球儀のフクロウを引っ張ることを本質的に提案している:この方式はエキスパート・アドバイザー・プログラムで実装されていると思われる。MKLにはスキームがありません。取引環境の使い方には、典型的なパターンがあります。しかし、普遍的なスキームがあるわけではないので、それを理解し、覚えておかなければならない。すべての「仕組み」は、関数とその関数の事象に対する反応によって構成されています。さらに、要求されるデータもあり...。また関数で

あなたの批判が理解できない。この方式は論理的で、すべてのアクションは順番に行われます。EAの 正しい構造の イメージを与える。もちろん、あるものを削って別のものを加えるというミックスも可能ですが、そうしたプログラムの安定性は劇的に損なわれてしまいます。総じて、この方式に不満があるとは思えません。
 
Реter Konow:
あなたの批判が理解できない。この方式は論理的で、すべてのアクションは順番に行われます。EAの正しい構造について説明します。もちろん、いろいろなものを混ぜたり、捨てたりすることはできますが、このプログラムの安定性は劇的に変化します。総じて、この方式に不満があるとは思えません。

よし、わかった。説明しよう。

1)こんなスキームがあります。いくつかのブロックが与えられている(mql プログラムに適用されるブロックとは何か、については説明されていない)。もしかしたら関数かもしれないし、手続きの集合かもしれないし、他のものかもしれない。でもいい、作者と同じレベルでブロックとは何かを直観的に理解しよう)。

2) ブロックは、プログラムの最初から最後まで連鎖を形成する。ブロックによっては、プログラムの実行 チェーンが2つに分かれている(ところで、なぜ2つなのか? 3つを4つに分けることはできないのか? また、4つが必要な場合、図ではどう示すのか? A1形式に変更するか?)。 どうやら、分岐を示すための方法 であるようだ。

3)「メッセージ」のような、とても奇妙なブロックがあります。 これはどのようなブロックですか?おそらく、適切な条件がないことをプログラムから通知するようなもので、1クリックごとに「高すぎて買えない、高すぎて買えない、高すぎて...」というメッセージが表示されます。- はもちろんクールだが、すべて推測の域を出ない。

4) 最も奇妙なブロック、それは「エラー処理」ブロックです。入ることはできても、出ることはできない。プログラムはエラーをキャッチし、このブロックに座っている(完全に再起動するまで、おそらくハングアップし、さらに良いターミナルが永久にハングアップするようにそれを作る、何がより多くのエラーをしないだろう - これはアイデアです!)。

5) プログラムを初めて起動する場合、または口座にオープンポジションがない場合、注文の終了ブロックは何をするのですか?何もない。しかし、この論理的な仕組みでも、注文の締め切りのブロックまでたどり着けるはずだ。スキームが厳密かつ階層的に構成されているからこそ、そこにたどり着けるのです。すべてのブロックは、たとえそれが空のポジションのリストの無意味で無慈悲な処理であっても、1つずつ処理されなければならない。

6) 注文値計算のブロックは、注文終了のブロックの下に配置される。どうしてでしょう?もしかしたら、その「価値」に基づいてオーダーをクローズするかもしれません。何が起こっているのか、はっきりしない。

そして、私はこのスキームを見て、この「もの」を研究対象として推奨することができるのか、よく理解できないのです。どうして良い、素晴らしい、教育的と言えるのでしょうか。

 
Vasiliy Sokolov:

よし、わかった。説明しよう。

1)こんなスキームがあります。いくつかのブロックが与えられている(mql プログラムに適用されるブロックとは何か、については説明されていない)。もしかしたら関数かもしれないし、手続きの集合かもしれないし、他のものかもしれない。でもいい、作者と同じレベルでブロックとは何かを直観的に理解しよう)。

2) ブロックは、プログラムの最初から最後まで連鎖を形成する。ブロックによっては、プログラムの実行 チェーンが2つに分かれている(ところで、なぜ2つなのか? 3つを4つに分けることはできないのか? また、4つが必要な場合、図ではどう示すのか? A1形式に変更するか?)。 どうやら、分岐を示すための方法 であるようだ。

3)「メッセージ」のような、とても奇妙なブロックがあります。 これはどのようなブロックですか?おそらく、適切な条件がないことをプログラムから通知するようなもので、1クリックごとに「高すぎて買えない、高すぎて買えない、高すぎて...」というメッセージが表示されます。- はもちろんクールだが、すべて推測の域を出ない。

4) 最も奇妙なブロック、それは「エラー処理」ブロックです。入ることはできても、出ることはできない。プログラムはエラーをキャッチし、このブロックに座っている(完全に再起動するまで、おそらくハングアップし、さらに良いターミナルが永久にハングアップするようにそれを作る、何がより多くのエラーをしないだろう - これはアイデアです!)。

5) プログラムを初めて起動する場合、または口座にオープンポジションがない場合、注文のクローズブロックは何をするのでしょうか?何もない。しかし、この論理的な仕組みでも、注文の締め切りのブロックまでたどり着けるはずだ。スキームが厳密かつ階層的に構成されているからこそ、そこにたどり着けるのです。すべてのブロックは、たとえそれが空のポジションのリストの無意味で無慈悲な処理であっても、1つずつ処理されなければならない。

6) 注文値計算のブロックは、注文終了のブロックの下に配置される。どうしてでしょう?もしかしたら、その「価値」に基づいてオーダーをクローズするかもしれません。何が起こっているのか、はっきりしない。

そして、私はこのスキームを見て、この「もの」を研究対象として推奨することができるのか、よく理解できないのです。どうしてそれが良い、素晴らしい、教育的だと言えるのか。

OKです。これで批判が明確になった。まあ、「虫眼鏡で」見れば納得できる部分も多いのですが、そんなことをしても意味がありません。初心者は、最も一般的で正しい(グローバルな意味での)EAの構成について、すばやく一般化・簡略化されたアイデアを得る必要があります。

ブロックとは、条件、チェック、関数、プログラムなどの論理的に分離された集合のことである。

プログラムブロックの設計は、プログラムの正しい実行を実現するものです。

ブロックリンクの分岐や深い階層は、生徒を混乱させないために図には示していない。すべてを意図的に簡略化していますが、これは教育的な観点からも正しいことです。もし、コバレフが20ページにわたって、考えられる構造階層の「ギャラリー」を説明していたら、もっと良かったのでしょうか?結局ダメなんだろうけど...)でも、そうなんです、図上よりも実際はすべてが複雑で多様なのが人生なんです。でも、まずは簡単なものから始めてみてください。
 
Реter Konow:
初心者は、最も一般的で正しい(グローバルな意味での)EAの構成について、基本的、一般化、簡略化されたアイデアを得る必要があります。

初心者は、どこに間違いがあって、どこに正しく描かれているのかがわかるものです。彼は、アドバイザーの装置の一般化された表現の本質を得るためにそのための初心者である。そして、ブロックとは何か、矢印とは何か、エラー処理 後にフリーズするのはなぜか--初心者は、そのハイカラな機転で考え込んでしまうのです。

 
Реter Konow:
オッケーです。これで批判が明確になった。まあ、「虫眼鏡で」見ればいろいろと納得できるのですが、そんなことをしても意味がないのです。初心者は、最も広く普及している正しい(世界的な意味での)EAの構成について、一般化・簡略化されたアイデアを素早く得ることが必要です。

ブロックとは、条件、チェック、関数、プログラムなどの論理的に分離された集合のことである。

ブロック構造は、プログラムを正しく実行するためのものです。

ブロックの分岐や階層リンクは、生徒を混乱させないために図には示していない。すべてを意図的に簡略化していますが、これは教育的な観点からも正しいことです。もし、コバレフが20ページにわたって、考えられる階層構造の「ギャラリー」を説明していたら、もっと良かったのだろうか?結局ダメなんだろうけど...)でも、そうなんです、図上よりも実際はすべてが複雑で多様なのが人生なんです。でも、まずは簡単なものから始めてみてください。

ピーターさん、こんにちは。全メッセージから情報をまとめています。MQL5 プログラミング言語では、プログラム(スクリプト、Expert Advisor)を作成・実行 するための明確なBASE アルゴリズムが定義されていません。すべてのアルゴリズムはそれ自体でユニークであり、いわゆる「カーネル」を持つことはできず、その後拡張することができる。では、私の自己学習プログラムが行き詰まったことが判明したのですか?お 気づきの方もいらっしゃると思いますが、私が以前書いたスクリプトはすべて、単純なものから複雑なものへと複雑化するスキームになっています。要するに、頭の中で思考を整理するという概念そのものを壊す必要があるんです。そういうものなのでしょうか?

ウラジミールさん、謹んで申し上げます。

 
MrBrooklin:

ピーターさん、こんにちは。すべてのメッセージから情報をまとめます。MQL5 プログラミング言語では、プログラム(スクリプト、Expert Advisor)を作成・実行 するための明確なBASE アルゴリズムが定義されていません。すべてのアルゴリズムはそれ自体でユニークであり、いわゆる「カーネル」を持つことはできず、その後拡張することができる。では、私の自己学習プログラムが行き詰まったことが判明したのですか?お 気づきの方もいらっしゃると思いますが、私が以前書いたスクリプトはすべて、単純なものから複雑なものへと複雑化するスキームになっています。要するに、頭の中で思考を整理するという概念そのものを壊す必要があるんです。そういうものなのでしょうか?

ウラジミールさん、謹んで申し上げます。

いいえ、決してそんなことはありません。ヴァシリーの批判によって、EA方式の論理的な正しさが損なわれたわけでは決してない。たしかに欠点を見つけて「なるほど」と思うこともありますが、総じて正しい、それが一番大事なことなのです。このスキームがあれば、現地に行ったときに自分でEAを書き始めることができます。大体において、mql4とmql5の間に差はない。細かいところは違いますが、わかりやすいと思います。 今まで通り、勉強してください。
 
Vasiliy Sokolov:

初心者は、どこに間違いがあって、どこに正しく描かれているのかがわかるものです。彼は、アドバイザーの装置の一般化された表現の本質を得るためにそのための初心者である。ブロックとは何か、矢印とは何か、エラー処理後にフリーズするのはなぜか--初心者は、そのパワフルな頭脳で考え抜きます。

どうせもっといい教科書がないんだから......。

小さなエラーは、多くの人がやっているように、他の人のコードの一部を止めて「接着」する言い訳にはなりません。さらに、膨大な量の資料の中から、基本的な正しさを無視した表現をしている。
 
MrBrooklin:

ピーターさん、こんにちは。すべてのメッセージから情報をまとめます。MQL5 プログラミング言語では、プログラム(スクリプト、Expert Advisor)を作成・実行 するための明確なBASE アルゴリズムが定義されていません。すべてのアルゴリズムはそれ自体でユニークであり、いわゆる「カーネル」を持つことはできず、その後拡張することができる。では、私の自己学習プログラムが行き詰まったことが判明したのですか?お 気づきの方もいらっしゃると思いますが、私が以前書いたスクリプトはすべて、単純なものから複雑なものへと複雑化するスキームになっています。要するに、頭の中で思考を整理するという概念そのものを壊す必要があるんです。そういうものなのでしょうか?

ウラジミールさん、謹んで申し上げます。

そうなんだ! 誰もが、人生経験に基づく誤った概念で、プログラミングを学ぼうとしているのです。例えば、プログラムは、目次、序論、目次、結論がある本の文章のようなものであること。つまり、プログラムが最初から最後まで、一種の連続したスキームになっているということです。最初の段階ではこの考え方が通用するが、その後、プログラムが複雑になるにつれて困難が生じ、どうやっても確実に動作するプログラムを書くことはできない。コバレフは、弱気なサービスを提供するのが得意だ。彼は、わかりやすい概念装置を使って、このプログラムは、このようなスキームを持った同じ本であると読者に説明しようとするのである。でも、スキームがないんです!スクリプトはExpert Advisorとは根本的に異なる「スキーム」を持っており、Expert Advisorはインジケータとは異なるスキームを持っているのです。