どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 845

 
Pokrov あなたが見ているものは何なのか、私はあなたに言いました...
 
eddy:
Pokrov あなたが見ているものは何なのか、私はあなたに言いました...
悪気はないのですが、2つの意見は1つよりも優れています)))こちらこそ、ありがとうございました。
 
皆さん、こんにちは!本日最後の取引が終了した場合、EAが注文を出さないように設定する方法を教えてください。
 

以下はその答えです。https://www.mql5.com/ru/forum/131277/page295#455199

著者に感謝します。

 

下記のエラー処理ブロックのスペルが正しいのか、それとも何か間違いがあるのか、教えてください。すぐに悪口を言わないように ))))

//+------------------------------------------------------------------+
//| Функция обработки ошибок                                          |
//+------------------------------------------------------------------+
if(GetLastError()>=0)                          
{
   switch(_LastError)  
{                                               // Преодолимые ошибки            
      case  4:Sleep(3000);                      // Простое решение
      break;                                    // Выход из функции
      case  6:Sleep(10000);                     // Простое решение
      break;                                    // Выход из функции
      case 130:Sleep(3000);RefreshRates();      // Обновим данные
      break;                                    // Выход из функции
      case 135:Sleep(3000);RefreshRates();      // Обновим данные
      break;                                    // Выход из функции
      case 136:Sleep(3000);RefreshRates();      // Обновим данные
      break;                                    // Выход из функции
      case 137:Sleep(3000);                     // Простое решение
      break;                                    // Выход из функции
      case 146:Sleep(3000);                     // Простое решение
      break;                                    // Выход из функции
      default:break;        // Другие варианты  // Выход из функции
}                        
}
}
 
インジケータが値の履歴をファイルに保存する(そして後でロードする)方法は? 既製のソリューションはありますか?
 
eddy:
インジケータで値の履歴をファイルに保存し、後で読み込むにはどうしたらよいでしょうか。 既製の解決策はありますか。
確かにありますね。かつて「準備」していた人たちが
 
ありがとうキャップ!聞くだけでなく、解決策を探しています。
 
Pokrov:

下記のエラー処理ブロックのスペルが正しいのか、それとも何か間違 いがあるのか、教えてください。すぐに悪口を言わないように ))))

私の考えでは、エラー処理はユーザー定義関数の形で行うべきで、サーバーへのアクセスに関連するアクションの後に呼び出されるべきです。

例えば OrderSend() は、失敗した場合、すなわちエラーの場合、注文チケットまたは -1 を返します。そこで、コマンドの実行に失敗した場合には、エラーハンドラを呼び出し、そこにエラーコードを渡すようにする必要があります。そして、エラーハンドラでは、失敗したアクションが繰り返されるか、別の値で停止されるような戻り値を提供する必要があります。

例えば、価格が変更された場合、RefreshRates();で再試行し、十分な資金が ない場合は、試行を中止する方がよいでしょう。

 
AlexeyVik:

私の考えでは、エラー処理はユーザー定義関数の形で行うべきで、サーバーへのアクセスに関連するアクションの後に呼び出されるべきです。

例えば OrderSend() は、失敗した場合、すなわちエラーの場合、注文チケットまたは -1 を返します。そこで、コマンドの実行に失敗した場合には、エラーハンドラを呼び出し、そこにエラーコードを渡すようにする必要があります。そして、エラーハンドラでは、失敗したアクションが繰り返されるか、別の値で停止されるような戻り値を提供する必要があります。

例えば、価格が変更された場合、RefreshRates(); と再試行し、資金不足の場合は、試行を中止した方がよいでしょう。

GetLastErrorの 後に関数があるのですが、エラーがあった場合、このブロックに移動して(書いてある通り)コマンドが実行されないのでしょうか?OrderSend() -> GetLastError -> エラーブロック Sleep(3000) RefreshRates() -> ブロックを終了し、条件が残っていれば OrderSend() を再度要求する、といったチェーンは理解できましたが。あるいは、私の推理や概念が間違っているのか。ブロック内に戻り値1か0を書きたいとのことですが、私の関数はSignalBuyのようなブーリアン値とは関係ない単純なもので、私の理解が正しければ、戻り値はそこで返すべきものだと思うのですが。