FORTS 助けてください

 

こんにちは。

またしてもサーボデックスでエラーが再現されない!?

このコードをコンパイルして、MIX-6.15のシンボルにインジケータを "投げ "てください。

(MetaEditorのもの ではありません )

//+------------------------------------------------------------------+
//|                                                         Test.mq5 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
//
bool is_failed = false;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
  
  SymbolSelect( "RTS-6.15", true );
  SymbolSelect( "Si-6.15", true );
//---  
  ResetLastError();
//---
  if ( SymbolSelect( "MIX-6.15", true ) )
  {
    long total_bars = long( SeriesInfoInteger( "MIX-6.15", PERIOD_M1, SERIES_BARS_COUNT ) );
    if ( total_bars > 0 )
    {
      if ( SymbolSelect( "RTS-6.15", true ) )
      {
        total_bars = long( SeriesInfoInteger( "RTS-6.15", PERIOD_M1, SERIES_BARS_COUNT ) );
        if ( total_bars > 0 )
        {
          if ( SymbolSelect( "Si-6.15", true ) )
          {
            total_bars = long( SeriesInfoInteger( "Si-6.15", PERIOD_M1, SERIES_BARS_COUNT ) );
            if ( total_bars > 0 )
            {
              Print( "Init OK." );
            }
            else
            {
              is_failed = true;
              Print( "Get Bars failed RTS-6.15 Last error = ", string(GetLastError() ) );
            }    
          }
          else
          {
            is_failed = true;
            Print( "Symbol Si-6.15 not selected" );
          }
        }
        else
        {
          is_failed = true;
          Print( "Get Bars failed RTS-6.15 Last error = ", string(GetLastError() ) );
        }
      } 
      else
      {
        is_failed = true;
        Print( "Symbol RTS-6.15 not selected" );
      }
    }
    else
    {
      is_failed = true;
      Print( "Get Bars failed MIX-6.15 Last error = ", string(GetLastError() ) );
    }
  } 
  else
  {
    is_failed = true;
    Print( "Symbol MIX-6.15 not selected" );
  } 
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   if ( is_failed )
   {
     Print( "Sorry! Get Bars failed." );
   }
   else Print( "Bingo! We done.");
//--- return value of prev_calculated for next call
   return(rates_total);

その結果(Expertsタブに表示される)をここに投稿してください。

 
2015.03.26 11:44:13.934	test (MIX-6.15,H1)	Bingo! We done.
2015.03.26 11:44:13.934	test (MIX-6.15,H1)	Init OK.

は、市場レビューに含まれるすべての利用可能な機器です。

テストをやり直し、他の楽器も含めてMIXで正確に投げました。

オールオッケーです。

 

アカウントはオトクに実在する。RiとSiのチャートも開いています。

 
2015.03.26 13:56:05.487 テスト (MIX-6.15,M1) Bingo!しました。
2015.03.26 13:56:05.020 テスト (MIX-6.15,M1) Bingo!しました。
2015.03.26 13:56:02.566 テスト (MIX-6.15,M1) Bingo!しました。
2015.03.26 13:56:02.566 テスト (MIX-6.15,M1) Bingo!しました。
2015.03.26 13:56:02.560 テスト (MIX-6.15,M1) Bingo!しました。
2015.03.26 13:56:01.232 テスト (MIX-6.15,M1) Bingo!しました。
2015.03.26 13:56:01.232 テスト (MIX-6.15,M1) Bingo!しました。
2015.03.26 13:56:01.144 テスト (MIX-6.15,M1) Bingo!しました。
2015.03.26 13:56:01.024 テスト (MIX-6.15,M1) Bingo!しました。

2015.03.26 13:56:01.024 Test (MIX-6.15,M1) Init OKです。

real Opening win7 x64 C:\Program FilesOpen Brokerterminal64.exe build 1085


 

ありがとうございました。

持っています。

Win7/64 Ultimate MT5 ビルド1085

2015.03.26 15:30:37.229 Test (MIX-6.15,M1)      Sorry! Get Bars failed.
2015.03.26 15:30:37.229 Test (MIX-6.15,M1)      Get Bars failed RTS-6.15 Last error = 4401
 

MIX-6.15が落ちている、WIN 7-64 home premium MT5 build 1085です。

2015.03.26 15:44:27.729 Test (MIX-6.15,H1)      Get Bars failed MIX-6.15 Last error = 4401
2015.03.26 15:44:27.729 Test (MIX-6.15,H1)      Sorry! Get Bars failed.
 

FORTSユーザー様

3分ほどお時間をください

floating "エラーを修正するために必要なもの

MORE統計!

 
Mikalas:

FORTSユーザー様

3分ほどお時間をください

floating "エラーを修正するために必要なもの

MORE統計!

3 分間費やしてください))

マイケル それは無理ですねー、イナイレの1回のリクエストでは。すべてのデータが揃うという保証はありません。

それは、もちろんセンスで。

#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
//
bool is_failed = false;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
  SymbolSelect( "MIX-6.15", true );
  SymbolSelect( "RTS-6.15", true );
  SymbolSelect( "Si-6.15", true );
//---  
  ResetLastError();
//---  
  int total_bars = Bars( "MIX-6.15", PERIOD_M1 );
  if ( total_bars > 0 )
  {
    total_bars = Bars( "RTS-6.15", PERIOD_M1 );
    if ( total_bars > 0 )
    {
      total_bars = Bars( "Si-6.15", PERIOD_M1 );
      {
        if ( total_bars > 0 )
        {
          Print( "Init OK." );
        }
        else
        {
          is_failed = true;
          Print( "Get Bars failed Si-6.15 Last error = ", string(GetLastError() ) );
        }
      }
    }
    else
    {
      is_failed = true;
      Print( "Get Bars failed RTS-6.15 Last error = ", string(GetLastError() ) );
    }
  }
  else
  {
    is_failed = true;
    Print( "Get Bars failed MIX-6.15 Last error = ", string(GetLastError() ) );
  } 
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
  ResetLastError();
//---  
  int total_bars = Bars( "MIX-6.15", PERIOD_M1 );
  if ( total_bars > 0 )
  {
    total_bars = Bars( "RTS-6.15", PERIOD_M1 );
    if ( total_bars > 0 )
    {
      total_bars = Bars( "Si-6.15", PERIOD_M1 );
      {
        if ( total_bars > 0 )
        {
          Print( "Init OK." );
        }
        else
        {
          is_failed = true;
          Print( "Get Bars failed Si-6.15 Last error = ", string(GetLastError() ) );
        }
      }
    }
    else
    {
      is_failed = true;
      Print( "Get Bars failed RTS-6.15 Last error = ", string(GetLastError() ) );
    }
  }
  else
  {
    is_failed = true;
    Print( "Get Bars failed MIX-6.15 Last error = ", string(GetLastError() ) );
  } 
//---
   if ( is_failed )
   {
     Print( "Sorry! Get Bars failed." );
   }
   else Print( "Bingo! We done.");
//--- return value of prev_calculated for next call
   return(rates_total);
  }
 

多通貨対応のインジケーターは、そんなに簡単なものではありません。

まず、楽器の入手状況を確認します。

bool CorrectSymbol( string symbol )
{
        ResetLastError();
        if ( SymbolInfoDouble( symbol, SYMBOL_BID ) > DBL_EPSILON ) return(true);

        // символ не выбран в "Обзоре рынка" (нет в списке доступных)
        if ( GetLastError() == 4302 )
        {
                if ( SymbolSelect( symbol, true ) && SymbolInfoInteger( symbol, SYMBOL_SELECT ) ) return(true);
        }

        return(false);
}

次に、ヒストリーが正常に読み込まれるように、使用するすべての楽器のチャートを開きます(不可視のチャートオブジェクトで十分です)。

そして、CheckLoadHistoryを使用して履歴の読み込みを試みるだけです。

しかし、これも十分とは言えないかもしれません。

 
Dima_S:

3分費やす))

マイケル それは無理ですね。イナイトへのワンタイム・リクエストでは。すべてのデータがすでに用意されている保証はない。

それは、もちろんセンスで。

私は同意する、それは少し間違っている、私はコードを書き直した(ソースコードを見てください)、しかし、結果は同じです!私は、このような場合、私はそれを行うことができます。

2015.03.26 16:20:55.564 Test (MIX-6.15,M1)      Sorry! Get Bars failed.
2015.03.26 16:20:55.564 Test (MIX-6.15,M1)      Get Bars failed Si-6.15 Last error = 4401
 
Mikalas:

同意、少し間違っていた、コードを書き直した、しかし結果は同じだ!

私のを試したことがありますか?
理由: