エラー、バグ、質問 - ページ 2447

 

最適化中にストラテジーテスターで エラーが発生した。

"タスクがテスターエージェントによって拒否さ れました"

例えば、お客様の口座の通貨がEURの場合。

  • EURJPY 問題なし
  • GBPJPYでのエラー


口座の通貨がUSDの場合

  • USDCAD 問題なし
  • USDJPY 問題なし
  • EURAUDでのエラー


は、コード内で他の通貨ペアが使用されている場合に表示されます。

私の例では、動的ロットの計算を使用しています。

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
   if(DynamicLot)
     {
      if(SymbolInfoDouble(sym,SYMBOL_ASK)!=0)
        {
         if(Valdepo=="USD" || Valdepo=="USC")
           {
            if(StringSubstr(sym,0,3)=="USD")Lot2=BalanceFreeMargin*LotBalancePercent*AccountInfoInteger(ACCOUNT_LEVERAGE)/100/SymbolInfoDouble(sym,SYMBOL_TRADE_CONTRACT_SIZE);
            else if(StringSubstr(sym,3,3)=="USD")Lot2=BalanceFreeMargin*LotBalancePercent*AccountInfoInteger(ACCOUNT_LEVERAGE)/SymbolInfoDouble(sym,SYMBOL_ASK)/100/SymbolInfoDouble(sym,SYMBOL_TRADE_CONTRACT_SIZE);
            else
              {
               pr=SymbolInfoDouble(StringSubstr(sym,0,3)+"USD"+prefix,SYMBOL_ASK);
               if(pr!=0)Lot2=BalanceFreeMargin*LotBalancePercent*AccountInfoInteger(ACCOUNT_LEVERAGE)/pr/100/SymbolInfoDouble(sym,SYMBOL_TRADE_CONTRACT_SIZE);
               else
                 {
                  double Margin=0;
                  OrderCalcMargin(ORDER_TYPE_BUY,Symbol(),1,SymbolInfoDouble(Symbol(),SYMBOL_ASK),Margin);
                  if(Margin!=0)Lot2=BalanceFreeMargin/Margin/100*LotBalancePercent;
                 }
              }
           }
         else

         if(Valdepo=="EUR" || Valdepo=="EUC")
           {
            if(StringSubstr(sym,0,3)=="EUR")Lot2=BalanceFreeMargin*LotBalancePercent*AccountInfoInteger(ACCOUNT_LEVERAGE)/100/SymbolInfoDouble(sym,SYMBOL_TRADE_CONTRACT_SIZE);
            else
              {
               pr=SymbolInfoDouble("EUR"+StringSubstr(sym,0,3)+prefix,SYMBOL_BID);
               if(pr!=0)Lot2=BalanceFreeMargin*LotBalancePercent*AccountInfoInteger(ACCOUNT_LEVERAGE)*pr/100/SymbolInfoDouble(sym,SYMBOL_TRADE_CONTRACT_SIZE);
               else
                 {
                  double Margin=0;
                  OrderCalcMargin(ORDER_TYPE_BUY,Symbol(),1,SymbolInfoDouble(Symbol(),SYMBOL_ASK),Margin);
                  if(Margin!=0)Lot2=BalanceFreeMargin/Margin/100*LotBalancePercent;
                 }
              }
           }



EAが他の通貨の価格を要求している場合など。

 
Nikolai Semko:

それならMQに有能な理由付けが必要だな。
何のために?どのような場合に、どのようにmqlの能力を高めることができるのか?しかも、個人的な気まぐれを満たすためだけでなく。

例えば、EAマネージャを書いたとしましょう。これで、名前の違う2つの同じEAを同じものとして認識することができなくなりました。

例えば、そのEAとそのクローンが以前に実行されたことがあるかどうかを判断する必要があります。

まあ、チャートやEAが多いとこうなりますね。そして、何かの間違いで再び打ち上げられる。

 

開発者の皆様、インジケーターの現在のバーの日付をバッファにコピーする際に、定期的にエラーが発生するのはなぜでしょうか?

2019.04.26 12:12:39.811 i-Regr4_05i (Si-6.19,M1)        Failed to copy data from the handle_Regressor indicator, error code 4401
   datetime Arr[],time1;
   if(CopyTime(symb,0,0,1,Arr)<=0)
   {
   PrintFormat("Failed to copy data from the handle_Regressor indicator, error code %d",GetLastError());
   return(0);
   }

冬はそのようなエラーはなく、インジケータは1ヶ月間安定して動作していましたが、新しいビルドではそのようなエラーが発生するようになりました。

 
ありがとうございました。
 
Mykhailo Ohorodniichuk:

この問題を解決するには、どうすればよいのでしょうか。

Google chcpコマンド

chcp 1251 - windows-1251

chcp 65001 - utf-8

...

 
fxsaber:

例えば、EAマネージャを書いたとしましょう。これで、名前の違う2つの同じEAを同じものとして認識することができなくなりました。

例えば、そのEAとそのクローンが以前に実行されたことがあるかどうかを判断する必要があります。

まあ、チャートやEAが多いとこうなりますね。そして、何かの間違いで再び打ち上げられる。

なるほど...。

でも、やっぱり次の式に傾いているんです。1つの取引口座につき、1つ以上のExpert Advisorを使用することはできません。より理にかなっている。組み合わせたいストラテジーが複数あっても、1つのExpert Advisorの枠内で行う必要があります。この場合、EAマネージャーは必要ありません。さらに、繰り返しになるが、開発者のネイティブな内部ハッシュであっても、ハッシュが違うからといって、EAが異質であることを保証するものではない。

また、EAを起動した瞬間に、たまたまこの口座で他のEAが起動されていないかどうかをチェックして、競合の可能性を防ぐために新しいEAの動作をさらに許可したい場合は、通常の機能で簡単に解決できるので、ここでは同一性チェックは必要ない。

 
Nikolai Semko:

なるほど...。

しかし、私はやはり次の式に傾いています。

では、個人の好みがどう関係するのか?MT5全般についてです。
 
fxsaber:
では、それが個人の好みとどう関係するのでしょうか?MT5全般についてです。
あなた以外の人がEAマネージャーを作ろうと思うとはとても思えませんね。))
 
Nikolai Semko:
あなた以外の人がEAマネージャーを作ろうと思うことは、まずないでしょう。))

なぜ?とても良いことであり、便利なことです。

今のところプロファイルを使うしかないのですが、いろいろと制約があるんです。

 
Andrey Khatimlianskii:

なぜ?とても良いことであり、便利なことです。

今のところプロファイルを使うしかないのですが、いろいろと制約があるんです。

アンドレイ プロファイルのことがよくわからないのですが。