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

 
fxsaber:

更新された修正時間は結果に影響を与えません。電子ブック

はい、ありがとうございます。何が問題だったのかがわかった。

近い将来、修正版が出る予定です。ただし、共通フォルダから使用するファイルの制御はまだできません。プロパティtester_fileで指定されたファイルのみ。

 

合格後、ビジュアライゼーションモードでテスターの電源を入れ直すと、設定が間違っていることに気づき、ストラテジーテスターが 数分間ハングアップしてしまうのです。

2018.07.11 17:03:05.992 Core 8  disconnected
2018.07.11 17:03:05.992 Core 8  connection closed
2018.07.11 17:03:09.241 Core 8  connecting to 127.0.0.1:3000
2018.07.11 17:03:18.308 Tester  stopped by user
2018.07.11 17:03:19.241 Core 8  tester agent authorization error
 
//Определение экстремума
for(int i=NBars;i<=NumBars;i++)
     {
      xMinL=ArrayMinimum(MinBuffer,0,i);
      xMinLD=ArrayMinimum(MinBuffer,0,i+NBars);
      if((MinBuffer[xMinL]<=MinBuffer[xMinLD])&&(xMinL>=NBars))
        {
         Minimum=MinBuffer[xMinL];
         break;}}

//Проверка если ордера с такой же ценой не существует         
   for (int r=0; r<=OrdersTotal(); r++)
   {if (OrderSelect(OrderGetTicket(r)))
    {if (StringToDouble(OrderGetString(ORDER_COMMENT))==NormalizeDouble(Minimum,_Digits))    
       {x2=1;
        break;}
     else x2=0;}}

//Проверка если Позиции с такой же ценой не существует     
   for (int l=0; l<=PositionsTotal(); l++)
   {if (PositionSelectByTicket(PositionGetTicket(l)))
    {if (StringToDouble(PositionGetString(POSITION_COMMENT))==NormalizeDouble(Minimum,_Digits))     
       {y2=1;
        break;}
     else y2=0;}}

//Если проверка отрицательная, открываем ордер        
   if ((x2==0)&&(y2==0))
   m_trade.SellStop(Volume,NormalizeDouble(Minimum,_Digits),_Symbol,NormalizeDouble(Minimum+(SL_ATR*ATR2),_Digits),NormalizeDouble(Minimum-(TP_ATR*ATR2),_Digits),ORDER_TIME_GTC,0,DoubleToString(Minimum,_Digits));
親愛なるフォーラムのユーザーの皆様、こんにちは。これは、極値を検出し、その極値に保留注文を出すコードの抜粋である。うまくいっているように見えますが、時々、停止基準を見ていないかのように、ある極限で無限のポーズを設定し始めることがあります。もう、頭を悩ませています。
 
Dmitri Custurov:
親愛なるフォーラムのユーザーの皆様、こんにちは。これは、極値を検出し、その極値に保留注文を出すコードの抜粋である。うまくいっているように見えますが、時々、停止基準を見ていないかのように、ある極限で無限のポーズを設定し始めることがあります。もう、頭を悩ませています。

では、比較することは正しいのでしょうか?

if (StringToDouble(PositionGetString(POSITION_COMMENT))==NormalizeDouble(Minimum,_Digits)){.....}
 

インジケーターに

すでに頭が沸騰しているので、ビジュアルストラテジーテスターモードで 印刷 - ロジックのエラーを見つけることができませんでした。

Print(iHigh(Symbol(),PERIOD_CURRENT,i+1), "  ",sqh_buffer[i+1]);

開始日 2018.01.01分

2018.07.11 17:19:07.770 2018.01.01 00:00:00   58148.0  0.0
2018.07.11 17:19:07.770 2018.01.01 00:00:00   58149.0  0.0
2018.07.11 17:19:07.770 2018.01.01 00:00:00   58146.0  0.0
2018.07.11 17:19:07.770 2018.01.01 00:00:00   58140.0  0.0
2018.07.11 17:19:07.770 2018.01.01 00:00:00   58139.0  0.0
2018.07.11 17:19:07.863 2018.01.03 10:00:00   58139.0  58391.79995461365
2018.07.11 17:19:07.863 2018.01.03 10:00:00   58135.0  58391.71051866656
2018.07.11 17:19:07.906 2018.01.03 10:00:20   58135.0  58463.08874123808

もちろん、この日に本当の引用はありません、人々は休日を持っている、その後、これらの魔法の数字は何ですか、一般的にどのように私は最初の日付の情報を得ることができますか?

 

質問です。

タイマーがオンになっていることを知るにはどうすればよいですか?また、その周波数はどのくらいですか?

私がヘルプをよく読んでいないのか、それとも不可能なのか?

 
Nikolai Semko:

質問です。

タイマーがオンになっていることを知るにはどうすればよいですか?また、その周波数はどのくらいですか?

それとも、私がヘルプをよく読んでいないのか、それとも不可能なのでしょうか?

沈黙から察するに、本当にその可能性はないのだろう。:((

しかし、どうしてでしょう。とてもシンプルで便利な機能だと思うのですが。

例えば、timerを使用するクラスを作成します。また、クラス内ではタイマーのオン・オフや周期を変更することができます。しかし、プログラムの他の部分と矛盾なく動作させるためには、クラスはタイマーがオンかオフか、その周期はどうなっているかを知っていなければなりません。

 
Nikolai Semko:

沈黙から察するに、本当にそのような可能性はないのでしょう。:((

しかし、どうしてでしょうか。結局のところ、とてもシンプルで便利な機能なのですが......。

例えば、タイマーを使用するクラスを作成します。また、クラス内ではタイマーのオン・オフや周期を変更することができます。しかし、プログラムの他の部分と矛盾なく動作させるためには、クラスはタイマーがオンかオフか、その周期はどうなっているかを知っていなければなりません。

だから、歓迎というか、授業は。

 
Sergey Dzyublik:

運動場というか、教室に旗を立てる。

役に立ちません。特に、数時間や数日の間隔など、クラスで有効になる前にすでにタイマーがオンになっている場合は、注意が必要です。そうすると、そのようなクラスは、プログラムのロジック全体を台無しにしてしまうことになります。

 
Sergey Dzyublik:

では、その比較は正しいのでしょうか?

風水もこれも試しましたが、結果は同じです。すべてが99%うまくいくのは当たり前で、100%が必要だということです。今のところ、ロジックをきちんとすることがメインで、美しさは後からでいいと思っています。

テスターで上記のようなエラーが出ることのみ追記し忘れました。チャート上で開くと、表示されないか、このエラーが再び発生する必要な極限を待つしかないのです。