初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 595

 
Slava_kornev55:
あ~あ、そうなんだ。そんなフクロウは見つかりませんでした。
ほら、練習だ。
ファイル:
 
Alexander Antoshkin:
どうやら、どこかに括弧や逆コンマを描かないといけないようで、よくわかりません・・・。似たような例を見てみましたが、同じようです、、、、。

必要であれば、関数とその定数 DeleteOrder(ticket) を指定すれば、動作するはずです。

他の関数を呼び出す際に定数を正しく記述する方法

例えば、こんな機能です。

を書いたら、もう一回

コンパイラは具体的に何を言っているのですか?
 
EAやインジケーターの初期化解除機能は、端末を閉じた 時に実行されるのか教えてください。
 
-Aleks-:
アドバイザーやインジケーターで、ターミナルを閉じたときに、初期化解除の機能が実行されるかどうか、ご教示ください。

プログラムの実行

ロード/アンロード用インジケーター

インジケーターは次のような場合に読み込まれます。

-チャートへのインジケータの取り付け

-端末の起動(端末が前回終了する前にチャートにインジケータが装着されていた場合)。

-テンプレートのロード(テンプレートにチャートに添付されたインジケータが含まれている場合)

-プロファイルを変更 する(プロファイル・チャートの1つにインジケータが添付されている場合)

-チャートのシンボルや期間を変更し、インジケータを 取り付ける。

- インジケーターのリコンパイルに成功 したこのインジケーターがチャートに添付されている場合

-インジケータ入力パラメータの 変更。

以下の場合、インジケータはアンロードされます。

- チャートからインジケータをデタッチ するとき

-端末の クローズ(チャートにインジケータが装着されている場合)

-インジケータがチャートに添付されている場合、テンプレートの読み込みを 行う。

インジケーターが装着されたチャートを閉じる- ターミナルを閉じる(チャートにインジケーターが装着されている場合)。

-プロファイルの 変更、変更するプロファイルのチャートの1つにインジケータが装着されている場合

-チャートのシンボルや期間を 変更する。

-インジケータの入力パラメータを変更する

エキスパートの積み込み・積み下ろし

Expert Advisorのロードは、以下の場合に行われます。

-Expert Advisorをチャートにアタッチ する。

-端末の 開始時刻(端末の前回の終了時刻より前にExpert Advisorがチャートにアタッチされていた場合)

-テンプレートのロード(Expert Advisorがチャートにアタッチされている場合)。

-Expert Advisor のリコンパイルに成功 した後(Expert Advisor がチャートにアタッチされている場合)。

- プロファイルの変更(Expert Advisor がプロファイルチャートの 1 つにアタッチされている場合)

-口座番号が変更されていない場合でも、口座への接続が 可能です(サーバでの端末認証前にExpert Advisorがチャートにアタッチされていた場合)

チャートに装着されたExpert Advisorのアンロードは、以下の場合に行われます。

-EAがチャートから切り離 されたとき

-チャートにアタッチ した場合-他のExpert Advisorがすでに同じチャートにアタッチされている場合、Expert Advisorはアンロードさ れます。

-ターミナルを閉じる(Expert Advisorがチャートにアタッチされている場合)

-Expert Advisorが チャートにアタッチ されている場合、テンプレートをロード します。

-Expert Advisor が設定されているチャートを 閉じます。

-プロファイルの 変更、変更するプロファイルのチャートの1つにExpert Advisorが装着されている場合

-端末のアカウント 変更(サーバーでの端末認証前にExpert Advisorがチャートにアタッチされていた場合)

-ExpertRemove() 関数の呼び出し。

Expert Advisorをアタッチしているチャートのシンボルやタイムフレームが変更された場合、Expert Advisorのアンロードやロードは 行われません。この場合、古いシンボル/タイムラインのOnDeinit() と新しいシンボル/タイムラインのOnInit() が一貫して呼び出され、グローバル変数とスタティック 変数の値はリセットされません。初期化(OnInit())完了前にEAが受信したイベントは全て読み飛ばされる。

OnDeinit

Deinitイベントは、Expert AdvisorとIndicatorについて、以下の場合に発生します。

-mql5-programがアタッチされているチャートのシンボルやピリオドが変更され、再初期化 される

-入力パラメータ 変更に伴う再初期化の前。

-mql5-programをアンロード する前。

 
Sergey Gritsay:
コンパイラは具体的に何を言っているのですか?
 
Alexander Antoshkin:
コード全体が見えないとわかりにくいのですが、DeleteOrder 関数でグローバルとローカルで同じチケット 変数名を宣言しているのではないかと思いますので、変数名を変更してください。
 

ありがとうございます。しかし、OnDeinit...が常に動作していない疑いがあります。端子を閉じたとき

 
-Aleks-:

ありがとうございます。しかし、OnDeinit...が常に動作するわけではないと思われます。端子を閉じたとき

OnDeinit()でアンセッティングを行う。そうすれば、もっと実質的な話ができるようになります。
 
Sergey Gritsay:
コード全体が見えないとわかりにくいのですが、DeleteOrder 関数内でグローバルとローカルで同じチケット 変数名を宣言しているのではないかと思いますので、変数名を変更してください。

ああ、わかったよ。

解明してくれてありがとうございます

 

私がバカなのか、それともこれが本来の姿なのか。

5つの買いポジションが開いており、トロールが発動してストップロスを移動させ、価格がロールバックして4つのポジションが閉じ、1つはストップレベルを価格より高くして開いたままとなりました。ログには4つのポジションをクローズした記録しか残っていない。

理由: