오류, 버그, 질문 - 페이지 3137

 
안녕하세요!
선택한 모든 도구의 기록에 대한 어드바이저를 테스트 할 때 테스터는 통화 쌍에 대한 결과만 제공하고 크립트에 대해 "onit는 0이 아닌 코드 1을 반환합니다"를 제공합니다. 그것에 대해 무엇을 할 수 있습니까? 누가 그것을 가지고 있었습니까?
 
lapundra1 # :
안녕하세요!
선택한 모든 도구의 기록에 대한 어드바이저를 테스트 할 때 테스터는 통화 쌍에 대한 결과만 제공하고 크립트에 대해 "onit는 0이 아닌 코드 1을 반환합니다"를 제공합니다. 그것에 대해 무엇을 할 수 있습니까? 누가 그것을 가지고 있었습니까?

123행을 주석 처리하면 오류가 사라집니다. 나는 텔레파시로 당신에게 말하고 있습니다 :) - 코드가 없기 때문에 텔레파시 만 가능합니다. 그렇지 않으면 :)

 

인사말.

터미널에서 MT5를 시작할 때 오류가 발생합니다.

2022.01.03 15:33:30.108 가상 호스팅 가상 호스트 목록을 가져오지 못했습니다. [1001] (tls - 인증서 체인 엔진 생성 실패)

2022.01.03 15:34:30.945 신호 '56334871': 신호 목록 가져오기 실패


그런 다음 MetaEditor에서 Storage에 연결하려고 할 때:

2022.01.03 15:34:39.668 저장 프로젝트 목록 요청이 오류 1001로 실패했습니다.

2022.01.03 15:34:46.561 저장 MQL5 스토리지 활성화 실패 [1001]


동시에 다른 컴퓨터에서는 모든 것이 정상적으로 연결되고 변경 사항을 저장소로 보냈습니다.

컴퓨터에서 네트워크 문제가 감지되지 않고 모든 것이 잘 작동합니다. 지난 몇 달 동안 컴퓨터에 "위험한" 작업도 없었고 모든 것이 잘 작동했습니다. 빌드 3140.

어느 방향으로 파나요?


 

나는 마드리드 법원의 비밀에도 들어가지 않고 신은 왜 표시기 핸들이 0이나 1이 아니라 10부터 인덱싱되기 시작하는지 궁금해하는 것을 금하지 않습니다. 씨발, 나는 살아남을 것입니다.

코드에 동일한 표시기의 겉보기에 독립적인 두 핸들이 있고 두 번째 MA가 삭제되면 두 번째 MA뿐만 아니라 첫 번째 MA도 사라지는 이유를 더 잘 설명해 주시겠습니까? 즉, 핸들 중 하나를 삭제하면 다른 핸들이 종료됩니다. 다음은 도움말에서 크게 단순화되고 두 배인 iMA 코드입니다.

 #property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots    2

#property indicator_label1    "iMA1"
#property indicator_type1    DRAW_LINE
#property indicator_color1    clrRed
#property indicator_style1    STYLE_SOLID
#property indicator_width1    1

#property indicator_label2    "iMA2"
#property indicator_type2    DRAW_LINE
#property indicator_color2    clrBlue
#property indicator_style2    STYLE_SOLID
#property indicator_width2    1

double iMABuffer1[], iMABuffer2[];
int     handle1, handle2;
int     bars_calculated= 0 ;

int OnInit ()
  {
   SetIndexBuffer ( 0 ,iMABuffer1, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,iMABuffer2, INDICATOR_DATA );

   PlotIndexSetInteger ( 0 , PLOT_SHIFT , 0 );
   PlotIndexSetInteger ( 1 , PLOT_SHIFT , 0 );

   handle1= iMA ( _Symbol , PERIOD_CURRENT , 10 , 0 , MODE_SMA , PRICE_CLOSE );
   handle2= iMA ( _Symbol , PERIOD_CURRENT , 20 , 0 , MODE_SMA , PRICE_CLOSE );

   return ( INIT_SUCCEEDED );
  }

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[])
  {
   int values_to_copy;

   int calculated= BarsCalculated (handle1);
   if (calculated<= 0 ) return ( 0 );

   if (prev_calculated== 0 || calculated!=bars_calculated || rates_total>prev_calculated+ 1 )
       if (calculated>rates_total) values_to_copy=rates_total;
       else                        values_to_copy=calculated;
   else
      values_to_copy=(rates_total-prev_calculated)+ 1 ;

   if (!FillArrayFromBuffer(iMABuffer1, 0 ,handle1,values_to_copy)) return ( 0 );
   if (!FillArrayFromBuffer(iMABuffer2, 0 ,handle2,values_to_copy)) return ( 0 );

   //if(handle2!=INVALID_HANDLE)
   //   Print(IndicatorRelease(handle2));

   bars_calculated=calculated;

   return (rates_total);
  }

bool FillArrayFromBuffer( double &values[],
                         int shift,
                         int ind_handle,
                         int amount
                         )
  {
   if ( CopyBuffer (ind_handle, 0 ,-shift,amount,values)< 0 )
       return ( false );

   return ( true );
  }

void OnDeinit ( const int reason)
  {
   if (handle1!= INVALID_HANDLE )
       IndicatorRelease (handle1);
   if (handle2!= INVALID_HANDLE )
       IndicatorRelease (handle2);
  }

두 줄의 주석 처리를 제거하면 결과적으로 아무 것도 그려지지 않습니다. 예상: 첫 번째 MA(빨간색)가 유지됩니다.

... 그리고 내가 하고 싶었던 것은 내 기억을 지우는 것뿐이었습니다.

 
x572intraday # :

나는 마드리드 법원의 비밀에도 들어가지 않고 신은 왜 표시기 핸들이 0이나 1이 아니라 10부터 인덱싱되기 시작하는지 궁금해하는 것을 금하지 않습니다. 씨발, 나는 살아남을 것입니다.

코드에 동일한 표시기의 겉보기에 독립적인 두 핸들이 있고 두 번째 MA가 삭제되면 두 번째 MA뿐만 아니라 첫 번째 MA도 사라지는 이유를 더 잘 설명해 주시겠습니까? 즉, 핸들 중 하나를 삭제하면 다른 핸들이 종료됩니다. 다음은 도움말에서 크게 단순화되고 두 배인 iMA 코드입니다.

두 줄의 주석 처리를 제거하면 결과적으로 아무 것도 그려지지 않습니다. 예상: 첫 번째 MA(빨간색)가 유지됩니다.

... 그리고 내가 하고 싶은 일은 기억을 지우는 것뿐이었습니다.

최소:

 if (handle2!= INVALID_HANDLE && !FillArrayFromBuffer(iMABuffer2, 0 ,handle2,values_to_copy)) return ( 0 );
 
JRandomTrader # :

최소:

확인 해봤 었니? 그것은 나를 위해 작동하지 않았다. 그리고 (메모리 해제와 함께) 하나를 삭제하고 다른 하나는 시각적으로 남겨 두면 됩니다. 그리고 그것은 당신의 논리에서 따릅니다: 두 번째 핸들이 존재하고 두 번째 버퍼가 채워지지 않은 경우, 우리는 종료하고 IndicatorRelease(handle2)로 내 라인에 도달하지도 않습니다(내가 올바른 위치에 코드를 삽입했다면).

 
   int dim= 5 ;
   int Arr1[ 5 ]; // OK
   int Arr2[dim]; // '[' - invalid index value

내가 완전히 망쳤거나 버그가 아니라면 도움말에 펠트 부트를 찔러 넣습니다.

 
x572intraday # :

결국 내가 망쳤거나 버그가 아니라면 도움말에 펠트 부츠를 찔러 넣습니다.

정적 배열의 차원은 정수가 아니라 상수입니다.

 
Valeriy Yastremskiy # :

정적 배열의 차원은 정수가 아니라 상수입니다.

이와 같이 벡터를 정의할 수 있지만 이는 단지 double입니다.

 int n = 5 ;
vector v(n);
v[ 0 ] = 1.2 ;
 
Aleksey Nikolayev # :

이와 같이 벡터를 정의할 수 있지만 이는 단지 double입니다.

확인. 그런 다음 크기를 조정하는 것이 좋습니다.