mql5言語の特徴、微妙なニュアンスとテクニック - ページ 177

 
Andrey Barinov:

変更後、init(もしくはontikが良い)にアンロードする必要があることは理解しました。例えば、アカウント番号をグローバル変数 に記憶しておき、変更が発生したらアンロードする。init()やunloadで_DeInitReasonを解析してみるのもよいでしょう。

この方法は アカウント変更後に同じシンボルが存在する場合にのみ有効です。

 
fxsaber:

口座変更時にアンロードするEAのソースコードを提示してください。

必要ですか?ここでは、シンボル名が違うという問題を言っているのですね。

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

mql5の特性、ヒントとコツ

fxsaber, 2020.05.20 23:09

非常に優れたExpert Advisorを持っていますが、アカウント切り替え時に削除されるはずです。

エキスパートアドバイザーがEURUSDで動作しているとします。シンボルがプリフィックスされたサーバーに切り替わります。例えば、EURUSD.abc.

この場合、EAがハングアップしたまま、自分自身を削除することができません。どなたか、この問題の解決策をご存じないでしょうか?


これはまさに私の答えです。アカウントによって楽器名が異なる場合は、文字列処理機能を使って、その文字列の正しい部分を抽出します。
 
Igor Zakharov:

の場合、OnInit()は起動しないのでしょうか?

何もトリガーされません。

OnDeinit()のレベルで、削除を試みるのでは?

ExpertRemove() は間違いなくヘルパーではありません。テンプレート経由で試すことができます。しかし、OnDeinitは、アカウント変更があったことを検出することができません。

 
Alexey Viktorov:

必要ですか?ここではキャラクター名が違うことが問題視されていますね。

まさにその通りの答えでした。アカウントによって楽器名が異なる場合は、文字列処理機能を使って、その文字列の正しい部分を抽出します。

初心者の方とお話するのはNGです。実行不可能な仮説は提案しないこと。

 
fxsaber:

何も起動しない。

ExpertRemove()は間違いなく役に立ちません。テンプレートで試すことができます。しかし、OnDeinitでは、アカウント変更があったことを判断することはできません。

ExpertRemoveが 機能しない場合、ChartClose()もあります。何が問題なのか理解できない。アカウントを変更した後はどうなりますか?Expert Advisorを使った追加チャートが表示される?それとも、現在のチャート記号が変わるだけ?もしかしたら、ChartIDが変更され、以前の解決策が機能しないのでは?チックはいずれにせよ処理されるので、OnInitが機能していない場合は、OnTickにアンロードする必要があるということです。

 
fxsaber:

新参者に声をかけるのはNG。実行不可能な仮説は提案しないこと。

同様に、動作していないコードを公開してはいけません。また、プログラマーの茨の道で遭遇した問題を、言語機能の 話題で語るのはやめましょう。

 
Alexey Viktorov:

同じように、動作しないコードを公開してはいけません。また、言語機能の 話題で、プログラマーの茨の道で遭遇した問題を論じてはならない。

この問題に関しては無能だな。

 

サービスだけがチャートにリンクされていません。テストしていませんが、アカウントを変更しても再起動できる可能性が高いですし、すでにそこから他のチャートのテンプレートを変更しています。

が、一般的には機能よりもバグが多い。

 
fxsaber:

この問題に関しては無能だな。

そんなに有能なら、なぜうまくいかないのか教えてください。

REASON_ACCOUNT

6

アカウント設定の変更により、別のアカウントがアクティブに なった、またはトレードサーバーに再接続された。

 
Alexey Viktorov:

もしあなたが有能なら、なぜこれがうまくいかないのか教えてください。

REASON_ACCOUNT

6

アカウント設定の変更により、別のアカウントがアクティブに なった、または取引サーバーに再接続された

  1. ドキュメントに偽りあり。再ログインすることで手動で確認することができます。
  2. 簡単に自分を降ろす方法はない。
理由: