FORTS 도와주세요 - 페이지 5

 

누군가가 거짓말을 하고 있거나, Mikhail이 기술 지원의 이의를 받아들이지 않거나, 기술 지원이 문제를 인정하고 싶지 않습니다.

Mikalas   2015.03.26 00:44     RU

다시 servicedex는 오류를 재현할 수 없습니다!


알렉스   2015.03.26 15:16  

첫 번째 게시물의 코드도 올바르지 않습니다.

 
MigVRN :

평화롭게 살자 :)

한 번에가 아니라 성공적으로 로드할 때만 가능합니다.

코드 에서 OnInit 함수가 쓸모가 없거나 개발자가 속임수를 사용했음이 분명합니다.

 
Mikalas :

예, 하지만 실제로 데이터가 없으면 어떻게 됩니까?

그럼? 주기? 얼마나 많은 반복으로?

특별한 레시피는 없고...

나는 지표를 전혀 좋아하지 않습니다 ... 단지 이것 때문에 :

표시기가 있는 동일한 스레드에서 지정된 기호 틱 처리 및 기록 동기화 에 대해 다른 작업도 순차적으로 수행됩니다. 즉, 표시기에서 무한 작업이 수행되면 해당 기호의 다른 모든 이벤트가 실행되지 않습니다 .

그들 때문에 채팅 및 기타 모든 것이 느려질 수 있습니다. 따라서 이웃 채팅에서 견적을 요청하지 않고 사용자 정의 이벤트 제공자로 사용합니다. 일반적으로 OnCalculate ()에 나온 것만 작업합니다.

체 세르 :

코드 에서 OnInit 함수가 쓸모가 없거나 개발자가 속임수를 사용했음이 분명합니다.

이것은 귀하의 코드입니다. 저는 alexvd 가 말한 내용만 삽입했습니다. OnInit 기능이 쓸모가 없다는 결론이 나오는 이유를 이해하지 못했습니다.

 
alexvd :
코드에서 ResetLastError () 직후 is_failed 전역 변수 의 오류를 재설정해야 합니다. 그렇지 않으면 오류를 포착하면 이에 대한 메시지를 받게 됩니다.

빙고! 당신은 거의 추측했습니다)) 그들이 말하는 것은 당연합니다-신뢰하지만 확인하십시오. 최종 텍스트는 아래에 있습니다.

 #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 )
        {
           is_failed = false ;
           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." );
          is_failed = false ;
        }
         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);
  }
 
MigVRN :

특별한 레시피는 없고...

나는 지표를 전혀 좋아하지 않습니다 ... 단지 이것 때문에 :

표시기가 있는 동일한 스레드에서 지정된 기호 틱 처리 및 기록 동기화 에 대해 다른 작업도 순차적으로 수행됩니다. 즉, 표시기에서 무한 작업이 수행되면 해당 기호의 다른 모든 이벤트가 실행되지 않습니다 .

그들 때문에 채팅 및 기타 모든 것이 느려질 수 있습니다. 따라서 이웃 채팅에서 견적을 요청하지 않고 사용자 정의 이벤트 제공자로 사용합니다. 일반적으로 OnCalculate ()에 나온 것만 작업합니다.

이것은 귀하의 코드입니다. 저는 alexvd 가 말한 내용만 삽입했습니다. OnInit 기능이 쓸모가 없다는 결론이 나오는 이유를 이해하지 못했습니다.

내 코드는 무엇입니까? 나는 어떤 코드도 게시하지 않았다.

표시기 때문에 다른 모든 것이 느려지지 않습니다. 문제의 사실은 MT5에서 모든 것이 동기화되지 않고 표시기는 자체 스레드에서 작동하고 고문은 자체 스레드에서 작동한다는 것입니다. 유리 그 자체.

지표도 마음에 들지 않지만 가끔은 사용해야 하는 경우가 있습니다.

 
Dima_S :

빙고! 당신은 거의 추측했습니다)) 그들이 말하는 것은 당연합니다-신뢰하지만 확인하십시오. 최종 텍스트는 아래에 있습니다.

OnCalculate 의 OnInit에 있던 내용을 반복하는 이유는 무엇입니까? 이것은 일종의 주문입니까?
 
Serj_Che :

내 코드는 무엇입니까? 나는 어떤 코드도 게시하지 않았다.

오오... 죄송합니다. Dima_S혼동 됩니다.

체 세르 :

표시기 때문에 다른 모든 것이 느려지지 않습니다. 문제의 사실은 MT5에서 모든 것이 동기화되지 않고 표시기는 자체 스레드에서 작동하고 고문은 자체 스레드에서 작동한다는 것입니다. 유리 그 자체.

지표도 마음에 들지 않지만 가끔은 사용해야 하는 경우가 있습니다.

그런 다음 표시기는 자체 스레드에서 작동합니다. 채팅만 동일한 스레드에서 작동합니다. 그리고 터키에서 문제가 발생하면( OnCalculate() 의 영원한 루프) 자체 스레드에서도 작동하는 EA는 이 채팅에서 아무 것도 볼 수 없습니다...

 
MigVRN :

오오... 죄송합니다. Dima_S혼동 됩니다.

그런 다음 표시기는 자체 스레드에서 작동합니다. 채팅만 동일한 스레드에서 작동합니다. 그리고 터키에서 문제가 발생하면( OnCalculate() 의 영원한 루프) 자체 스레드에서도 작동하는 EA는 이 채팅에서 아무 것도 볼 수 없습니다...

나는 그것이 그렇지 않다고 믿는 경향이 있습니다. 고문은 스스로 일해야 합니다. 구체적으로 이러한 문제는 없었으나 원할 경우 그러한 극단을 확인할 수 있다.

 
Serj_Che :

나는 그것이 그렇지 않다고 믿는 경향이 있습니다. 고문은 스스로 일해야 합니다. 구체적으로 이러한 문제는 없었으나 원할 경우 그러한 극단을 확인할 수 있다.

인증 코드를 입력하겠습니다. 2-3시까지. 그러나 채팅의 1 표시기가 "느리게"되면 다른 사람들도 함께 느려진다는 사실 - 이것은 내가 두 번 이상 만난 사실입니다.
 
MigVRN :
인증 코드를 입력하겠습니다. 2-3시. 그러나 채팅의 1 표시기가 "느리게"되면 다른 사람들도 함께 느려진다는 사실 - 이것은 내가 두 번 이상 만난 사실입니다.

좋아, 흥미롭다!

지표는 자체 스레드에서 작동하고 Expert Advisor는 자체 스레드에서 작동합니다. 물론 단일 코어 스톤이 아닌 한.