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

 

SymbolsTotal() 및 SymbolName() 함수는 테스터에서 정보를 어디에서 얻습니까?

터미널에 세 번째 USDJPY 번호가 있으면 테스터는 세 번째 EURGBP를 갖습니다.

위협, 나는 MarketWatch 기호를 검색하고 고문에게 전송하기 위해 일련 번호로 인코딩합니다.

 

안녕하세요!

기능 질문이 있습니다.     IndicatorSetString , 여기서   나중에 이 지표를 차트에서 제거할 수 있는 지표의 짧은 이름을 설정할 수 있습니다.

제 생각에는 이상한 상황입니다.

사무실 PC에서는 이 절차가 정상적으로 진행되지만 다른 가정용 PC에서는 표시기가 처음 추가될 때 OnInit()에 지정된 IndicatorSetString 함수 와 달리 약칭 값이 처음에 자동으로 설정됩니다(즉, 는 입력 매개 변수를 고려하지 않고 사용하여 새 이름을 형성합니다 ) 표시기를 삭제하고 다시 로드한 후에만 새 이름이 나타납니다.

가장 먼저 마음에 떠오른 것은 소프트웨어의 차이점이었지만, 비교한 후 기본적인 모든 것이 동일하다는 것을 깨달았습니다.

- 전문가 및 지표 코드;

- 프로그램 버전( 빌드 425)

OS( 윈XP ) SP 3);

- 동일한 설정(특히 비교).

일반적으로 검사는 다음과 같습니다.

1. 여러 버튼이 화면에 표시되며 각 버튼은 표시기의 공통 및 짧은 이름과 연결됩니다.

2. 버튼을 눌렀을 때 공통명칭에 해당하는 인디케이터가 나타나고, 손을 떼면 약칭에 따른 인디케이터가 제거됩니다.

3. 사무실 PC에서는 첫 번째 푸시업에서 표시기가 제거되고 가정용 PC에서는 두 번째 푸시업에서만 표시기가 제거됩니다.

이에 대한 가능한 이유는 무엇입니까?

도식적으로 Expert Advisors 및 지표에 공통적인 사항과 이 질문과 직접 관련이 없는 기타 기능을 제외하면 다음과 같습니다.

1. 표시기 My_Indicator:

   input double   Offset  = 0 ;
   int OnInit ()  
   {  
       string NewNameIndicator = OldNameIndicator + Offset;
       IndicatorSetString ( INDICATOR_SHORTNAME , NewNameIndicator);
   }

2. 전문가:

   void OnChartEvent ( const int id, const long &lparam, const double &dparam, const string &sparam)
   {  
        String ShortNameIndicator1;
         //---При нажатии            
         if (sparam==My_Button1.Name()){
             if (My_Button1.State()== true ){
                Int handle = iCustom ( _Symbol , _Period , "My_Indicator1 " , "FirstParameter" );
                ChartIndicatorAdd ( 0 , 0 ,handle);
                ShortNameIndicator1 = ChartIndicatorName ( 0 , 0 , ChartIndicatorsTotal ( 0 , 0 )- 1 );
                 Alert (“State()= true , IndicatorName()=”,   ShortNameIndicator1);
             }
        }
         //---При отжатии
         if (sparam==My_Button1.Name()){
           if (My_Button1.State()== false ){
                  Alert (“State()= false , IndicatorName()=”,   ShortNameIndicator1);
                  ChartIndicatorDelete ( 0 , 0 ,ShortNameIndicator1);  
           }
        }
    }

결과적으로:

사무실 PC에서   IndicatorName 은 첫 번째 패스에서 새 이름으로 표시되지만 홈 페이지에서는 두 번째 패스에서만 표시됩니다.

사무실 PC에서 표시기는 첫 번째 릴리스 이후에 제거되고 가정용 PC에서는 두 번째 릴리스 이후에 제거됩니다.

이 경우 가정용 PC에서 처음 눌렀다 떼면 전문가의 코드와 인디케이터의 코드를 사용하지만, 원래 인디케이터 이름이 표시됩니다. 두 경우 모두 동일합니다.

 

여기에서 내 서비스 데스크 게시물을 인용하고 있습니다.


Версия и битность терминала



MetaEditor 5.00 build 425. Windows 7 ultimate, build 7600.

Описание проблемы

При создании файла скрипта с кодом

void OnStart ()
{
}


컴파일을 시도하면 내부 오류 #108이 발생합니다.

최신 버전의 터미널을 다운로드하여 같은 폴더에 다시 설치하면 오류가 내부 오류 #-3으로 변경되었습니다.

시퀀싱
이것이 오류와 관련이 있는지 모르겠지만 적절한 MetaEditor 자동 절차를 사용하여 MQL5 도움말 파일을 업데이트한 직후에 나타나기 시작했습니다.

예상 결과


일반 스크립트 컴파일))


컴퓨터의 바이러스 백신 청소 후 문제가 오늘 사라졌습니다.

분명히 새로운 것들의 사악한 생물 tk. 알려진 바이러스 백신에서 탐지되지 않았습니다. 외부 증상은 다음과 같습니다.

  • c:\Windows\AppPatch 폴더에 의미 없는 이름과 확장명이 .dat인 파일이 있습니다. 파일 헤더는 그것이 실행 가능하다는 것을 보여주고, 원래 이름은 dd.exe이고, "제품 이름" 및 "저작권" 필드는 의미 없는 대문자 집합입니다.
  • 위 파일의 경로가 등록된 HKLM\Software\Microsoft\Windows NT\Winlogon 레지스트리 키에 수정된 Userinit 항목이 있는지 여부. 항목이 삭제될 때 후자는 바이러스가 메모리에 있는 경우 눈에 띄지 않게 복구되는 경향이 있습니다.
  • conhost.exe 및 route.exe 프로세스, 때로는 netsh.exe의 여러 복사본을 주기적으로 실행
  • MetaEditor의 결함 5))) - Metaquotes의 편집기는 모든 기능 외에도 우수한 맬웨어 감지기로 판명되었습니다.

안전 모드에서 모든 것을 지웠습니다.

네, 로컬 Webmoney 계정도 찔렸는데 아이디 데이터가 떠돌아다니지 않는 것 같았습니다.)))

모든 사람이 수동으로 확인하는 것이 좋습니다.

 
Urain :

SymbolsTotal() 및 SymbolName() 함수는 테스터에서 정보를 어디에서 얻습니까?

터미널에 세 번째 USDJPY 번호가 있으면 테스터는 세 번째 EURGBP를 갖습니다.

위협, 나는 MarketWatch 기호를 검색하고 고문에게 전송하기 위해 일련 번호로 인코딩합니다.

마켓워치의 문자 순서는 정의에 따라 어떤 식으로든 설정할 수 있으므로 어떤 식으로든 설정할 수 없습니다.
 

파일:
Test_X.mq5  1 kb
MyMQL4.mqh  5 kb
 
EvgeTrofi :

이게 뭔가요?

숫자 형식의 열거형 식별자 ENUM_TYPE_MARKET_INFO 처럼 보입니다.

나는 같은 것을 가지고있다. SD에 씁니다.

 
Renat :
마켓워치의 문자 순서는 정의에 따라 어떤 식으로든 설정할 수 있으므로 어떤 식으로든 설정할 수 없습니다.

요점은 문자의 순서나 숫자가 아니라 이 순서와 숫자가 동시에 단말기와 테스터에서 다르다는 점이다.

일반적으로 파일을 통해 테스터에게 캐릭터 목록을 전송하여 문제를 해결했습니다. 솔직히 버그라고 생각하지만.

 
Urain :

요점은 문자의 순서나 숫자가 아니라 이 순서와 숫자가 동시에 단말기와 테스터에서 다르다는 점이다.

일반적으로 파일을 통해 테스터에게 문자 집합을 전달하여 문제를 해결했습니다. 솔직히 버그라고 생각하지만.

문제를 잘 이해하지 못했는데...

그리고 사용자가 작업 중 마켓워치에서 캐릭터 순서를 변경하면 잼이 될까요?

 
AlexSTAL :

문제를 잘 이해하지 못했는데...

그리고 사용자가 작업 중 마켓워치에서 캐릭터 순서를 변경하면 잼이 될까요?

테스터가 실행되는 동안? 테스터 시작 후 자동으로 작동할 가능성은 없지만 사전 출시 설정 모드에서는 기호가 일치해야 합니다(예: 조언자 를 변경하거나 기기 또는 기간이지만 테스터인 IMHO의 설정이 변경되면 기호가 일치해야 함).
 
Urain :

요점은 문자의 순서나 숫자가 아니라 이 순서와 숫자가 동시에 단말기와 테스터에서 다르다는 점이다.

일반적으로 파일을 통해 테스터에게 캐릭터 목록을 전송하여 문제를 해결했습니다. 솔직히 버그라고 생각하지만.

심볼 기반(시장 감시)은 서버에서 비동기식으로 무작위로 업데이트됩니다. 어떤 경우에도 명령을 내리는 것은 불가능합니다.

테스터는 종종 원격인 별도의 프로그램입니다. 기호 기반은 테스터에게 완전히 전송되지 않고 계산에 사용된 기호만 전송됩니다. 이는 자원을 절약하기 위해 수행됩니다. 따라서 다음(테스터에서 활성 목록에 추가) 문자의 순서가 다릅니다.

매개변수에 기호 이름 을 사용하십시오. 이것은 보다 안전한 옵션입니다.