[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 1070

 
dzhini:
でも、うまくいかない :(
そのため、他の場所では動作しないか、私が何か見落としているのか
 
Reshetov:
そのため、他の場所では動作しないか、私が何か見落としているのか
直接ドアを叩いてもいいですか?
 
dzhini:
直接ドアを叩いてもいいですか?
いいえ。プライベートメッセージは、個人的な連絡のためにのみ使用されます。また、コードのエラーは、他の人が同じ間違いをしないように、公に議論されなければなりませんし、誰かが既成の解決策へのリンクを共有することもできます。
 

こんにちは。この簡単なコードは、エラーで動作します。自分でも理由がわからない。

最初の命令で開き、修正し、2番目の命令で開き...修正しない。故障するまで保管する。

ログにはこう書かれている。

"01:23:22 MarkTradeがテストのために開始されました。

01:23:22 2010.01.29 00:00 MarkTrade EURUSD,H1: open #1 buy 1.00 EURUSD at 1.3965 ok

01:23:22 2010.01.29 00:00 MarkTrade EURUSD,H1: modify #1 buy 1.00 EURUSD at 1.3965 sl: 1.3935 tp: 0.0000 ok

01:23:22 2010.01.29 00:28 テスター:ストップロス#1@1.3935 (1.3935 / 1.3937)

01:23:22 2010.02.01 00:00 MarkTrade EURUSD,H1: open #2 buy 1.00 EURUSD at 1.3877 ok

01:23:22 2010.05.05 13:17 MarkTrade: Stop Outのため停止しました。

01:23:22 2010.05.05 13:17 テスター:注文2番が終了しました。

間違えた!OrderSend はブール 値でない 値を返す!

int start()
  {
  int total=OrdersTotal();
  if (total==0)
   {
      if (TimeHour(TimeCurrent())==00&&TimeMinute(TimeCurrent())==00)
      {
      Buy();
      }
   }
return(0);
  }
//////////////////////////
void Buy()
 {
 RefreshRates();
 if (OrderSend(Symbol(), OP_BUY, 1, NormalizeDouble(Ask,Digits), 0,0,0,"",123321,0,Blue)==true)
         {
           Modify();
         }
 }
/////////////////////////////
void Modify()
 {
    int total = OrdersTotal();
      for(int i=total-1;i>=0;i--)
       {
       OrderSelect(i, SELECT_BY_POS,MODE_TRADES);
       if (OrderModify (OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-NormalizeDouble(30*Point,Digits),OrderTakeProfit(),0,CLR_NONE)== false) Modify();
       }
 }
 

グッドアフターヌーン

異なるフレームで動作するテスターの作り方。

を、歴史の中に走らせる。

 

おはようございます。

明確にしてください。Expert Advisor を最適化する際、遺伝的アルゴリズムを有効にして異なる TP を設定すると、異なる結果が得られることに気づきました。例えば、TP=400 に設定すると、1 から 400 までのステップで最適化し、次に 350 に設定すると、1 から 350 までのステップで最適化して、TP=50 まで続けます。つまり、TR=400の時だけ走ると、TPが低くても良い 結果を「飛ばす」ことが判明したのです 遺伝のせい?(記事https://www.mql5.com/ru/articles/1347(Created:25.12.2009 Author:Rider) に書いてあります。"...遺伝は確かに便利なものですが、合理的な範囲内で。つまり、そのアルゴリズムが残酷な冗談を言うかもしれないということです。その視点から見て有利なパラメータのセットが特定され、それ以降の最適化は最後の最後まで「その周り」で行われます。その結果がどうなるかは明らかだと思います。最適化領域の外で機能する本当に良い バリアントのほとんどは「外」のままとなり、「最適化結果」の表には表示されなくなります。

出口はいくつかある。根本的な解決策として、遺伝的アルゴリズムによる最適化を拒否することが挙げられます。しかし、これはある理由から、必ずしも良い解決策とは言えません。次の2つは中途半端なものですが、少なくとも何かはあります。

- 最適化は一度だけでなく、二度以上行い、一度目は「バランス」、次は「最大ドローダウン」等とする."). つまり、最良の結果を得られないためには、異なるTPで+異なる「最適化可能なパラメータ」によって実行し、さらに、例えば、信頼性のために各テストについて9つの最適化で9つのフォワードテストを行うべきなのでしょうか。

 
eddy:

何らかの理由で周期が中断されない

この場合のBreakは、条件が満たされたときにのみ、ループをトリガーして中断させます。条件を満たさない場合、ループは無限大となる。この方法で試してみてください。

int sec=Seconds();
       while(true) 
        {if(sec!=Seconds())          // new sec
          { int ms=GetTickCount(); }
       break;
        }
 
volshebnik:

この場合のbreakは 、条件を満たした場合のみ機能します。

だからif()の中なんですね。
 
こんにちは!ターミナルでシンボルのプロパティを 変更するにはどうすればよいですか?最低停止レベルは300と書かれています。EAをテストできない。
 
Pro

例えばスプレッドを変更するためにTakeMySpreadというプログラムがありますが、どのように、あるいは何を使って「ストップレベル」を変更すれば、様々な条件でEAをテスト することができます。助けて