エラー、バグ、質問 - ページ 1520 1...151315141515151615171518151915201521152215231524152515261527...3185 新しいコメント 削除済み 2016.02.26 13:27 #15191 Slawa:それ以外の方法はまだないのです。プログラムを即座に終了させる新しいexitコマンドの導入を検討したが、ここには未解決の問題がある それは残念です。そうですね、C++のようなexit()があるといいですね。現在では、ネストした関数のレスポンスを呼び出し側の関数に引き込むことは、むしろ問題になっています。そして、ユニバーサルライブラリーは存在しない。 coderex 2016.02.26 13:59 #15192 Alexey Kozitsyn: それは残念です。そうですね、C++のようなexit()があるといいですね。現在では、ネストした関数のレスポンスを呼び出し側に引き込むことは、むしろ問題視されている。そして、ユニバーサルライブラリーは存在しない。 もう一つの方法は、プログラムのすべてのオブジェクトを個別に削除する関数を作成し、ターミナルからプログラムを削除する条件が満たされたときにそれを呼び出し、その後にExpertRemove() を実行することです、この場合、すべてが速く終了するはず ですが・・・。まさかとは思いますが) 削除済み 2016.02.26 15:08 #15193 coderex: あるいは、プログラムのオブジェクトをすべて削除する関数を別途作成し、ターミナルからプログラムを削除する条件を満たしたときにその関数を呼び出し、その後にExpertRemove()を実行すれば、この場合はすべてが速く完了するはず ですが...。さだかでないけれども)以前にも書きましたし、このサイトの記事でも提案されていましたが、深いネストした関数でエラーが発生した場合、0による除算を呼び出すか、配列を 終了させることができます。でも、いい加減なんです。そう、そしてそれはOOPに限ったことではないのです(私が理解した限りでは、あなたはそれを意味しています)。単純に - エラーが修正できない場合、プログラムは終了します。 削除済み 2016.02.26 15:10 #15194 Slawa: 停止するが、すぐには停止しないExpertRemove() は、インジケータで使用しても良いのでしょうか、悪いのでしょうか? Sergey Gritsay 2016.02.26 15:43 #15195 Alexey Kozitsyn: よくわからないのですが、ExpertRemove()をインジケータで使用するのは正しいのでしょうか?インジケーターの機能があるのか、もう関係ないような気がしますChartIndicatorDelete(); Slava 2016.02.26 16:03 #15196 Alexey Kozitsyn: よくわからないのですが、ExpertRemove()をインジケータで使用するのは正しいのでしょうか?いいえ、ExpertRemove() はインジケータに重なっています。"停止するが、すぐには停止しない "というのは、ExpertRemove全般について言われていることです。この機能は、プログラムの動作を中断させることはありません。 削除済み 2016.02.26 16:13 #15197 Slawa:いいえ、ExpertRemove()はインジケータに重なっています。"停止するが、すぐには停止しない "というのは、ExpertRemove全般について言われていることです。この機能は、プログラムの動作を中断させません。 一般的に、exit()で問題を解決する計画はありますか?それともユーザーは松葉杖で解決しているのでしょうか(笑)。 Ilya Malev 2016.02.26 18:24 #15198 Slawa: 例を挙げてください。問題を説明するために、インジケーターのソースコードを渡すリダクタで作成したデフォルトのインジケータのOnCalculateにテキストを挿入します。任意のチャートに配置します。チャートウィンドウの左上に、インジケータの動作が表示されます。インジケーターの一覧から「削除」を選択した後も、動作は停止しませんので、左上に 表示されていることを確認してください。ウィンドウを閉じた後も継続されます。新しいウィンドウを開いた後、新しいウィンドウで続きが表示されます。このウィンドウは、必ずしも最初に持っていたものと同じシンボルを持つわけではありません :)端子を閉じたときのみ、インジケーターの動作が停止します。しかも、止まるか止まらないかわからない......ただ、タスクマネージャで手動で端末を削除して再起動させただけなのに......。同時に、IsStopped関数のヘルプには、mql-programを終了させるコマンドがあった場合、3秒後にプログラムの動作を停止させると書かれています。 int i=0; while(true){ Comment(i++); Sleep(100); } また、while(true)をwhile(!IsStopped())に置き換えると、チャートから削除してもインジケータは正常に完了します。 Alexandre 2016.02.27 00:53 #15199 Internal Compiler Error(インジケータで使用している関数)のおかしな理由。void SaveData ( uint handle_, int wrdata_, int interv_, string dpath_, int tmode_, int tmult_, long ctime_, long& ltime_ ){ int ierr, wrtint;// ---- if ( interv_ > 0 ) // 作業モード{ if ( MQLInfoInteger ( MQL_TESTER ) == 0 ){ wrtint = interv_; }.// 意味はない さもなくば{ wrtint = interv_ * tmult_; }.// どうでもいい//if ( ( ctime_ - ltime_ ) >= ( wrtint * 60 ) ) // この行をコメントアウトすると、エラーが消 えます。{// データを保存するためのいくつかのコード ...は意味がない - テスト済み//ltime_= ctime_; // 一般的にはどちらでも良い。}// if ( ( ctime_ - ltime_ ) >= ( wrtint * 60 ).}// if ( interv_ > 0 )// ---- を返します。}// void SaveData( すみません、SRCボタンでは必要な部分を選択できないので、意図的に使っていません )治療法は明らかですが、納得してください。むしろ、おかしな不具合です。:))) Errors, bugs, questions MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第25部): 取引サーバから返されたエラーの処理 MetaTraderプログラムを簡単かつ迅速に開発するためのライブラリ(第26部): 未決取引リクエスト - 特定の条件下でのポジションのオープン Ilya Malev 2016.02.28 12:40 #15200 ある証券会社では、100万円の売上で16×2ドルの手数料が設定されている。 サーバーの設定で16ドルの手数料を設定しているようだ。そして今、彼らのサーバーでのテストでは、手数料16x2がそのロットサイズに関係なく、各トランザクションから差し引かれます。サーバーを設定する技術がないのか、それともMT5の本当の限界なのか。テスターでコミッションが正しく処理されるように、サーバー上で具体的に何をするようにアドバイスすればよいのでしょうか。 1...151315141515151615171518151915201521152215231524152515261527...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
それ以外の方法はまだないのです。
プログラムを即座に終了させる新しいexitコマンドの導入を検討したが、ここには未解決の問題がある
それは残念です。そうですね、C++のようなexit()があるといいですね。現在では、ネストした関数のレスポンスを呼び出し側に引き込むことは、むしろ問題視されている。そして、ユニバーサルライブラリーは存在しない。
あるいは、プログラムのオブジェクトをすべて削除する関数を別途作成し、ターミナルからプログラムを削除する条件を満たしたときにその関数を呼び出し、その後にExpertRemove()を実行すれば、この場合はすべてが速く完了するはず ですが...。さだかでないけれども)
以前にも書きましたし、このサイトの記事でも提案されていましたが、深いネストした関数でエラーが発生した場合、0による除算を呼び出すか、配列を 終了させることができます。でも、いい加減なんです。
そう、そしてそれはOOPに限ったことではないのです(私が理解した限りでは、あなたはそれを意味しています)。単純に - エラーが修正できない場合、プログラムは終了します。
停止するが、すぐには停止しない
よくわからないのですが、ExpertRemove()をインジケータで使用するのは正しいのでしょうか?
インジケーターの機能があるのか、もう関係ないような気がします
ChartIndicatorDelete();よくわからないのですが、ExpertRemove()をインジケータで使用するのは正しいのでしょうか?
いいえ、ExpertRemove() はインジケータに重なっています。
"停止するが、すぐには停止しない "というのは、ExpertRemove全般について言われていることです。この機能は、プログラムの動作を中断させることはありません。
いいえ、ExpertRemove()はインジケータに重なっています。
"停止するが、すぐには停止しない "というのは、ExpertRemove全般について言われていることです。この機能は、プログラムの動作を中断させません。
例を挙げてください。問題を説明するために、インジケーターのソースコードを渡す
同時に、IsStopped関数のヘルプには、mql-programを終了させるコマンドがあった場合、3秒後にプログラムの動作を停止させると書かれています。
また、while(true)をwhile(!IsStopped())に置き換えると、チャートから削除してもインジケータは正常に完了します。
Internal Compiler Error(インジケータで使用している関数)のおかしな理由。
void SaveData ( uint handle_, int wrdata_, int interv_, string dpath_, int tmode_, int tmult_, long ctime_, long& ltime_ )
{
int ierr, wrtint;
// ----
if ( interv_ > 0 ) // 作業モード
{
if ( MQLInfoInteger ( MQL_TESTER ) == 0 ){ wrtint = interv_; }.// 意味はない
さもなくば{ wrtint = interv_ * tmult_; }.// どうでもいい
//
if ( ( ctime_ - ltime_ ) >= ( wrtint * 60 ) ) // この行をコメントアウトすると、エラーが消 えます。
{
// データを保存するためのいくつかのコード ...は意味がない - テスト済み
//
ltime_= ctime_; // 一般的にはどちらでも良い。
}// if ( ( ctime_ - ltime_ ) >= ( wrtint * 60 ).
}// if ( interv_ > 0 )
// ----
を返します。
}// void SaveData
( すみません、SRCボタンでは必要な部分を選択できないので、意図的に使っていません )
治療法は明らかですが、納得してください。むしろ、おかしな不具合です。:)))
ある証券会社では、100万円の売上で16×2ドルの手数料が設定されている。 サーバーの設定で16ドルの手数料を設定しているようだ。そして今、彼らのサーバーでのテストでは、手数料16x2がそのロットサイズに関係なく、各トランザクションから差し引かれます。
サーバーを設定する技術がないのか、それともMT5の本当の限界なのか。テスターでコミッションが正しく処理されるように、サーバー上で具体的に何をするようにアドバイスすればよいのでしょうか。