私のアプローチコアはエンジンです。 - ページ 47

 
Реter Konow:

むしろ、自分の仕事に対して批判的です。だからこそ、私は常に向上心を持ち続けているのです。

アナトリーは良いですね。間違いありません。図書館が良い。

でも、今日お見せした窓でも、大変な苦労をしてできるんですよ。もちろん、それ以上のことは言うまでもありません。

参考までに、私のウィンドウを繰り返すために必要なコードを書いて、ここに表示してください。

お聞きしたいこと:そのウィンドウがなぜ必要なのか、セミオートマチックトレードにどう役立つのか、説明していただけますか?

 
Реter Konow:

なぜguiライブラリを書いたのですか?

MT4でグラフィカルなオブジェクトを扱う のは、最も時間のかかる作業でもあります。オブジェクトを作るだけでなく、たくさんのプロパティを設定する必要があります。グラフィカルなオブジェクトを扱う作業を簡略化するために、いくつかのグラフィカルなオブジェクトを素早く作成できる関数を用意しました。MT5が登場すると、そのグラフィックオブジェクトはさらに多くのプロパティを持ち、関数のパラメータも増え、バカバカしくなってしまいました。そこで、新しい条件下でグラフィカルなオブジェクトを使った作業をいかに簡略化するかという問題が生じました。OOPが登場すると、その応用が検討された。その結果、まず1つのグラフィカルオブジェクトで高速に作業するためのクラスが作られた。そこで、いくつかの複合元素を作るという発想が出てきた。私はこのアイデアを気に入り、最初の記事-自分自身のコントロールの作り方-を書きました。すべてが順調に進み、2~3週間で、楽しみながら練習して、標準的なものと同様のコントロールをいくつか作成し、ライブラリを作成しました(その説明は2番目の記事にあります)。3回目はフォームについてですが、セットにしては堅苦しいので、ライブラリーを完成させようと思い、そのためにフォームが望ましいと思いました。でも、フォームについては、どうすればよくなるのかがわからなかったのが残念です。また、当時はマウスの移動イベントがなかったため、スクロールバーが変になったり、フォームが異常な方法でドラッグされたりしました。形はどうかというと......催促するどころか、忌み嫌われた。それに、ライブラリーがとても便利な割には、作業量が少ないんです。スクロールバーやドラッグ&ドロップのフォームを作り直したり、フォーム自体を空白のクラスをコピーするのではなく、オブジェクトを作成してそれにコントロールを接続するという別の方法で行うなど、改良することも考えています。

 
Vitaly Muzichenko:

一問一答:なぜそのウィンドウが必要なのか、セミオートマチックトレードにどう役立つのか、説明してください。

半自動売買、それは完全自動売買や手動売買と同じように理解しがたく、金銭的な損害を与える「たわごと」なのです。

トレーダーが興味を持つかもしれない、もう一つのタイプの取引です。

 
Artyom Trishkin:

適当に考えてください。アナトリーの記事の議論を読み返すといいのですが、そこにはあなたの競争しようとする試みがあります。でも、アナトリーはずっと前に、控えめに、質的に、プロフェッショナルに、「雑音も塵もなく」すべてをやってのけたのに、あなたはまだ自分を褒めているのですね。

問題は、「どう使うか」です。50記事も読まないといけないの?それなのに「クイック&イージー」というのだから、なんと逆説的なのだろう。

 
Dmitry Fedoseev:

問題は、「どう使うか」です。50記事も読まないといけないの?

なんとなく、すぐにわかったんですよ~、記事がなくても。もちろん読んでください。出てきて、携帯から読みました。そこに描かれていることを理解するために。しかし、そこでのオブジェクトの 作成と作業は、ピーターのものよりもシンプルです。OnInit()でプロパティを記述したオブジェクトを必要数作成し、OnChartEvent()でそのメッセージを使用する。通常のイベントモデルです。

その後、私は彼のライブラリを自分用にアレンジしました。クロスプラットフォームにし、再初期化時に元の状態にリセットされるのを防ぐため、作成したすべてのオブジェクトの値を保存するようにし、オブジェクトとの多くのインタラクションに音を追加しました(デフォルトと個別に設定、無効 - 常に鳴ったりチンクルしないように)、試しては放棄しました - 私自身のアイデアを持っているのです。Anatolyのライブラリは、プログラムから新規にオブジェクトを作成することができないし、複数のウィンドウをアクティブにすることもできない...。一般的には - 開発することがたくさんあります。しかし、これは彼への質問です。また、自分自身に対しても、必要なものを必要なだけ作ることができます。

 
Artyom Trishkin:

なんとなく、すぐにわかったんですよ~、記事がなくても。もちろん読んでください。出てきて、携帯から読みました。そこに描かれていることを理解するために。しかし、そこでのオブジェクトの 作成と作業は、ピーターのものよりもシンプルです。OnInit()でプロパティを記述したオブジェクトを必要数作成し、OnChartEvent()でそのメッセージを使用する。いつものイベントモデルです。

その後、彼のライブラリを自分用にデジタル化しました。クロスプラットフォームにし、作成したすべてのオブジェクトの保存値を追加して、再初期化しても元の状態にリセットされないようにし、オブジェクトとの多くのインタラクションに音を追加し(デフォルトと個別に設定し、無効にしました-常に鳴ってビンビンしないように)、遊びまくって放棄しました-私自身のアイデアもあります。Anatolyのライブラリは、プログラムから新規にオブジェクトを作成することができないし、複数のウィンドウをアクティブにすることもできない...。一般的には - 開発することがたくさんあります。しかし、これは彼への質問です。また、自分自身に対しても、必要なものを必要なだけ作ることができます。

new経由でオブジェクトを作成することは可能だと思います。そして、フォームの作成は、私と同じダムで、標準ライブラリでは同じです - あなたは、フォームのテンプレートをコピーする必要があります。私があれだけ批判され、形骸化しそうになったのに、そこから先に進んでいないのが面白いですね。

 

このペース...このスピード!

60kmに移動する間に、15ページがトピックに放り込まれました。合計4(!)kmで1ページ ;-)

ピーターには、コアやカーネルエンジンを動かしている暇はない。

 
Dmitry Fedoseev:

オブジェクトはおそらくnewで作れる、不可能なはずはない、いや、本当に不可能なのか?そして、フォームの作成は私と同じように間抜けで、標準ライブラリでも同じで、フォームのテンプレートをコピーする必要があります。私があれだけ批判され、形骸化しそうになったのに、そこから先に進んでいないのが面白いですね。

そう、同じコードを100個のウィンドウに対して、パラメータを変えながら100回繰り返さなければならないのです。そのため、各コントロールに 必要なパラメータを入力することで、汎用的な作成方法を用意しました。したがって、私にとっては非常に簡単に作成することができました - ウィンドウが必要でした - CreateWindow(initial, individual, parameters), etc.そして、その要素を作成した場合、トリンクを追加することも可能ですし、デフォルトで標準のままにしておくことも可能です。

すなわち、およそ(構造的に)そのようなものです。

CreateWindow(0);

CreateButton(1,0,координаты);

CreateButton(2,0,координаты);

...

CreateNuclearBomb(1,0,координаты);

...

まあ、2つのボタンと1つの原爆を持つ1つのウィンドウでもう十分なんですけどね :)

でも、アナトリーのライブラリは作り直したんです。もっと複雑なような気もするのですが。

新規作成については、私の記憶が変わっていなければ、長い間コードを調べていなかったのですが、彼はグローバルレベルで1つのオブジェクトを持っていて、それがすでにすべての要素の作成と制御の役目を果たしています。

もちろん、あなたは新しいによって作成された、いくつかのライブラリでリストを作成しようとすることができますし、タイマーとイベントで、これらのリストとその中に何が起こるかを表示します。しかし、実際にやってみると、それぞれのオブジェクトが隣のオブジェクトの動作に反応し、あるウィンドウを動かすと、他のオブジェクトも暴れるのです。だから、それを理解しようとするのは諦めたんだ--時間がない。

 
Artyom Trishkin:

そう、100個のウィンドウに対して、同じコードを100回繰り返さなければならないのです、ただし、独自のパラメータを使って。私はそれを解消するために、各コントロールに対して、各要素に適したパラメータを入力するだけで、普遍的な作成方法を作りました。したがって、私にとっては非常に簡単に作成することができました - ウィンドウが必要でした - CreateWindow(initial, individual, parameters), etc.そして、その要素を作成した場合、トリンクを追加することも可能ですし、デフォルトで標準のままにしておくことも可能です。

すなわち、およそ(構造的に)そのようなものです。

CreateWindow(0);

CreateButton(1,0,координаты);

CreateButton(2,0,координаты);

...

CreateNuclearBomb(1,0,координаты);

...

まあ、2つのボタンと1つの原爆を持つ1つのウィンドウでもう十分なんですけどね :)

でも、アナトリーのライブラリは作り直したんです。もっと複雑なような気もするのですが。

新規作成については、私の記憶が変わっていなければ、長い間コードを調べていなかったのですが、彼はグローバルレベルで1つのオブジェクトを持っていて、そこからすでにすべての要素を作成し制御する作業が進んでいます。

もちろん、あなたは新しいによって作成された、いくつかのライブラリでリストを作成しようとすることができ、その後、これらのリストとその中に何が起こるかを表示するには、タイマーとイベントで。しかし、実際にやってみると、それぞれのオブジェクトが隣のオブジェクトの動作に反応し、あるウィンドウを動かすと、他のオブジェクトも暴れるのです。それを理解する時間がない。

CreateWindow(0)とCreateButton()のパラメータ0は何ですか?CreateWindow(0)の場合はウィンドウの識別子、CreateButton()の場合はフォーム0にボタンを配置するという意味です。 それとも全くないのでしょうか?1つのフォームだけが可能で、すべてのコントロールは その上にあるのでしょうか?

 
Dmitry Fedoseev:

CreateWindow(0)とCreateButton()のパラメータ0は何ですか?CreateWindow(0)でこれはウィンドウの識別子、CreateButton()でこれはボタンがフォーム0になることを意味します。 それとも全くならないのでしょうか?1つのフォームだけが可能で、すべてのコントロールはその上にあるのでしょうか?

各要素は、他の要素に接続することができます。その通りです。"0 "は要素の識別子です。GUIの設計原理を図式化したものでした。ボタンにはそれがあるので、このウィンドウに添付されることになります。ウィンドウにバインディングを追加しなければ、チャートにくっついてしまう。そういうことだと思うのですが、正確には覚えていません。