포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 601

 
AlexeyVik :
아마 그렇게 시도하지 않았을 것입니다.
방금 EA에서 코드를 다시 컴파일하고 실행했습니다. 주석에서 Sys 매개변수를 변경하면 이 값이 변경됩니다.

나는 다시 그것을 당신의 옵션으로 변경하려고 시도했습니다 .. 그것은 여전히 작동하지 않습니다 ... 그것은 고문에 있고 고문은 보입니다 ..
 
peace1984 :

나는 다시 그것을 당신의 옵션으로 변경하려고 시도했습니다 .. 그것은 여전히 작동하지 않습니다 ... 그것은 고문에 있고 고문은 보입니다 ..


아니면 제가 뭔가 잘못 이해한건가요???

파일:
11_1_1.mq4  8 kb
 
AlexeyVik :


아니면 제가 뭔가 잘못 이해한건가요???



sys!=1인 경우 "sys는 1이 아니어야 합니다"라는 메시지가 충돌하고 사용자를 0에서 변경하면 1과 같아야 하고 "sys는 1이어야 합니다"라는 메시지가 표시되어야 함을 이해합니다.

귀하의 어드바이저 버전에서 테스트하는 동안 sys=0이 왼쪽 상단 모서리 에 작성되지만 그렇지 않아야 합니다.

 
peace1984 :

sys!=1인 경우 "sys는 1이 아니어야 합니다"라는 메시지가 충돌하고 사용자를 0에서 변경하면 1과 같아야 하고 "sys는 1이어야 합니다"라는 메시지가 표시되어야 함을 이해합니다.

신제품 출시를 살펴보세요. 아래에서 위로 행입니다.


전문가 로드

외부 변수 목록: Sys = 0

초기화 통과

다음 3줄은 EA에서 인쇄합니다.

초기화 해제 이유 5( 입력 매개변수가 사용자에 의해 변경됨)

외부 변수 목록: Sys = 1

초기화 통과

다음 3줄은 EA에서 인쇄합니다.

초기화 해제 이유 1( 프로그램이 차트에서 제거됨 )


무엇을 명확히 하시겠습니까? 안되는게 이해가 안되네요...

ps: 그러한 기호에 주의를 기울이지 마십시오. 이러한 기호 이름 때문에 옵션에 대한 설명입니다.

 
AlexeyVik :

네, 그게 핵심이 아닙니다. 아무도 당신의 완전한 비밀 코드를 필요로 하지 않습니다. 오해가 있을 수 있는 완전한 테스트 코드를 작성하십시오. 그리고 그래서

당신이 선택한 라인을 자렘 때??? 텔레파시는 도움이되지 않지만 단순한 필사자이며 더욱 그렇습니다 ...

그럼 이 부분은

어떤 프로그래머에게서 왔는지는 모르겠지만 여기에는 뭔가 부적절하게 쓰여져 있습니다... 돌은 당신에게 전달되지 않습니다. 다른 많은 사람들과 마찬가지로 당신은 방금 코드를 가져와서 편집하려고 했습니다...

counted_bars 변수가 마지막 표시기 호출(첫 번째 줄) 이후 변경되지 않은 막대 수와 동일한 경우

if(counted_bars < 0)에 의해 확인되는 것이 어떻게 0보다 작아질 수 있는지 나는 결코 이해할 수 없을 것입니다...

더군다나 말도 안되는 소리지만 이미 정리하기 귀찮아서...


전적으로 동의한다. 어떻게 스스로 생각하지 못했습니까? )

그런 안타까운 지표의 코드와 파일을 첨부합니다.

그래프에 던지면 터미널이 자연스럽게 멈추고 10 분 동안 그대로두고 (PC 속도에 따라 다름. i5 3.1 Ghz가 있음) MT를 강제로 닫고 "bug log.csv"라는 이름의 로그 파일을 엽니 다. ", IndicatorCounted() 버그의 사실을 관찰하십시오.

 #property indicator_separate_window
#property indicator_buffers 1

double Buffer_1[];

bool busy= false ;
int han;

int init()
{
   han= FileOpen ( "bug log.csv" , FILE_CSV | FILE_WRITE );
   SetIndexStyle ( 0 , DRAW_HISTOGRAM , STYLE_SOLID , 1 );       
   SetIndexBuffer ( 0 ,Buffer_1); 
   return ( 0 );
}

int deinit()
{
   FileClose (han);
   return ( 0 );
}

int start()
{
   //if(busy) return(0);
   int limit= 3000 ;
   if ( IndicatorCounted ()> 0 ) limit= 1 ;
   
   for ( int i= 0 ; i<limit; i++)
   { 
      busy= true ;
      FileWrite(han, TimeToStr ( TimeCurrent (), TIME_MINUTES | TIME_SECONDS ), DoubleToStr (i, 0 ), DoubleToStr ( IndicatorCounted (), 0 ));
       FileFlush (han);
      
       for ( int j= 1 ; j< 7000 ; j++)
         for ( int k= 1 ; k< 7000 ; k++)
           double var= 2 * 0.34 * MathArccos ( 0.5 )+ 1.33 * MathArcsin ( 0.23 )+ 1.53 * MathArctan ( 0.11 )+ 2.33 * MathCos ( 0.23 )+ 1.22 * MathLog ( 12 )+ 1.22 ;
      
      Buffer_1[i]=var;
   }
   
   busy= false ;
   return ( 777 );
}
파일:
bugqtest.mq4  2 kb
 

(AccountProfit()>1) 조건이 충족되면 모든 미결 주문을 닫고 이제 조건 i가 충족될 때까지 주문의 일부만 닫을 수 있도록 스크립트에서 무엇이 누락되었는지 말해 줄 수 있는 모든 사람

f(계정 이익()>1)

{ for (i=OrdersTotal()-1;i>=0;i--) { OrderSelect (i,SELECT_BY_POS,MODE_TRADES);
if(주문유형()==OP_BUY)
{ OrderClose(OrderTicket(),OrderLots(),Bid,10,Green); 리턴(0);
} else { OrderClose(OrderTicket(),OrderLots(),Ask,10,Red); 리턴(0);
}}}
 
Expert :


전적으로 동의한다. 어떻게 스스로 생각하지 못했습니까? )

그런 안타까운 지표의 코드와 파일을 첨부합니다.

그래프에 던지면 터미널이 자연스럽게 멈추고 10 분 동안 그대로두고 (PC 속도에 따라 다름. i5 3.1 Ghz가 있음) MT를 강제로 닫고 "bug log.csv"라는 이름의 로그 파일을 엽니 다. ", IndicatorCounted() 버그의 사실을 관찰하십시오.

글쎄, 나는 모른다. 나는이 표시기가 그러한 파일을 기록했습니다.

파일:
test.zip  21 kb
 
AlexeyVik :

글쎄, 나는 모른다. 나는이 표시기가 그러한 파일을 기록했습니다.




응답 해주셔서 감사합니다!

귀하의 버전을 시도했습니다 - 결과는 동일합니다((

왜 이런 일이 일어나는지 어떤 아이디어가 있습니까?
나에게만 일어나는 일이 아닙니다. 나는 내 것보다 더 강력한 다른 PC에서 그것을 시도했지만 거기에서도 같은 문제가 발생했습니다.

파일:
bugflog.zip  122 kb
 
i999i :

(AccountProfit()>1) 조건이 충족되면 모든 미결 주문을 닫고 이제 조건 i가 충족될 때까지 주문의 일부만 닫을 수 있도록 스크립트에서 무엇이 누락되었는지 말해 줄 수 있는 모든 사람

f(계정 이익()>1)

{ for (i=OrdersTotal()-1;i>=0;i--) { OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(주문유형()==OP_BUY)
{ OrderClose(OrderTicket(),OrderLots(),Bid,10,Green); 리턴(0);
} else { OrderClose(OrderTicket(),OrderLots(),Ask,10,Red); 리턴(0);
}}}
리턴(0); 불필요했습니다 모두 감사합니다
 
Expert :


응답 해주셔서 감사합니다!

귀하의 버전을 시도했습니다 - 결과는 동일합니다((

왜 이런 일이 일어나는지 어떤 아이디어가 있습니까?
나에게만 일어나는 일이 아닙니다. 나는 내 것보다 더 강력한 다른 PC에서 그것을 시도했지만 거기에서도 같은 문제가 발생했습니다.

내가 당신을 이해할 수 없거나, 당신이 뭔가를 이해하지 못하고 있습니다... .csv 파일에 무슨 문제가 있습니까? 첫 번째 막대가 계산될 때까지 prev_calculated 또는 IndicatorCounted()(이전 버전에서)는 0과 같을 것이며 이것은 정확합니다.