초보자의 질문 MQL4 MT4 MetaTrader 4 - 페이지 113

 
여보세요!!! 다음을 수행하고 싶습니다.
이미 열려 있는 주문이 있더라도 모든 주문(판매 및 구매)을 열려면 내 고문이 필요합니다. 그리고 모든 조건이 충족되는 순간이 아니라 다음 캔들에 이 작업을 수행해야 합니다!!! 도와주세요...... 미리 감사합니다...

현재 내 코드는 다음과 같습니다.

PHP 코드:
무효 시작 ()
{
if(
NewBar ())
{
// 알고리즘 자체 등
}
}

bool NewBar ()
{
정적
날짜 시간 마지막 막대 = 0 ;
datetime curbar = iTime ( 기호 (), 0 , 0 );
if(
lastbar != curbar )
{
마지막 막대 = 연석 ;
반환(
);
}
반환(
거짓 );
}
 
qroner :
무효 Uchet_Orderov_Function(문자열 _Simvol, int _Magic, int &_Mas[8]){
배열 초기화(_Mas, 0);
정수 티켓=-1;
for(int pos=OrdersTotal()-1; pos>=0; pos--){
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==_Simvol&&
OrderMagicNumber()==_Magic && OrderTicket()!=티켓){
티켓=OrderTicket();
스위치(주문 유형()){
사례 0:{_Mas[0]++;_Mas[6]++;break;}
사례 1:{_Mas[1]++;_Mas[6]++;break;}
사례 2:{_Mas[2]++;_Mas[7]++;break;}
사례 3:{_Mas[3]++;_Mas[7]++;break;}
사례 4:{_Mas[4]++;_Mas[7]++;break;}
사례 5:{_Mas[5]++;_Mas[7]++;break;}
}
}
}

}

다음은 기능입니다.

표준 모드에는 오류가 없기 때문에 문제가 코드에 없다고 생각했습니다.

일반적으로 아무도 캠페인에 응답하지 않습니다 ...

 
qroner :

일반적으로 아무도 캠페인에 응답하지 않습니다 ...

터미널은 오류가 69행에 있다고 말했지만, 더 적은 행이 있는 프로그램의 텍스트를 표시합니다... 무엇을 기준으로 답변하시겠습니까?
 
qroner : 일반적으로 아무도 캠페인에 응답하지 않습니다 ...

게시한 기능에는 오류가 없습니다. 같은 티켓으로 인접한 주문을 필터링하기 위해 OrderTicket()!=Ticket을 사용하여 혼란스러웠습니다. 없는지 확인하고 확인하십시오. 컴파일러가 (69,25)를 지정한 경우 69행의 25번째 위치를 확인하세요. 오류가 있습니다. 이 한 줄을 가져와

 
Vladimir : 터미널이 69행에 오류가 있다고 말했지만 프로그램 텍스트를 보여주니 거기에 줄이 더 적습니다... 무엇을 기준으로 대답할 건가요?

그가 69행에 무엇을 가지고 있는지 정말 궁금합니다.

 

휴, 아무도 대답하지 않을 것이라고 생각했습니다.

다음은 코드의 해당 부분입니다.

66 이중 변동성(int _period){

67화

68 for(int i=1; i<=_period; i++)

69sum+=MathAbs(높음[i]-낮음[i]);

70

71}

팁 고마워

 
qroner :

휴, 아무도 대답하지 않을 것이라고 생각했습니다.

다음은 코드의 해당 부분입니다.

66 이중 변동성(int _period){

67화

68 for(int i=1; i<=_period; i++)

69 summ+=MathAbs(높음[i]-낮음[i]);

70화

71}

팁 고마워

공습 경보 해제. 오류는 summ+=MathAbs(High[i]-Low[i]); 에지에서 25개의 위치를 계산하면 아마도 High[i]에 도달할 것입니다.

경고 에 의해 게시됨(낮음[-1]); 컴파일러에는 양수가 필요합니다. int n=-1을 작성했습니다. 경보(낮음[n]); - 범위를 벗어난 배열을 실행할 때. 하지만 어떻게 <0>이 일어날 수 있습니까??? 아마도 과거 데이터가 부족해서일까요? ~에서 ~까지의 날짜 범위를 확인하십시오.

 

어느 거래자를 선택해야 하는지 또는 서버의 정확한 이름을 알려주십시오.

 
qroner :

휴, 아무도 대답하지 않을 것이라고 생각했습니다.

다음은 코드의 해당 부분입니다.

66 이중 변동성(int _period){

67화

68 for(int i=1; i<=_period; i++)

69 summ+=MathAbs(높음[i]-낮음[i]);

70화

71}

팁 고마워

 double Volatility( int _period)
  {
     double summ = 0 ;

     for ( int i= 1 ; i<=_period; i++)
         if ( ArraySize ( High ) > i && ArraySize ( Low ) > i)
           summ+= MathAbs ( High [i]- Low [i]);

     return ( NormalizeDouble (summ/_period, Digits ));
 }
 double Volatility( int _period)
  {
     double summ = 0 ;
     int src = MathMin ( MathMin (_period, ArraySize ( High )), ArraySize ( Low ));

     for ( int i= 1 ; i<src; i++)
        summ+= MathAbs ( High [i]- Low [i]);

     return ( NormalizeDouble (summ/_period, Digits ));
 }

귀하의 _period 가 때때로 array 의 요소 보다 큰 값을 갖는 것 같습니다. 여기에서 어레이 너머로.

옵션 중 하나를 선택합니다.

 
안녕하세요 ! 어떻게 방아쇠를 만들 수 있습니까? 예를 들어, 이 조건이 필요합니다. if( iClose (NULL,HTF,4)<BlueLine) if(iClose (NULL,HTF,4)<BlueLine) if(iClose (NULL,HTF,4)<BlueLine) DayDown = 1! 질문: DayDown을 1로 두고 다음 날까지 투표하지 않으려면 어떻게 해야 합니까?