初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 595 1...588589590591592593594595596597598599600601602...1503 新しいコメント 削除済み 2016.06.20 07:59 #5941 Slava_kornev55: あ~あ、そうなんだ。そんなフクロウは見つかりませんでした。 ほら、練習だ。 ファイル: bollinger_ea_saleks557y_e2e.mq5 37 kb Sergey Gritsay 2016.06.20 08:18 #5942 Alexander Antoshkin:どうやら、どこかに括弧や逆コンマを描かないといけないようで、よくわかりません・・・。似たような例を見てみましたが、同じようです、、、、。必要であれば、関数とその定数 DeleteOrder(ticket) を指定すれば、動作するはずです。他の関数を呼び出す際に定数を正しく記述する方法例えば、こんな機能です。を書いたら、もう一回 コンパイラは具体的に何を言っているのですか? Aleksey Vyazmikin 2016.06.20 08:37 #5943 EAやインジケーターの初期化解除機能は、端末を閉じた 時に実行されるのか教えてください。 Vladimir Karputov 2016.06.20 08:45 #5944 -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が受信したイベントは全て読み飛ばされる。OnDeinitDeinitイベントは、Expert AdvisorとIndicatorについて、以下の場合に発生します。-mql5-programがアタッチされているチャートのシンボルやピリオドが変更され、再初期化 される前。-入力パラメータ 変更に伴う再初期化の前。-mql5-programをアンロード する前。 削除済み 2016.06.20 09:32 #5945 Sergey Gritsay: コンパイラは具体的に何を言っているのですか? Sergey Gritsay 2016.06.20 12:03 #5946 Alexander Antoshkin: コード全体が見えないとわかりにくいのですが、DeleteOrder 関数でグローバルとローカルで同じチケット 変数名を宣言しているのではないかと思いますので、変数名を変更してください。 Aleksey Vyazmikin 2016.06.20 14:44 #5947 Karputov Vladimir:プログラムの実行。OnDeinitありがとうございます。しかし、OnDeinit...が常に動作していない疑いがあります。端子を閉じたとき Vladimir Karputov 2016.06.20 14:48 #5948 -Aleks-:ありがとうございます。しかし、OnDeinit...が常に動作するわけではないと思われます。端子を閉じたとき OnDeinit()でアンセッティングを行う。そうすれば、もっと実質的な話ができるようになります。 削除済み 2016.06.20 14:54 #5949 Sergey Gritsay: コード全体が見えないとわかりにくいのですが、DeleteOrder 関数内でグローバルとローカルで同じチケット 変数名を宣言しているのではないかと思いますので、変数名を変更してください。ああ、わかったよ。解明してくれてありがとうございます Vitaly Muzichenko 2016.06.22 21:17 #5950 私がバカなのか、それともこれが本来の姿なのか。5つの買いポジションが開いており、トロールが発動してストップロスを移動させ、価格がロールバックして4つのポジションが閉じ、1つはストップレベルを価格より高くして開いたままとなりました。ログには4つのポジションをクローズした記録しか残っていない。 1...588589590591592593594595596597598599600601602...1503 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
あ~あ、そうなんだ。そんなフクロウは見つかりませんでした。
必要であれば、関数とその定数 DeleteOrder(ticket) を指定すれば、動作するはずです。
他の関数を呼び出す際に定数を正しく記述する方法
例えば、こんな機能です。
を書いたら、もう一回
アドバイザーやインジケーターで、ターミナルを閉じたときに、初期化解除の機能が実行されるかどうか、ご教示ください。
プログラムの実行
ロード/アンロード用インジケーター
インジケーターは次のような場合に読み込まれます。
-チャートへのインジケータの取り付け。
-端末の起動(端末が前回終了する前にチャートにインジケータが装着されていた場合)。
-テンプレートのロード(テンプレートにチャートに添付されたインジケータが含まれている場合)
-プロファイルを変更 する(プロファイル・チャートの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をアンロード する前。
コンパイラは具体的に何を言っているのですか?
プログラムの実行。
OnDeinit
ありがとうございます。しかし、OnDeinit...が常に動作していない疑いがあります。端子を閉じたとき
ありがとうございます。しかし、OnDeinit...が常に動作するわけではないと思われます。端子を閉じたとき
コード全体が見えないとわかりにくいのですが、DeleteOrder 関数内でグローバルとローカルで同じチケット 変数名を宣言しているのではないかと思いますので、変数名を変更してください。
ああ、わかったよ。
解明してくれてありがとうございます
私がバカなのか、それともこれが本来の姿なのか。
5つの買いポジションが開いており、トロールが発動してストップロスを移動させ、価格がロールバックして4つのポジションが閉じ、1つはストップレベルを価格より高くして開いたままとなりました。ログには4つのポジションをクローズした記録しか残っていない。