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

 
Interesting:

MarketWatchは どこで、どのように作成されているのですか?

このブロックは、シンボルをリストに追加し、その結果をチェックするものだと理解しています。

しかし、Expert Advisorが複数の通貨ペアである場合(上記の例では明らかではありません)。

このコードは通貨ペアのループの中にあり、最初のパス以外のすべてのパスのExp_Symbolは「外国」通貨ペアです。5つの通貨ペアがある場合、SymbolSelect(Exp_Symbol, true)は5つの異なるシンボルに対して5回呼び出されることになります。

私のコードでは、SymbolSelect(), SymbolIsSynchronized(), CopyRates()関数の 呼び出しは「エイリアン」シンボルによって行われます(履歴はそれに応じて更新されるはずです)。最初のテストではデータがありますが、2回目のテストではデータがなく、Expert Advisorがテスターでクラッシュしています。

 
Konstantin83:

このコードは、通貨ペアのループの中で、最初の通貨ペアが「エイリアン」である以外は、すべてのパスでExp_Symbolを使用します。SymbolSelect(), SymbolIsSynchronized(), CopyRates()関数を「エイリアン」シンボルから呼び出しています(したがって、履歴はスワップされるはずです)。最初のテストではデータがありますが、2回目のテストではデータがなく、Expert Advisorがテスターでクラッシュしています。


あなたは、最適化/テストの設定の専門家と説明をservicedkに送信することができますか?
 
alexvd:
エキスパートと最適化/テスト 設定の説明をservicedkに送信できますか?
作成されました。
 
たった今、またデモ 口座で相場が吊り上がった。コミュニケーションはあっても、動きはない。
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация о счете - Документация по MQL5
 

2009年1月のデータをアンロードしたいのですが。15分と1時間のデータをアンロードしたのですが、5分のデータをアンロードすると履歴がないと言われます。ダウンロードの履歴が5分にならないのはなぜですか?

void OnStart()
  {
   int size = 25;
   datetime dateFrom;
   datetime dateTo;
   MqlRates rates[];
   MqlDateTime stDate;
   int FileHandle;
  
   stDate.day  = 1;
   stDate.hour = 0;
   stDate.mon  = 1;
   stDate.year = 2009;
   dateFrom    = StructToTime( stDate );
   stDate.day  = 31;
   dateTo      = StructToTime( stDate );
  
  
   ArraySetAsSeries(rates,true);
  
   int copied=CopyRates(Symbol(), PERIOD_M5, dateFrom, dateTo, rates);
   for(int i=0;i<100;i++)
     {
      if(GetLastError()!=0)
       {
        Sleep(5000);
        copied=CopyRates(Symbol(), PERIOD_M5, dateFrom, dateTo, rates);
       }
      else
       {
        break;
       }
      Print("Нет истории, проход № " + i);
     }
   if(copied>0)
     {
      Print("Скопировано баров: "+IntegerToString(copied));
      //string format="open = %G, high = %G, low = %G, close = %G, volume = %d";
      string out;
      size = ArraySize(rates);
      ResetLastError();
     
      FileHandle=FileOpen("Data.csv",FILE_WRITE|FILE_CSV);
      if(FileHandle==INVALID_HANDLE)
        {
         Print("Ошибка " + IntegerToString((GetLastError())));
        }
      for(int i=size-1;i>=0;i--)
        {
         FileWrite(FileHandle, TimeToString(rates[i].time), DoubleToString(rates[i].open, _Digits), DoubleToString(rates[i].high, _Digits), DoubleToString(rates[i].low, _Digits), DoubleToString(rates[i].close, _Digits));
        }
     
      Print("size = " + FileSize(FileHandle));
      FileFlush(FileHandle);
      FileClose(FileHandle);
     }
   else
    {
     Print("Не удалось получить исторические данные по символу ",Symbol());
     Print("Ошибка " + GetLastError());
    }
  }

 

ArrayResize関数がすべてのパラメータでどのように動作するかを確認することにしました。コンパイルは問題なく、自動売買はどこでも有効ですが、Expert Advisor は OnInit にすら行かずにチャートからアンロードされます。

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Print(__FUNCTION__);
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   Print(__FUNCTION__);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick() {
   double ZZ[][2];
//==============================================   
   Print(__FUNCTION__);
   
   ResetLastError();
   ArrayResize(ZZ,5,5);
   for(int i=0;i<10;i++) {
      ZZ[i][0]=i;
      Print("i=",i,"; ZZ=",ZZ[i][0]);
      Print(GetLastError());
   }
   return;
}
//+------------------------------------------------------------------+

何が問題なのか、それがわからない。

1

2

 
Talex:

ArrayResize関数がすべてのパラメータでどのように動作するかを確認することにしました。コンパイルは問題なく、自動売買はどこでも有効ですが、Expert Advisor は OnInit にすら行かずにチャートからアンロードされます。

何が問題なのか、それがわからない。


バナルは範囲外、「エキスパート」タブでチェック
予約は割り当てではありません。メモリは10個分割り当てられていますが、配列は5個のままです。

 
mql5:

バナルは範囲外、「エキスパート」タブを見てください。
予約は割り当てではありません。10個分のメモリーを確保しても、配列は5個のままです。

そうですね、ありがとうございます。間違ったタブを見てたんだ、病気なんだ、影響あるんだろうな。
 
Talex:

ArrayResize関数がすべてのパラメータでどのように動作するかを確認することにしました。コンパイルは問題なく、自動売買はどこでも有効ですが、Expert Advisor は OnInit にすら行かずにチャートからアンロードさ れます。

一般的に、上のスクリーンショットは、端末のログを表示しています。そして、探しているものは、「エキスパート」タブにあります。
 

こんにちは。

私は、テストと最適化を有効にした後、これを取得します。

Core 1の遺伝子のパス(127, 1195)をテストしたところ、「critical runtime error」というエラーが発生しました。

検査は正常です。

理由: