MG4スクリプトとアドバイザーをサポートするテスター - ページ 5

 
Integer:
この流れで言えば、C++はJavaScriptと同じである。そして、それは真実なのです

壮大な嘘!?

Javascriptのeval() に似た関数をC++で実装した例を挙げてください。

01      var str = "if (a) { 1+1 } else { 1+2 }"
02      var a = true
03      var b = eval(str)
04      alert("b равно : " + b) // 2
05       
06      // теперь поменяем "a"
07       
08      a = false
09      b = eval(str)
10      alert("b равно : " + b) // 3

つまり、C++のソースコードをstd::string型の変数に書き込んで、eval()関数を呼び出すと、std::string型の変数から取り出したそのソースコードが実行されるのです。

C++でそのような関数eval()の実装を提案してください(つまり、そのような関数がないという話でもなく、言語自体にそのような関数がある可能性について話しているのです)。

もちろん、これだけの違いではないことは言うまでもありません。

MQL4++のコアはMQL5と変わりません。同じ構文、同じ型、操作、オブジェクト、ポリモーフィズム、オーバーロード...です。

唯一の違いは、Expert Advisor、インジケータ、スクリプトのAPIを実装したライブラリです。その意味で、同じJavascriptでも、コア言語と2つのオブジェクトモデルがあるのです。

構造的には、JavaScriptは3つの明確に区別できる部分の連合体として表現することができます。

  • カーネル(ECMAScript)です。
  • BOM(Browser Object Model)。
  • Document Object Model (ドキュメントオブジェクトモデル、DOM)。

そして、MQLはコア言語とライブラリという明確に区別されたものとして表現することができます。MQL4コアとMQL4+コアが異なる場合、MQL4+コアはMQL5コアと異なることはありません。

だから、ここではレナートの 言うことが絶対で、それに反論するのはおかしい。

 
Integer:

その通りです。特に、自分の優れた地位の権威を利用すること。

どの言語も、特に贅沢なものを除けば、同じようなものです。どれも、どんなダミーでも21日で習得できるものばかりです。全てはfor、while、if、switch、もしかしたら書く形は違うかもしれませんが、原則的には何も変わりません。

当然、そのような表面的な理解では、違いを見出すことはできません。だから、どれも同じに見えてしまうのです。

C++だけでなく、MQL4+でもeval()関数で遊んでみたいです。

ビルトインがないので、せめてMQL4+でそのような関数を書いていただけませんか?

私は書けません。JavascriptとMQL4+の違いは、私には大きすぎるのです。

どの言語も同じということですから、JavascriptとMQL4+は同じものですから、かなり簡単に書けるのではないでしょうか?

 
Renat:

その代わりに、非常に経済的なCopyXXX関数に切り替えました。この関数では、開発者が必要なだけのデータをローカル配列に問い合わせるので、利用可能なグラフ全体ではありません。次に、ローカルデータの最速の処理(従来の高価な Open/High/Low/Close/Time[xxx] の代わりに)、さらに作者はデータをキャッシュして次の呼び出しで控えめに使用することができるようになりました。メモリとCPUの節約は莫大なものです。さらに、プラットフォーム自体が膨大なデータベースを管理するために特にハンズフリーになっています。データベースへのアクセスは(監視されていない直接アクセスではなく)常にオンデマンドであり、これによりキャッシュを柔軟に管理することができます。

また、MQL4におけるOpen/High/Low/Close/Time[xxx]コールの簡略化は、現在のシンボルとタイムフレームに限られ、他のシンボルとタイムフレームのデータはすべてiClose/iLow(...)関数で取得していたため、深刻な遅延が発生していたことも特筆されるでしょう。MQL5では、単一のCopyXXX関数モデルへの移行により、開発者は必要なデータチャンクを1回のリクエストで取得でき、複数のブロックされた呼び出し(iCloseの各単一呼び出しでのロックについて考えてください)を行う必要がなくなり、状況が根本的に改善されました。

これらは私たちの機能ではなく、この記事もそうです。この記事は、怪しげな松葉杖とセットになっていますが、違いを示すために公開しました。

私は、恐ろしい松葉杖ではなく、MQL5の新機能を使う必要性を繰り返し説明してきました。

MQL5の新機能の リテラシーの高い 使い方をベースに、初心者でもサイコロのようにコードを組み立てることができるように、十分な 数のサンプルが添付されたドキュメントがあり、MQL5の新機能のリテラシーの高い使い方をベースに書かれたサンプルコードのおかげで、一般的にもリテラシーの高いコードになっていれば、MT5の状況はそれほど悪くならないはずです。

しかし、その代わりに「ひどい松葉杖の束」がコードとして使われている記事があったとたん、MT5の拒否反応とMQL5のAPIに対するそのような態度の両方が出てきました。そして、観客の圧倒的多数はプロのプログラマーではありません。もちろん、これだけがMT5を拒絶する理由ではないが、主要な理由の一つである。

 

と聞かれた人がいました。

- なぜ、例えば宇宙人がいたとしても、私たちに話しかけず、教えてもくれないのでしょうか?

と言われたそうです。

- ゴキブリに言葉を教えますか?なぜ、そうしないのか?


インテージが 言ったことを何一つ理解していない
 
simpleton:

MQL5の新機能を十分に 活用した上で書かれた、十分な 数の事例が添付されたドキュメントがあればいいのですが。

MQL5のドキュメントは 9言語で4000ページ、ソースコードの巨大なコドベース、5言語に翻訳された360の記事、質問できる5言語のフォーラムなどです。

 
rustein:

インテージが 言ったことを何一つ理解していない

彼はそれを正しく理解した。

レシェトフはさらに正確にこう言った: https://www.mql5.com/ru/forum/153749/page4#998584

総じて、MT5への攻撃は、新しいターミナルに乗り換えたくない人の腐った言い訳か、MT5を聞いただけでどこにあるのか知らない人の発明でしかないのです。

 
Renat:

彼はそれを正しく理解している。

一般に、MT5への攻撃は、新しいターミナルに乗り換えたくない人たちの腐った言い訳か、MT5の名前だけは聞いたことがあるが、どこにあるのか知らない人たちの捏造に過ぎないのです。


MT5と何か関係があるのでしょうか?
長くやっていきたい。しかし、このブローカーはまだMT5を提供していない。だから、ちゃんと宣伝してください。
誰が何を理解したか、しないかについては、もしかしたら理解できていないかもしれません。そんなに大事なことなんですか?
 
rustein:

誰が何を理解したか、しないかについては、もしかしたらあなたも理解していないかもしれません。そんなに大事なことなんですか?

あなたは意味のある文章を一つも発していないし、主張も一つしていない。感情だけでいい。

 
Renat:

あなたは意味のある言葉を一つも発せず、一つの主張もしていない。感情だけ。

И?
 
simpleton:

...

最近、ここのどこかで、どのプログラミング言語を学ぶべきかという議論がありました。ある参加者は、「まずロシア語(あるいは他の母国語)」という、とても有益なアドバイスをくれました。会話の内容を理解すること。

という 文章では、C++はJavaScriptと何ら変わりは ない。"このように " というフレーズは、比較の基準を定義する(または明確にする) ものです。そこで、"今ここで何を言っているのか?"という不思議な疑問が湧いてきます。