MT4開発者、プログラマーからのヘルプが欲しい - ページ 2

 
stringo:

非常によく似ています。

1.MQL4言語には、専用のフォーラムがあります。これじゃない。

2.MQL4のドキュメントを読んでいないのでしょう、古くもなく新しくもなく

有用なものへのリンクを与える代わりに、あなたはただ、男の上にがらくたを投げるだけです。

非論理的であることは明白です。ユーザーは(以前のビルドとは異なり)入力パラメータを変更することができ、新しい値はInputsタブに表示されますが、実際に変更されるわけではありません。Expert Advisorは状況を完全に制御しているが、システムはパラメータの更新値を与えず、ユーザーは入力パラメータを変更したかのように錯覚している。

artmedia70 さん、ありがとうございます。試してみます。でも、きっと役に立たないと思います。非初期化が行われていない。非初期化が起きなかった理由を 分析することは可能ですか?(ログに記録なし)。

確かに、ここで誰かが助けてくれるなんて、幻想は抱いていなかった。でも、正直言って、こんな当たり前のことに目をつぶるとは思ってもいませんでした。もちろん、開発者がソフトウェアのバグであることを認めるわけがない。何か「政治的に正しくない」ループを画策しているユーザーを責めるのは簡単です。また、「インデントがおかしい」「コメントを入れていない」と言われることもありました。このループは完璧に機能し、一部の顧客から注文を受けたこれらの方式では、まさに代え難い存在です。しかし、ユーザーによって速やかに変更された入力パラメータの新しい値を初期化することはできない。そして、人を「ゴミ」「文盲」(ドキュメントを読んでいないとされる)と呼びながら、「(新しい値によるパラメータの)初期化がうまくいかない」という事実には反論していないのです。

(そしてまた、私は原因と結果を混同しているのかもしれない?"フック "は常に気づかれないように存在し、ユーザーの生活を便利にするものであるべきです)。

 

英語での投稿で申し訳ありませんが、ご理解いただけると思います。

無限ループを使っているのだから、当然init/deinitは呼ばれない。EAはシングルスレッドなので、init/deinitイベントが処理キューに入っても、それを実行する機会を与えません。

 
Wex:

有用なものへのリンクを与える代わりに、その人の上にゴミを投げつけるだけです。

非論理的であることは明白です。ユーザーは(以前のビルドとは異なり)入力パラメータを変更する機会があり、新しい値はInputsタブに表示されますが、実際に変更されるわけではありません。Expert Advisorは状況を完全に制御しているが、システムはパラメータの更新値を与えず、ユーザーは入力パラメータを変更したかのように錯覚している。

artmedia70 さん、ありがとうございます。試してみます。でも、きっと役に立たないと思います。非初期化が行われていない。非初期化が起きなかった理由を 分析することは可能ですか?(ログに記録なし)。

確かに、ここで誰かが助けてくれるなんて、幻想は抱いていなかった。でも、正直言って、こんな当たり前のことに目をつぶるとは思ってもいませんでした。もちろん、開発者がソフトウェアのバグであることを認めるわけがない。何か「政治的に正しくない」ループを画策しているユーザーを責めるのは簡単です。また、「インデントがおかしい」「コメントを入れていない」と言われることもありました。このループは完璧に機能し、一部の顧客から注文を受けたこれらの方式では、まさに代え難い存在です。しかし、ユーザーによって速やかに変更された入力パラメータの新しい値を初期化することはできない。そして、人を「ゴミ」「文盲」(ドキュメントを読んでいないとされる)と呼びながら、「(新しい値によるパラメータの)初期化がうまくいかない」という事実には反論していないのです。

(そしてまた、私は原因と結果を混同しているのかもしれない?"フック "は常に気づかれないように存在し、ユーザーの生活を便利にするものであるべきです)。

お試しください ;)
 
angevoyageur:

英語での投稿で申し訳ありませんが、ご理解いただけると思います。

無限ループを使っているのだから、当然init/deinitは呼ばれない。EAはシングルスレッドなので、init/deinitイベントが処理キューに入っても、それを実行する機会を与えません。

まあ、 そうかも しれませんね。

 
Wex:

Expert Advisor がループしており、ループから本当に非初期化を呼び出さない場合、OnChartEvent() で入力パラメータの変更を問い合わせるようにしてください。

例えば、チャート上にオブジェクト単位で必要なパラメータを表示します。パラメータをクリックすると(CHARTEVENT_OBJECT_CLICK)、LabelEdit 入力フィールドが呼び出され、新しいパラメータを入力し(CHARTEVENT_OBJECT_ENDEDIT)、ユーザイベント(CHARTEVENT_CUSTOM+n)を介してエキスパートへ送信します。エキスパートでは、イベントを照会し入力パラメータの変化に反応することができます。

 
artmedia70:

さて、エキスパートがループされ、それが本当に初期化サイクルを引き起こさない場合、入力パラメータの変更のポールを整理するためにOnChartEvent()を試してみてください。

例えば、チャート上にオブジェクトを表示させたい場合のオプションです。オプション(CHARTEVENT_OBJECT_CLICK)をクリックすると、新しいパラメータ(CHARTEVENT_OBJECT_ENDEDIT)を入力してユーザイベント(CHARTEVENT_CUSTOM + n)、 ポーリングイベントで専門家にそれらを送信し、入力パラメータの変更に反応する入力フィールドLabelEditを、発生します。

動作しません。同じ問題で、あなたのEAは無限ループに陥り、イベントハンドラは実行されません。
 
angevoyageur:
動作しません。同じ問題で、あなたのEAは無限ループに陥り、イベントハンドラは実行されません。
そうなんですか? 私は知りませんでした OnChartEvent() ループする エキスパートを 書いたことがない ...
 
stringo:

非常によく似ています。

1.MQL4言語には、専用のフォーラムがあります。これじゃない。

2.MQL4のドキュメントを新旧問わず読んでいないのでしょう。

1.MetaTrader4ターミナルを インストールする際、インストールウィンドウにフォーラムへの招待がありますが、このフォーラムは別のものではありません。

2.新フィーチャの途中経過従来は、ループするEAのプロパティウィンドウが開きませんでした。今はそうなっているので、パラメータの変更にウィンドウが反応するようにしてほしいです。あるいは、ユーザーを混乱させないために、プロパティウィンドウを開かない。

 
Wex、タイマーを使えば、もうループを省くことができます。
 
Integer:

1.MetaTrader4ターミナルをインストールする際、インストールウィンドウにフォーラムへの招待がありますが、このフォーラムは別のフォーラムではありません。

2.新フィーチャの途中経過従来は、ループするEAのプロパティウィンドウが開きませんでした。今はそうなっているので、パラメータの変更にウィンドウが反応するようにしてほしいです。あるいは、ユーザーを混乱させないために、プロパティウィンドウを開かないこともあります。

1.Wexのプロフィールを見てください。MQL4のプロフェッショナルな開発者である。彼は馬鹿を演じている。もしくは荒らしてる。理由は定かではありません。

2.よく考える必要がある。新しいパラメータが到着したときにループを強制終了することはできません。エンドレスループの中でプログラマ自身が呼び出すべきIsNewParameter関数のようなもの