MQL5に関するご意見・ご感想

urusov  

私はずっとMQL4を使っていましたが、MQL5でようやくOOPが導入されると聞いて、より柔軟な自動分析システムを速く書けるようになるので、とても嬉しかったです。でも、どれだけがっかりしたのか、言葉が見つかりません。特にシステムの開発では、ポインターを完全に操作し、オブジェクトを 簡単かつ迅速に扱うことができず、95%使い物にならないことにぞっとしました。私たちは皆、ある理論を検証するためにMQLでプログラムを書き、あるアイデアを検証し最適化するために自動的なデータ分析を行い、それを非常に迅速に行う必要があります。この文脈でのトレーディングシステムや分析システムの開発は、言語を抽象化しても、最適でない、あるいは役に立たない可能性が高いことを承知で作業を始めるのだから、ありがたい仕事である。MQL5の開発者の言葉を借りれば、「自分を撃つことはできないが、簡単なアイデア、言い換えれば初歩的なアルゴリズムの実装には数十時間の作業が必要な超安全なツール」だとしたら、何と言えばいいのでしょう。

MQL5の開発者の皆さん、Straustrupの本を読んでいるときに、ある興味深いパラグラフを読み、瞬時にあなたのMQL5の「製品」を思い出しました。

"考える(プログラムを書く)言語 "と "想像できる課題(解決策)"の関係は非常に密接です。このため、プログラミングのミスを防ぐために言語能力を制限することは、危険極まりない。自然言語と同じように、少なくとも2つの言語を知っていることは大きなメリットとなる。言語は、プログラマーに一連の概念的な道具を提供するものである。もし、これらのツールが目の前のタスクに不適切であれば、単に無視されるだけです。言語の特定の機能の有無だけでは、質の高い設計やミスのない設計は保証されない。"

ですから、上記の私のフィードバックからすると、あなたがプログラミングのためにプログラミングしたものは、MQLが意図する目的には全く適していません。MQL5のOOPなどというツールは、単に無視することを強要され、ありがとうございました。

Anatoli Kazharski  

せめて例を挙げるべきでしょう。

ポインターを完全に操作して、オブジェクトを 素早く簡単に扱うことができないとはどういうことですか?大規模なスキームを開発する際に、これで問題が発生したことはないですね。

Renat Fatkhullin  

最近の管理しやすい安全な言語では、ポインタを「完全に」(つまり危険なほど)操作できるものはほとんどありません。特にMQL4/MQL5では、安全性と制御性が最重要視されます。

あとはすべて、現在進行形で利用可能です。そして、安全なポインターも用意されています。

ほとんどの場合、あなたはそれを理解していないだけで、自分自身の思考の山を転がしているのです。この根拠のない流れは、他に呼びようがない。

urusov  
Renat Fatkhullin:

最近の管理しやすい安全な言語では、ポインタを「完全に」(つまり危険なほど)操作できるものはほとんどありません。特にMQL4/MQL5では、安全性と管理性を第一に考えなければなりません。

それ以外のものは、すべて存在し、利用可能です。そして、安全なポインターもそこにある。

ほとんどの場合、あなたはそれを理解していないだけで、自分の思考の山を転がしているのです。この根拠のない流れは、他に呼びようがない。

お願いします。

https://www.mql5.com/ru/forum/35326

https://www.mql5.com/ru/forum/1111/

ポインタに異なるアドレスを割り当てることができない、広く使われている言語を1つ挙げてください。ある型の参照を同じ型の別のオブジェクトに割り当てることができない、よく使われる言語を1つ挙げてください。このような言語の制限のために、コンストラクタやコピー関数を記述することを余儀なく される場所が他にあるでしょうか?

また、制御性を最重要視するのであれば、なぜ他の制御言語では同様の制限を課さないのでしょうか?

個人的には、私にとって最も重要なことは、安全性や制御性ではなく、アイデアを実現するスピードです。これは、トレーディングのアイデアの文脈では極めて公平です。これに反対する人は、自分のシステムの価値を過大評価しているか、特定の結果ではなく、プログラミングのためにプログラミングをしているのでしょう。

urusov  

Renatさん、あなた自身、私が最初の投稿で書いたことを認め、セキュリティの柔軟性が失われることを、否定できない利点としてベールに包んでいますが、全くそんなことはありませんよ。

Битый указатель (именно указатель как сущность и рабочая единица языка) контролируется системой и безопасно обрабатывается, выдавая при необходимости рантайм ошибку, указывая на ошибку автора. А вот "физическая" ссылка не может быть проконтролирована, да ее и нет в языке (не путайте с передачей параметра по ссылке, где это лишь контролируемый системой метод связи).

危険なリンクを取り除くことは、現在のC++というモンスターから安全な言語を作るための第一歩です。意図的に、意図的にリファレンスを削除し、セルフ撮影を廃止して柔軟 性を失いました。

この能力がないと、私はプログラミングをコントロールすることを余儀なくされるので、自分の足を撃つ能力を与えてください。そして、私は実装したいアイデアをコントロールしたいのです。
Vasiliy Sokolov  
urusov:

お願いします。

https://www.mql5.com/ru/forum/35326

https://www.mql5.com/ru/forum/1111/

ポインタに異なるアドレスを割り当てることができない、よく使われる言語を1つ挙げてください。同じ型の参照を別のオブジェクトに割り当てることができない、広く使われている他の言語を1つ挙げてください。このような言語の制限のために、コンストラクタやコピー関数を記述することを余儀なく される場所が他にあるでしょうか?

また、制御性を最重要視するのであれば、なぜ他の制御言語では同様の制限を課さないのでしょうか?

個人的には、私にとって最も重要なことは、セキュリティや制御性ではなく、アイデアを実現するスピードです。それは、アイデアを取引するという文脈では極めて公平です。これに反対する人は、自分のシステムの価値を過大評価しているか、特定の結果ではなく、プログラミングのためにプログラミングしているのでしょう。

同志よ!自分の言語に対する無知を開発者の責任範囲に転嫁しないこと。MQL5では、様々なオブジェクトを自由にポインタに代入し、そのオブジェクトをポインタとして渡すことができます。C#やJavaなどの他のモダンな言語と同様に、MQL5でも明示的な型チェックが行われ、その変換は同じクラス階層(継承)の中でのみ実行可能です。繰り返しになるが、C#やJavaなど、広く使われている 他の言語でも 全く同じ動作が実装されている。

Vasiliy Sokolov  
urusov:

レナートさん、あなた自身、私が最初に書いたことをすべて認めた上で、セキュリティの柔軟性が失われることを否定できない利点としてベールに包んでいるのですが、実際はそうではありません。

この能力がないと、私はプログラミングをコントロールすることを余儀なくされるので、自分の足を撃つ能力を与えてください。そして、私は実装したいアイデアをコントロールしたいのです。
今までの投稿を見る限り、あなたは見事に自分の足を撃つことを学びましたね。あとは、プログラミングを覚えるだけです。
Renat Akhtyamov  
5Rkaが好きです。もっとも、スターターが理解するのに十分な時間がなく、結論に飛びついたのだろう。もちろん最初は少し複雑ですが、その価値はあります。
Renat Fatkhullin  
urusov:

レナートさん、あなた自身、私が最初の投稿で書いたことをすべて認めた上で、セキュリティにおける柔軟性の喪失を、まったくそうでないにもかかわらず、否定できない利点としてベールに包んでいるのです。

自分の足を撃つ機会を与えてください。この機会がなければ、私はプログラミングをコントロールしなければなりませんし、実行したいアイデアをコントロールしたいからです。

教育して、もっと安全について考えたほうがいい。

何も認めないが、上記リンク先(特定の場所を明確にしなくても投げている)で、MQL4/MQL5で何が、どのように、なぜ行われたかを正当化した。2001年(MQL登場時)からの取引プラットフォーム向けアプリケーション言語開発の実務経験から、グローバルな結果を出すために何が必要かを明確に理解しています。


奔放なスピードが欲しいのか?しかし、MQL5でもネイティブのC++コンパイラーに追いつきました。x64プラットフォーム用の新しいMQL5コンパイラーのテストでは、2倍から10倍にスピードアップしました

Renat Fatkhullin  
urusov:

ポインタに異なるアドレスを割り当てることができない、広く使われている言語を1つ挙げてください。同じ型の参照を他のオブジェクトに割り当てることができない、広く使われている他の言語を1つ挙げてください。このような言語の制限のために、コンストラクタやコピー関数を記述することを余儀なく される場所が他にあるでしょうか?

まあ、少なくとも標準ライブラリhttps://www.mql5.com/ru/docs/standardlibrary を調べて、参照を完全に操作するコード (in MQL5Include*) を見てください。

明らかに、言語を全く意識していない。

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
理由: