MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1240

 

안녕하세요.

이상한 문제가 있습니다.

터미널 MT4. 각 차트에는 약 15개의 지표가 있습니다(표준 및 사용자 지정 지표). 경우에 따라 지표 목록 (Ctrl + i)을 통해 지표를 삭제하면 단말기가 빡빡하게 끊깁니다. 동시에 버퍼를 통해 지표가 그린 선이나 화살표를 마우스 오른쪽 버튼으로 클릭하고 "지표 삭제" 메뉴 항목을 선택하여 동일한 지표를 삭제하려고 하면 지표가 문제 없이 즉시 삭제됩니다. 무엇보다도 문제가 떠다니고 있다는 사실이 저를 화나게 합니다. 하나의 표시기가 제거되면 멈추고 다른 하나는 .... 그런 다음 동일한 표시기가 터미널을 멈추고 그렇지 않습니다.

설명된 2가지 질문과 관련하여:

1) 지표 목록을 통해 지표를 삭제할 때 터미널이 정지되는 이유는 무엇입니까?

2) 위에서 설명한 지표를 제거하는 두 가지 방법의 차이점은 무엇입니까?

 
satorifx :

이상한 문제가 있습니다

먼저 7개의 표시기를 함께 구동하고 문제가 없으면 나머지 8개를 개별적으로 구동하십시오. 문제가 있으면 다시 반으로 나눕니다. 그래서 범인은 한두 명이다. 그리고 아무 것도 나오지 않으면 15부터 하나씩 제거합니다. 블랙박스 작업 시 찌르는 방법은 기술과 인내로 결과를 줍니다.
 
MT5 이벤트 핸들러인 CHARTEVENT_CUSTOM OnChartEvent()는 여러 스레드에서 작동한다는 것을 알고 있습니다.

OnChartEvent() 핸들러 내에서 스레드로부터 안전한 로직을 생성할 수 있습니까?

스레드로부터 안전한 MQL5 코드를 전혀 작성할 수 있습니까?
 
말해주세요! iCustom을 통해 Expert Advisor에서 사용자 지정 지표 를 호출하는 경우 Expert Advisor에서 이 지표의 입력 매개변수를 어떻게 표시할 수 있습니까? 표시기의 소스를 사용할 수 있습니다. 전혀 어렵나요?
 
Sayberix :
말해주세요! iCustom을 통해 Expert Advisor에서 사용자 지정 지표 를 호출하는 경우 Expert Advisor에서 이 지표의 입력 매개변수를 어떻게 표시할 수 있습니까? 표시기의 소스를 사용할 수 있습니다. 전혀 어렵나요?

지표에 나와 있는 속성을 나열한 순서대로 작성

이중 iCustom (
            기호 , // 기호 이름
    정수    타임프레임 , // 타임프레임
            name , // 폴더/사용자 지정 표시기_ 이름
...                              // 표시기 입력 매개변수 목록
정수            모드 , // 데이터 소스
정수            옮기다               // 옮기다
);


표시기에서 "입력 매개변수"를 열고 필요한 값으로 하나씩 복사하십시오.

변수의 유형을 확인하고 문자열이면 따옴표로 묶습니다. 아무 것도 건너뛸 수 없습니다.

 double val= iCustom ( NULL , 0 , "SampleInd" , "",240,3,"",clrNONE,clrNONE , 1 , 0 );
 
좋은 오후, 왜 그런 유물이 나타납니까? 비상 폐쇄 코드가 첫 번째 교차로에서 닫히는 것처럼 보입니까? 닫는 데 오류가 없었습니다.
 if ( MathAbs (Ima-Ima2) <= c && OrdersTotal () != 0 )
        {
         OrderSelect (ticket, SELECT_BY_TICKET);
         int a = OrderType();
         RefreshRates();
         if (a == 0 )
           {
            OrderClose(ticket, lots, Bid, 20 , clrBlack );
           }
         if (a == 1 )
           {
            OrderClose(ticket, lots, Ask, 20 , clrBlack );
           }
         ticket = 0 ;
}
파일:
test.png  22 kb
 
여기에서 RefreshRates가 작동합니까?

기능에서 OrderSend 에는 cena가 있지만 cena 는 루프 전에 설정되었습니다.


double cena=Ask;

for ( int i= 0 ; i<= 10 ; i++)
   {
   RefreshRates();
   int t= OrderSend (OrderSymbol(),OP_BUY, 0.1 ,cena, 10 , 0 , 0 ); 
   if (t!=- 1 ) break ;
   }
 
igrok333 :
여기에서 RefreshRates가 작동합니까?

기능에서 OrderSend에는 cena가 있지만 cena 는 루프 전에 설정되었습니다.


~하지 않을 것이다

 
Igor Makanu :

~하지 않을 것이다

그는 질문이 아직 오래되었을 때 가격을 취했습니다.
그런 다음 새로 고침 만 요청을 변경 했습니까?
 
당신은 추측. 변수 cena는 RefreshRates와 무관합니다.