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

 
Jager:
ビルドがどこでも同じなら、testerAgent-x.x.x-xxxxxbases フォルダ (リモートエージェントとローカルエージェント) も削除してみてください。MQの見積もりで最適化し、次はA-riの見積もりで最適化するとうまくいきました。時々、リモートエージェントがどちらかを開始しようとしないことがありました。
 
notused:
ビルドがどこでも同じなら、testerAgent-x.x.x-xxxxxbases フォルダも削除してみてください (リモートエージェントとローカルエージェントで)。最適化をMQクォートで実行し、次の最適化をA-riクォートで実行すると、うまくいきました。
異なるコンピューターに何十人ものエージェントがいるとしたら、現実的ではありません。外部からの介入なしに動作するようになっているのです。
 

スニペットの"int "の代わりに "uint "を自動代入しているのは、無駄が多い。初心者がよく引っかかるのが、このような手口です。

for (uint i = 0; i < SomeObject.Count - 1; i++)

uint は任意の符号なし整数です。

 
なぜか、オプティマイザが作業を終了した後、「最適化結果」タブのコンテキストメニューバー「単一テストの実行」がアクティブにならず、これに対応してパスラインを左クリックしても起動しないことがよくあります。
 

今日、EAのパラメータをダイナミックにすることに気がつきました。

で、Expert Advisorとインジケータを1つにまとめることは不可能です。

...一緒にひとつに。

何か方法はないのでしょうか?

 
Im_hungry:

EAのパラメータをEA内で動的にすることはできないし、EAとインジケータを1つにまとめることもできないことに今日気がつきました。全く方法がないのですか?

結論ではなく、達成しようとしている目標や目的を記述したほうがいい。

 
Yedelkin:

結論ではなく、狙いと目的を書いた方がいい。

もちろん、これはすべて正しいことです。これが課題です。

インジケーターのパラメーターをダイナミックにし、ポジションをクローズ した時

指標となるパラメータの1つを変更する、それがタスクです。

これが私の解決策です。

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   vhandle=iCustom(NULL,0,"МТ5"); 
   if(vhandle<0)
     {
      Alert("Ошибка при создании индикаторов: ",GetLastError());
      return(-1);
     }
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   IndicatorRelease(vhandle);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{ 
   if (isNewBar()==true)
     {
     ArraySetAsSeries(Sp1Buffer,true);
     ArraySetAsSeries(Sp2Buffer,true);
//----------------------
     vhandle=iCustom(NULL,0,"МТ5",Symbol1,100,Lots,Close());
     if(vhandle<0)
       {
        Alert("Ошибка при создании индиката: ",GetLastError());
       }
     if(CopyBuffer(vhandle,0,0,50,Sp1Buffer)<0 || CopyBuffer(vhandle,1,0,50,Sp2Buffer)<0)
       {
        Alert("Ошибка копирования буферов индикатора номер ошибки:",GetLastError());
       }
     }    
}
//+==================================================================+
int Close()
{
...
}


テストでは異なる結果を示しているので、このコードが動作すると言えるのですが、明確ではありません

が、なぜこんなにうまくいくのか、理解に苦しむ。

フリーズし、バッファに同じ値が表示されるのですが、ありえないことです(2週間同じ値で

ループしない場合は、エラーを書き込むだけです。

アラートメッセージ

Ошибка копирования буферов индикатора номер
 

リモートエージェントが更新されなくなりました。

2011.02.19 21:15:01     Tester  tester agent VPN  20 lvlaxim is failed
2011.02.19 21:15:01     VPN  20 lvlaxim connect closed
2011.02.19 21:15:01     Tester  tester agent VPN  20 lvlaxim cannot synchronized
2011.02.19 21:14:00     VPN  20 lvlaxim Old build 392 of Tester Agent. Attempt to update.
2011.02.19 21:14:00     VPN  20 lvlaxim authorized (agent build 392)
2011.02.19 21:13:59     VPN  20 lvlaxim connected

2011.02.19 19:08:29     VPN  20 lvlaxim connect closed
2011.02.19 19:08:29     Tester  tester agent VPN  20 lvlaxim cannot synchronized
2011.02.19 19:07:28     VPN  20 lvlaxim Old build 392 of Tester Agent. Attempt to update.
2011.02.19 19:07:28     VPN  20 lvlaxim authorized (agent build 392)
 
Voodoo_King:

401を構築する。

1) MT5ユーザーは、開発者がテスターフォームに1つのスイッチを追加するのを待つことはないようであり

if 条件で一行だけコードを書く実行のたびに可視化ウィンドウを開かないようにするため

このスレッドの多くのユーザーが、何度も何度も前にそれを求めていたにもかかわらず。

2) フルサイズのテスターウィンドウに最適化残時間計算の出力を復活させてください(MT4と同じです)。

私はそれを全面的に支持します - たぶんサービスデスクで?(100回閉じる)。
 
notused:

forスニペットに「int」ではなく「uint」を自動代入しているのがもったいない。初心者がよく引っかかるのが、このような手口です。

uint は任意の符号なし整数です。

感謝