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

 
ご存知の方:スイッチオペレータ内でのifの使用に制限はありますか?
 
いいえ。
 

奇現象

こんにちは、不明な問題が発生しました。様々なペアとタイムフレームでEAをテストしています。USDCADでテストを行うまでは、少なくとも十分にうまくいっていました。 このペアでは、エキスパートアドバイザー(というよりテスター)の完全に不十分な動作が観察されます。注文は「空白のどこか」で始まり、このシンボルでの実際の取引では見たこともないような価格で終了することもあるのです。この写真では、一連の買い注文が開かれ、ほとんどすぐに大きな利益(数千ポイント)で決済されているのがわかります。1バー(30分)以内に開閉する。とはいえ、テスターのレポートには不十分なグラフ結果が示されています。テスターモデルの価格は、何か別の記号で表示されている印象がありますね。もしかしたら、同じようなことに遭遇した人がいるかもしれません。

 

Expertは問答無用でコンパイルします。テスターで動かしてみると...。エラーがポップアップ表示される。

2014.07.28 00:36:36.942 EURUSD,H1: 1 tick events (1491 bars, 456560 bar states) processed within 0 ms (total time 4742 ms)
2014.07.28 00:36:36.942 2014.06.24 00:00  BaseTemplate EURUSD,H1: initialization failed (-1)
2014.07.28 00:36:36.942 2014.06.24 00:00  array out of range in 'BaseInfo.mqh' (175,19)
2014.07.28 00:36:36.931 BaseTemplate inputs: id_Lots=0.1; id_SL=0; id_TP=10; ii_Slippage=2; ib_Bootstrap=0; ib_RealTrade=1; ib_VirtualTrade=1; ib_NeedLogs=1; ib_PrintUP=1; ib_CommentUP=1; ii_MaxSpread=50; ii_NumberOfTry=10; ib_LotMoreMaxLot=0; 

このジャーナルが言及している、その行にたどり着き、これを見る。

何の関係があるのでしょうか?こんなことは今までなかったのに...。

 
hoz:

Expertは問答無用でコンパイルします。テスターで動かしてみると...。エラーがポップアップ表示される。

ログが参照されている行を見に行くと、こんな感じです。

何の関係があるのでしょうか?こんなことは今までなかったのに...。


インクルードファイルのすべてのコードを教えてください。
 
evillive:

インクルードファイルの全コードを提供してください

コード全体は少し長いです。以下は、バグが発生している関数のコードです。

// 1.1 Получение рыночной информации по выбранному инструменту. ===========================================================================
BaseInfo::GetMarkerInfo (string fs_Symbol,
                         int    fi_Ticket = 0)
{
   bool lb_CondON = true;
   //----
   if (fs_Symbol == SPos.gs_Symbol)
   {
      if (fi_Ticket >= 0)
           lb_CondON = false;
   }
   
   if (lb_CondON)
   {
      if (fi_Ticket > 0)
      {
         SPos.gs_Symbol = OrderSymbol();
      }
      else
      {
         SPos.gs_Symbol = fs_Symbol;
      }
      
      if (SPos.gs_Symbol == _Symbol)
      {
         SSym.gi_Digits = _Digits;
         SSym.gd_Pt = _Point;
      }
      else
      {
         SSym.gi_Digits = (int) MarketInfo (fs_Symbol, MODE_DIGITS);
         SSym.gd_Pt = MarketInfo (fs_Symbol, MODE_POINT);
      }
      
      if (SSym.gd_Pt == 0.0)
      {
         SSym.gd_Pt = GetPoint (fs_Symbol);
      }
   }
   
   if (fi_Ticket > 0)
   {
      GetOrderDetails (fi_Ticket);
   }
   //---- Получение текущих цен по инструменту
   RefreshRates();
   SSym.gda_Price [0] =   ND (GetTradePrice (0, RealTrade, SPos.gs_Symbol));
   SSym.gda_Price [1] = ND (GetTradePrice (1, RealTrade, SPos.gs_Symbol));
   SSym.gd_Spread = ND (SSym.gda_Price [1] - SSym.gda_Price [0]);
   //----
}

バグは線にあります。

SSym.gda_Price [0] =   ND (GetTradePrice (0, RealTrade, SPos.gs_Symbol));

どうやら、ラインより下でも同じことが起こりそうだ。

値を書きたい配列のセルがないということですね。この変数gda_Price[] は構造体の中で次のように宣言されています。

// =================================================_______ СВОЙСТВА СИМВОЛА _______=======================================================
struct Symbol_Properties
{
   datetime    gdt_Quote;           // Время поступления последней котировки
   double      gda_Price[];         // Текущие рыночные цены (0 - Bid, 1- Ask)
   double      gd_Spread;           // Размер спреда в пунктах
   double      gd_Swap;             // Своп
   double      gd_Comission;        // Комиссия
   double      gd_Pt;               // Величина одного пункта
   int         gi_Digits;           // Количество знаков в цене после запятой
   int         gi_StopLevel;        // Минимально-допустимый уровень стоп-лосса/тейк-профита в пунктах
   int         gi_FreezLevel;       // Уровень заморозки ордеров в пунктах
   //---- Конструктор и деструктор
   Symbol_Properties (void);
  ~Symbol_Properties (void);
};
//---- Создадим объект структуре Symbol_Properties
Symbol_Properties SSym;
//=========================================================================================================================================
// Конструктор структуры. =================================================================================================================
Symbol_Properties::Symbol_Properties (void) {
   gd_Pt = _Point;
   gi_Digits = _Digits;
}
//=========================================================================================================================================
// Деструктор структуры. ==================================================================================================================
Symbol_Properties::~Symbol_Properties (void) {
}

すべて順調のようですが...。

 

質問があります。

私は、非常に素晴らしい取引をする作業プログラムを持っていますが、時間に制約があるため、手作業で実行する時間がないことがあります。そのためには自動最適 化が必要で、1万〜1万5千ルーブルの費用がかかる。

私は彼が私に自動最適化を支払っているだろうという投資家を見つけることができ、2〜3週間後、私は2倍以上でそれを返しているだろう。プログラムの信頼性とサービス性を実証し、すべてのニュアンスを議論し、それが間違いなく動作するという事実を示すために、Skypeに準備ができています。

でも、そんなことが可能なのか、少額でもリスクを負う人がいるのか?

リスクは最小限、利益は2-3週間で100%、バカバカしいと思うかもしれませんが。

 
366366:

質問があります。

私は、非常に素晴らしい取引をする作業プログラムを持っていますが、時間に制約があるため、手作業で実行する時間がないことがあります。そのためには自動最適化が必要で、1万〜1万5千ルーブルの費用がかかる。

私は彼が私に自動最適化を支払っているだろうという投資家を見つけることができ、2〜3週間後、私は2倍以上でそれを返しているだろう。プログラムの信頼性とサービス性を実証し、すべてのニュアンスを議論し、それが間違いなく動作するという事実を示すために、Skypeに準備ができています。

でも、そんなことが可能なのか、少額でもリスクを負う人がいるのか?

リスクは最小限、利益は2-3週間で100%、バカバカしいと思うかもしれませんが。

最高の投資家は銀行機関である。ローンの支払いが遅れると処罰されるという切迫した状況に、すでに複数の「熱い」頭が冷めてしまったのである。
 
barabashkakvn:
最高の投資家は銀行機関である。ローンの支払いが遅れると処罰されるという切迫した状況に、すでに複数の「熱い」頭が冷めている。


リスクは最小限です)

その気にさえなれば、誰にでも私の仕事ぶりを証明することができます。

残念ながら、ローンを組む方法はない。

 
366366:


リスクは最小限です)

働きたいと思う人には、働けることを証明するつもりです。

残念ながら、ローンを組む方法はない。


リスクが少ない場合は、フラットを抵当に入れる)