エラー、バグ、質問 - ページ 74 1...676869707172737475767778798081...3185 新しいコメント Валерий 2010.07.29 16:15 #731 Expert Advisor をテストしているとき、偶然にもテスターのSleep() 関数が 正しく動作していないと思われるものに出会いました。ポイントは次の通りです。エキスパートアドバイザーは、合計利益が指定されたものよりも高い場合、23:00にすべてのポジションを閉じます(CloseAll()関数)。次のポジションが閉じられた後、Sleep(10000)により10秒間の遅延が導入されます。以下は、ログにある内容です。 FP 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 CloseAll Profit: 3030.66 JD 0 トレード 04:31:04 即売り 0.80 EURAUD at 1.56474 (1.56474 / 1.56558 / 1.56474) JH 0 トレード 04:31:04 取引 #85 売り 0.80 EURAUD at 1.56474 完了 (注文 #85 に基づく) HL 0 トレード 04:31:04 ディール実行 [#85 売り 0.80 EURAUD at 1.56474]. HI 0 Trade 04:31:04 order executed sell 0.80 EURAUD at 1.56474 [#85 sell 0.80 EURAUD at 1.56474]. QE 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 position by EURAUD to be closed. PN 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:0423:0:0 FG 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 Sleep 10 cek. RO 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:0423:0:0 QD 0トレード 04:31:04 買い1.00 USDJPY at 90.444 (90.417 / 90.444 / 90.417) NS 0 トレード 04:31:04 ディール#86 buy 1.00 USDJPY at 90.444 完了 (オーダー#86に基づく) MJ 0 トレード 04:31:04 ディール実行 [#86 buy 1.00 USDJPY at 90.444]. JS 0 Trade 04:31:04 order executed buy 1.00 at 90.444 [#86 buy 1.00 USDJPY at 90.444]. JL 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 USDJPYのポジションがクローズされることになりました。 JI 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:0423:0:0 PN 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 Sleep 10 cek. DF 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:0423:0:0 QN 0トレード 04:31:04 買い 0.80 AUDUSD at 0.90001 (0.89967 / 0.90001 / 0.89967) IH 0トレード 04:31:04 ディール#87 buy 0.80 AUDUSD at 0.90001 done (based on order #87) KQ 0 トレード 04:31:04 ディール実行 [#87 buy 0.80 AUDUSD at 0.90001]. RL 0 Trade 04:31:04 order executed buy 0.80 at 0.90001 [#87 buy 0.80 AUDUSD at 0.90001]です。 EG 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 AUDUSDによるポジションがクローズされることになりました。 LP 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:0423:0:0 JI 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 Sleep 10 cek.NQ 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:0423:0:0見ての通り、ラグの前後は同じ時間になっています。しかし、TimeCurrent() == 0の場合のみ発生します。そうでない場合は、スリップは問題なく動作します。例えば、こんな感じです。 MD 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 CloseAll Profit: 3382.28 KQ 0トレード 04:30:39 ET 0.70 EURUSD at 1.44090 (1.44090 / 1.44108 / 1.44090) IE 0 トレード 04:30:39 取引 #27 売り 0.70 EURUSD at 1.44090 完了 (注文 #27 に基づく) CI 0 トレード 04:30:39 ディール実行 [#27 sell 0.70 EURUSD at 1.44090]. EL 0 Trade 04:30:39 order executed sell 0.70 at 1.44090 [#27 sell 0.70 EURUSD at 1.44090]である。 DH 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 JR 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:3923:0:7 MK 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 Sleep 10 cek. EP 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:3923:0:15 DE 0 Trade 04:30:39 ET 0.80 AUDUSD at 0.91951 (0.91951 / 0.91993 / 0.91951) CJ 0 トレード 04:30:39 取引 #28 売り 0.80 AUDUSD at 0.91951 完了 (注文 #28 に基づく) HR 0 トレード 04:30:39 ディール実行 [#28 sell 0.80 AUDUSD at 0.91951]. HH 0 Trade 04:30:39 order executed sell 0.80 AUDUSD at 0.91951 [#28 sell 0.80 AUDUSD at 0.91951]である。 LS 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 AUDUSD to be closed QL 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:3923:0:15 ED 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 10 cek Sleep. LO 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:3923:0:25 DD 0トレード 04:30:39 買い 0.60 EURAUD at 1.56727 (1.56632 / 1.56727 / 1.56632) LN 0 トレード 04:30:39 ディール#29 buy 0.60 EURAUD at 1.56727 完了 (オーダー#29に基づく) FK 0 トレード 04:30:39 ディール実行 [#29 buy 0.60 EURAUD at 1.56727]. IR 0 トレード 04:30:39 注文実行 0.60 at 1.56727 [#29 buy 0.60 EURAUD at 1.56727]. RM 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 position by EURAUD to be closed. FE 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:3923:0:25 GN 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 Sleep 10 cek.QE 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:3923:0:35ポジションを閉じるためのコードです。if(m_trade[j].PositionClose(m_symbol[j].Name())) { PosCloseCount--; printf("Position by %s to be closed",m_symbol[j].Name()); MqlDateTime dt_struct; TimeCurrent(dt_struct); printf("%u:%u:%u",dt_struct.hour,dt_struct.min,dt_struct.sec); Sleep(10000); Print("Sleep 10 cek."); TimeCurrent(dt_struct); printf("%u:%u:%u",dt_struct.hour,dt_struct.min,dt_struct.sec); }CloseAll関数呼び出し。 MqlDateTime dt_struct; TimeCurrent(dt_struct); if(dt_struct.hour==2 3 && m_account.Profit()>InpProfitToClose) { Trade=false;Print("CloseAll Profit: ",m_account.Profit()); while(PositionsTotal()>0) CloseAll();という条件に変更するとif(dt_struct.hour==23 && dt_struct.min>0 && m_account.Profit()>InpProfitToClose) はエラーになりません。 Документация по MQL5: Общие функции / Sleep www.mql5.com Общие функции / Sleep - Документация по MQL5 Errors, bugs, questions Need help with coding Bar Slava 2010.07.29 16:29 #732 joo: では、私のメッセージは無駄ではない、ということですね。 はい、StringToTimeの 動作を修正しました。 ありがとうございます。 Slava 2010.07.29 16:33 #733 Valmars: Expert Advisor をテストしているとき、偶然にもテスターのSleep() 関数が 正しく動作していないと思われるものに出会いました。ポイントは次の通りです。 とても興味深いです。見てみよう。 x572intraday 2010.07.29 16:44 #734 ニュース "タブを開くと...- それは間違ったニュースです。何か見落としているのでしょうか? Rashid Umarov 2010.07.29 16:48 #735 x100intraday: ニュース」タブを開くとそこには...- それは間違ったニュースです。何か見落としているのでしょうか?ニュースを受信したい言語を設定する。 x572intraday 2010.07.29 17:39 #736 Rosh:ニュースを受信したい言語を設定する。違うんです。なんだかmt5フォーラムの「ニュース」が散りばめられていて、FXのニュースとは全く関係ないですね。最近プロオートのアップデートだけでなく、mt5のディストリビューションを新たにダウンロードしてインストール、もう1週間近く経ちます。平日は「ニュース」タブに入らなかったのでどうだったのかわかりませんが、今発見しました。 Renat Fatkhullin 2010.07.29 18:01 #737 x100intraday:違うんです。なんだかmt5フォーラムの「ニュース」がちりばめられていて、FXのニュースとは関係ないですね。最近はプロ自動アップロードだけでなく、mt5のディストリビューションを再度ダウンロードしてインストールしています、もう1週間近く経ちますね。平日は「ニュース」タブに入らなかったのでどうだったのかわからないが、今発見した。これは、外為ニュースを見逃す代わりに、MQL5.comのニュースを放送する私たちのデモサーバーです(私たちには、他の人のニュースを無料で配信する権利がありません)。表示させたくない場合は、右クリックメニューのニュースカテゴリーの項目にある該当するボックスのチェックを外してください。 Yedelkin 2010.07.29 20:50 #738 自動更新後、以前動作していたEAが、時系列をコピーできないというメッセージを出すようになった。EAをアンロード し、再度ロードすることで問題は解決しました。質問:自動アップデートのこの結果は常に予期されるものなのでしょうか、それともターミナルエラーで、今後解消されるものなのでしょうか? Документация по MQL5: Программы MQL5 / Выполнение программ www.mql5.com Программы MQL5 / Выполнение программ - Документация по MQL5 Renat Fatkhullin 2010.07.29 21:54 #739 Yedelkin:自動更新後、以前動作していたEAが、時系列をコピーできないというメッセージを出すようになった。EAをアンロード し、再度ロードすることで問題は解決しました。質問:自動アップデートのこの結果は常に予期されるものなのでしょうか、それともターミナルエラーで、今後解消されるものなのでしょうか?詳細(ログ、スクリーンショットなど)を教えてください。これなくして、十分な答えを出すことはできません。 Yedelkin 2010.07.29 22:53 #740 Renat: 詳細な情報(ログ、スクリーンショットなど)を提供してください。 これがないと、合理的な回答ができないのです。 OKです。MQサーバーのデモ口座、ログファイルを添付(2010729.log)、自動更新開始時刻は20時54分、22時36分にExpert Advisorを自分で削除し、1分後にアップロードしたものです。 EAでは簡単な型チェックがあります。if(CopyHigh(Symbol(),0,0,bars,high)<bars || CopyClose(Symbol(),0,0,bars,close)<bars || CopyLow(Symbol(),0,0,bars,low)<bars || CopyTime(Symbol(),0,0,bars,time)<bars) { Print("Can't copy timeseries!"); return; } したがって、自動更新のメッセージの後に行った(ファイル20100729copy.log)。 一般的に、これは前に発生しているが、何とか注意を払うことはありませんでした。 Expert Advisor を再読み込みすると、チャート上の建値と逆指値の ラインも消えています。 今お話されたことに、何か付け加えてもよろしいでしょうか? 1...676869707172737475767778798081...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
Expert Advisor をテストしているとき、偶然にもテスターのSleep() 関数が 正しく動作していないと思われるものに出会いました。ポイントは次の通りです。
エキスパートアドバイザーは、合計利益が指定されたものよりも高い場合、23:00にすべてのポジションを閉じます(CloseAll()関数)。次のポジションが閉じられた後、Sleep(10000)により10秒間の遅延が導入されます。
以下は、ログにある内容です。
FP 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 CloseAll Profit: 3030.66JD 0 トレード 04:31:04 即売り 0.80 EURAUD at 1.56474 (1.56474 / 1.56558 / 1.56474)
JH 0 トレード 04:31:04 取引 #85 売り 0.80 EURAUD at 1.56474 完了 (注文 #85 に基づく)
HL 0 トレード 04:31:04 ディール実行 [#85 売り 0.80 EURAUD at 1.56474].
HI 0 Trade 04:31:04 order executed sell 0.80 EURAUD at 1.56474 [#85 sell 0.80 EURAUD at 1.56474].
QE 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 position by EURAUD to be closed.
PN 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:0423:0:0
FG 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 Sleep 10 cek.
RO 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:0423:0:0
QD 0トレード 04:31:04 買い1.00 USDJPY at 90.444 (90.417 / 90.444 / 90.417)
NS 0 トレード 04:31:04 ディール#86 buy 1.00 USDJPY at 90.444 完了 (オーダー#86に基づく)
MJ 0 トレード 04:31:04 ディール実行 [#86 buy 1.00 USDJPY at 90.444].
JS 0 Trade 04:31:04 order executed buy 1.00 at 90.444 [#86 buy 1.00 USDJPY at 90.444].
JL 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 USDJPYのポジションがクローズされることになりました。
JI 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:0423:0:0
PN 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 Sleep 10 cek.
DF 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:0423:0:0
QN 0トレード 04:31:04 買い 0.80 AUDUSD at 0.90001 (0.89967 / 0.90001 / 0.89967)
IH 0トレード 04:31:04 ディール#87 buy 0.80 AUDUSD at 0.90001 done (based on order #87)
KQ 0 トレード 04:31:04 ディール実行 [#87 buy 0.80 AUDUSD at 0.90001].
RL 0 Trade 04:31:04 order executed buy 0.80 at 0.90001 [#87 buy 0.80 AUDUSD at 0.90001]です。
EG 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 AUDUSDによるポジションがクローズされることになりました。
LP 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:0423:0:0
JI 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:04 Sleep 10 cek.
NQ 0 PriceChannel_multi (2) (EURUSD,H1) 04:31:0423:0:0
見ての通り、ラグの前後は同じ時間になっています。しかし、TimeCurrent() == 0の場合のみ発生します。
そうでない場合は、スリップは問題なく動作します。例えば、こんな感じです。
MD 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 CloseAll Profit: 3382.28KQ 0トレード 04:30:39 ET 0.70 EURUSD at 1.44090 (1.44090 / 1.44108 / 1.44090)
IE 0 トレード 04:30:39 取引 #27 売り 0.70 EURUSD at 1.44090 完了 (注文 #27 に基づく)
CI 0 トレード 04:30:39 ディール実行 [#27 sell 0.70 EURUSD at 1.44090].
EL 0 Trade 04:30:39 order executed sell 0.70 at 1.44090 [#27 sell 0.70 EURUSD at 1.44090]である。
DH 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39
JR 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:3923:0:7
MK 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 Sleep 10 cek.
EP 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:3923:0:15
DE 0 Trade 04:30:39 ET 0.80 AUDUSD at 0.91951 (0.91951 / 0.91993 / 0.91951)
CJ 0 トレード 04:30:39 取引 #28 売り 0.80 AUDUSD at 0.91951 完了 (注文 #28 に基づく)
HR 0 トレード 04:30:39 ディール実行 [#28 sell 0.80 AUDUSD at 0.91951].
HH 0 Trade 04:30:39 order executed sell 0.80 AUDUSD at 0.91951 [#28 sell 0.80 AUDUSD at 0.91951]である。
LS 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 AUDUSD to be closed
QL 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:3923:0:15
ED 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 10 cek Sleep.
LO 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:3923:0:25
DD 0トレード 04:30:39 買い 0.60 EURAUD at 1.56727 (1.56632 / 1.56727 / 1.56632)
LN 0 トレード 04:30:39 ディール#29 buy 0.60 EURAUD at 1.56727 完了 (オーダー#29に基づく)
FK 0 トレード 04:30:39 ディール実行 [#29 buy 0.60 EURAUD at 1.56727].
IR 0 トレード 04:30:39 注文実行 0.60 at 1.56727 [#29 buy 0.60 EURAUD at 1.56727].
RM 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 position by EURAUD to be closed.
FE 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:3923:0:25
GN 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:39 Sleep 10 cek.
QE 0 PriceChannel_multi (2) (EURUSD,H1) 04:30:3923:0:35
ポジションを閉じるためのコードです。
CloseAll関数呼び出し。
という条件に変更すると
はエラーになりません。では、私のメッセージは無駄ではない、ということですね。
はい、StringToTimeの 動作を修正しました。 ありがとうございます。
Expert Advisor をテストしているとき、偶然にもテスターのSleep() 関数が 正しく動作していないと思われるものに出会いました。ポイントは次の通りです。
ニュース」タブを開くとそこには...- それは間違ったニュースです。何か見落としているのでしょうか?
ニュースを受信したい言語を設定する。
ニュースを受信したい言語を設定する。
違うんです。なんだかmt5フォーラムの「ニュース」が散りばめられていて、FXのニュースとは全く関係ないですね。最近プロオートのアップデートだけでなく、mt5のディストリビューションを新たにダウンロードしてインストール、もう1週間近く経ちます。平日は「ニュース」タブに入らなかったのでどうだったのかわかりませんが、今発見しました。
違うんです。なんだかmt5フォーラムの「ニュース」がちりばめられていて、FXのニュースとは関係ないですね。最近はプロ自動アップロードだけでなく、mt5のディストリビューションを再度ダウンロードしてインストールしています、もう1週間近く経ちますね。平日は「ニュース」タブに入らなかったのでどうだったのかわからないが、今発見した。
これは、外為ニュースを見逃す代わりに、MQL5.comのニュースを放送する私たちのデモサーバーです(私たちには、他の人のニュースを無料で配信する権利がありません)。
表示させたくない場合は、右クリックメニューのニュースカテゴリーの項目にある該当するボックスのチェックを外してください。
自動更新後、以前動作していたEAが、時系列をコピーできないというメッセージを出すようになった。EAをアンロード し、再度ロードすることで問題は解決しました。質問:自動アップデートのこの結果は常に予期されるものなのでしょうか、それともターミナルエラーで、今後解消されるものなのでしょうか?
自動更新後、以前動作していたEAが、時系列をコピーできないというメッセージを出すようになった。EAをアンロード し、再度ロードすることで問題は解決しました。質問:自動アップデートのこの結果は常に予期されるものなのでしょうか、それともターミナルエラーで、今後解消されるものなのでしょうか?
詳細(ログ、スクリーンショットなど)を教えてください。
これなくして、十分な答えを出すことはできません。
詳細な情報(ログ、スクリーンショットなど)を提供してください。
これがないと、合理的な回答ができないのです。
OKです。MQサーバーのデモ口座、ログファイルを添付(2010729.log)、自動更新開始時刻は20時54分、22時36分にExpert Advisorを自分で削除し、1分後にアップロードしたものです。
EAでは簡単な型チェックがあります。
したがって、自動更新のメッセージの後に行った(ファイル20100729copy.log)。 一般的に、これは前に発生しているが、何とか注意を払うことはありませんでした。
Expert Advisor を再読み込みすると、チャート上の建値と逆指値の ラインも消えています。
今お話されたことに、何か付け加えてもよろしいでしょうか?