エラー、バグ、質問 - ページ 347 1...340341342343344345346347348349350351352353354...3185 新しいコメント Mykola Demko 2011.03.27 16:11 #3461 つまり、端末のバグか、サーバーの履歴のバグか、どちらかです。しかし、より可能性が高いのは、サーバーの履歴からレポートが回収された端末です。 Yedelkin 2011.03.27 16:16 #3462 Urain: Так что это или баг терминала, или серверной истории. Но скорее терминала, тк отчёты на чемпе скорее с серверной истории восстанавливались. それは面白いですね。注意力がなかったんです。わかりやすく解説しています。 Mykola Demko 2011.03.27 16:20 #3463 Yedelkin: それは面白いですね。注意力がなかったんです。わかりやすく解説しています。 以上、誰が楽しくて誰が2週間も虫に刺されてるんだ :o) Mykola Demko 2011.03.27 16:43 #3464 見つけたのですが、デフォルトでは時間でソートされているので、トランザクション番号でソートする必要があります。それなら大丈夫です。 Renat Fatkhullin 2011.03.27 18:08 #3465 Urain: 見つけたのですが、デフォルトでは時間でソートされているので、トランザクション番号でソートする必要があります。そうすれば、すべてが正しくなります。つまり、エラーはないのですか? 要は、時間ではなくチケット番号でトレードをカウント/ソートすることです。私は表面的に報告書を確認しただけで、ポジションの状態を計算したわけではありません。 Mykola Demko 2011.03.27 19:02 #3466 Renat:つまり、バグはないのですか? 要は、時間ではなくチケットでトランザクションをカウント/ソートすることです。私は表面的に報告書を確認しただけで、ポジションの状態を計算したわけではありません。その通りです。ただ、レポートを保存する際、このプロセスの自動化は行われておらず、注意深く監視する必要があります。すべてのユーザーがこの点に注意を払うとは思えませんし、その結果、レポートを解析する際にバグが発生することになります。ZS レポートを解析した後にソートを追加しました。結果的に、私はすべてうまくいきましたが、この機能で苦労するプログラマーは複数いると予測されます。 Vladimir Gomonov 2011.03.28 00:13 #3467 最適化中は、 最適化 グラフの右 上に 最適化パラメータ 名が表示されます。最適化を観察していると、新しい最大値が常に この碑文の後ろに隠されているため、この碑文は煩わしい。レナート 左上に移動しよう! もしくは右下に。あるいは左下...どこでもいいから、頼むから右上に出してくれ! :)// せめて淡い色にして 、情報が見えなくならないように背景に置いてほしい。 削除済み 2011.03.28 09:15 #3468 MetaDriver:最適化中は、 最適化 グラフの右 上に 最適化パラメータ 名が表示されます。最適化を観察していると、新しい最大値が常に この碑文の後ろに隠されているため、この碑文は煩わしい。レナート、左上に移動しよう! もしくは右下に。あるいは左下...どこでもいいから、頼むから右上に出してくれ! :)// せめて淡い色にして 、情報が見えなくならないように背景に置いてほしい。 左下、そして背景として。 Sergey Molotkov 2011.03.28 12:26 #3469 どこで間違ったのか、教えてください。私は、現在の金融商品のポジションと保留中の注文を削除する簡単なスクリプトを書こうとしています。これです。//+------------------------------------------------------------------+ //| clean.mq5 | //| Copyright 2011, MetaQuotes Software Corp. | //| http://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2011, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { MqlTick current_tick; MqlTradeRequest close_request; MqlTradeResult close_result; SymbolInfoTick(_Symbol,current_tick); int counter01; while(check_position()==true); { PositionSelect(_Symbol); close_request.action=TRADE_ACTION_DEAL; close_request.symbol=_Symbol; close_request.volume=PositionGetDouble(POSITION_VOLUME); close_request.type_filling=ORDER_FILLING_AON; if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY) { close_request.price=current_tick.bid; close_request.type=ORDER_TYPE_SELL; } else { close_request.price=current_tick.ask; close_request.type=ORDER_TYPE_BUY; } OrderSend(close_request,close_result); } do { for(counter01=1; counter01<=OrdersTotal(); counter01++) { close_request.order=OrderGetTicket(counter01-1); if(OrderGetString(ORDER_SYMBOL)==_Symbol) { close_request.action=TRADE_ACTION_REMOVE; OrderSend(close_request,close_result); } } } while(check_order()==true); if(GetLastError()!=0) Print("ошибка код ",GetLastError()," функция ",__FUNCTION__," строка ",__LINE__); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool check_position() // функция проверяет наличие позиции { int counter01; bool position_exsist=false; for(counter01=0; counter01<PositionsTotal(); counter01++) { if(PositionGetSymbol(counter01)==_Symbol) { position_exsist=true; break; } } return(position_exsist); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool check_order() // функция проверяет наличие ордеров { int counter01; bool order_exsist=false; for(counter01=0; counter01<OrdersTotal(); counter01++) { OrderGetTicket(counter01); if(OrderGetString(ORDER_SYMBOL)==_Symbol) { order_exsist=true; break; } } return(order_exsist); } //+------------------------------------------------------------------+ ポジションがあるとスクリプトがハングアップする。デバッグしてみると、位置を確認するときにフリーズしてしまうことがわかりました。ループ条件 while(check_position()==true) のチェックが開始されると check_position() に制御が移り、初めて正常に実行されると true を返します。しかし、その後、ループ本体は実行されず、再び条件のチェックを開始し、check_position()に制御が行き、return(order_exsist)演算 子の後にループの条件に戻らず、check_position()関数の最初に行く。どこが間違いなのか教えてください。 Документация по MQL5: Основы языка / Операторы / Оператор возврата return www.mql5.com Основы языка / Операторы / Оператор возврата return - Документация по MQL5 Rashid Umarov 2011.03.28 12:34 #3470 molotkovsm:どこで間違ったのか、教えてください。私は、現在の金融商品のポジションと保留中の注文を削除する簡単なスクリプトを書こうとしています。これです。 ポジションがあるとスクリプトがハングアップする。デバッグしてみると、位置を確認するときにフリーズしてしまうことがわかりました。ループ条件 while(check_position()==true) でチェックが開始されると check_position() 関数に制御が渡され、関数が正常に実行されると一度だけ true を返します。しかし、その後、ループ本体は実行されず、再び条件のチェックを開始し、check_position()に制御が行き、return(order_exsist)演算 子の後にループの条件に戻らず、check_position()関数の最初に行きます。どこを勘違いしているのか、教えてください。位置がある場合、無限ループになるのは while(check_order()==true); イコールwhile(check_order()==true) { // пустой оператор } 演算子本体に区切りがないため、コード内でループから抜け出すことはできません。 1...340341342343344345346347348349350351352353354...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
Urain:
Так что это или баг терминала, или серверной истории. Но скорее терминала, тк отчёты на чемпе скорее с серверной истории восстанавливались.
それは面白いですね。注意力がなかったんです。わかりやすく解説しています。
見つけたのですが、デフォルトでは時間でソートされているので、トランザクション番号でソートする必要があります。そうすれば、すべてが正しくなります。
つまり、エラーはないのですか? 要は、時間ではなくチケット番号でトレードをカウント/ソートすることです。
私は表面的に報告書を確認しただけで、ポジションの状態を計算したわけではありません。
つまり、バグはないのですか? 要は、時間ではなくチケットでトランザクションをカウント/ソートすることです。
私は表面的に報告書を確認しただけで、ポジションの状態を計算したわけではありません。
その通りです。ただ、レポートを保存する際、このプロセスの自動化は行われておらず、注意深く監視する必要があります。すべてのユーザーがこの点に注意を払うとは思えませんし、その結果、レポートを解析する際にバグが発生することになります。
ZS レポートを解析した後にソートを追加しました。結果的に、私はすべてうまくいきましたが、この機能で苦労するプログラマーは複数いると予測されます。
最適化中は、 最適化 グラフの右 上に 最適化パラメータ 名が表示されます。
最適化を観察していると、新しい最大値が常に この碑文の後ろに隠されているため、この碑文は煩わしい。
レナート 左上に移動しよう! もしくは右下に。あるいは左下...どこでもいいから、頼むから右上に出してくれ! :)
// せめて淡い色にして 、情報が見えなくならないように背景に置いてほしい。
最適化中は、 最適化 グラフの右 上に 最適化パラメータ 名が表示されます。
最適化を観察していると、新しい最大値が常に この碑文の後ろに隠されているため、この碑文は煩わしい。
レナート、左上に移動しよう! もしくは右下に。あるいは左下...どこでもいいから、頼むから右上に出してくれ! :)
// せめて淡い色にして 、情報が見えなくならないように背景に置いてほしい。
どこで間違ったのか、教えてください。私は、現在の金融商品のポジションと保留中の注文を削除する簡単なスクリプトを書こうとしています。これです。
ポジションがあるとスクリプトがハングアップする。デバッグしてみると、位置を確認するときにフリーズしてしまうことがわかりました。ループ条件 while(check_position()==true) のチェックが開始されると check_position() に制御が移り、初めて正常に実行されると true を返します。しかし、その後、ループ本体は実行されず、再び条件のチェックを開始し、check_position()に制御が行き、return(order_exsist)演算 子の後にループの条件に戻らず、check_position()関数の最初に行く。どこが間違いなのか教えてください。どこで間違ったのか、教えてください。私は、現在の金融商品のポジションと保留中の注文を削除する簡単なスクリプトを書こうとしています。これです。
ポジションがあるとスクリプトがハングアップする。デバッグしてみると、位置を確認するときにフリーズしてしまうことがわかりました。ループ条件 while(check_position()==true) でチェックが開始されると check_position() 関数に制御が渡され、関数が正常に実行されると一度だけ true を返します。しかし、その後、ループ本体は実行されず、再び条件のチェックを開始し、check_position()に制御が行き、return(order_exsist)演算 子の後にループの条件に戻らず、check_position()関数の最初に行きます。どこを勘違いしているのか、教えてください。位置がある場合、無限ループになるのは
イコール
演算子本体に区切りがないため、コード内でループから抜け出すことはできません。