초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 88

 
WindSW :
Expert Advisor가 차지하는 메모리 양과 재배포 방법을 알려주십시오.

Windows 작업 관리자로 충분합니다.

기사를 스크롤하십시오.

일반적으로 Expert Advisor를 스크립트로 분해하고 모든 기능이 작동하도록 만든 다음 함께 결합합니다.

 
WindSW :

그러나 ObjectCreate로 레벨이 생성되지 않는 이유를 알 수 없습니다. 모든 기능이 처리되지만 OBJ_TREND 개체가 생성되지 않습니다.

변수는 전역 수준에서 정의됩니다.

문자열 oRes, oSup, oPP, oRes1, oRes2, oRes3, oSup1, oSup2, oSup3, textPP, textR1, textR2, textR3, textS1, textS2, textS3;

레벨을 생성해야 하는 코드:

여러분, 제가 이것을 알아낼 수 있도록 도와주세요. 물론이죠

레벨이 생성되지만 표시되지 않음)

좌표 설정 - 시간 / 가격. 거기에 확실한 0이 있습니다.

 
Dima_S :

레벨이 생성되지만 표시되지 않음)

좌표 설정 - 시간 / 가격. 거기에 확실한 0이 있습니다.

바인딩 없이 객체를 만든 다음 수정합니다. 여기 .

잘못된(할당되지 않은) 이름으로 인해 개체가 생성되지 않습니다. (위에서 이미 답변). 따라서 수정은 그것을 볼 수 없습니다.

 
fyords :

글쎄, 전역 수준에서 변수를 선언하고 이러한 변수에 값을 할당했다고 가정해 보겠습니다.

그렇지 않은 경우 프로그램에 "이러한 특성을 가진 객체를 이름으로 생성하십시오 ..."라고 알려주고 여기서 문제는 이름이 설정되지 않은 것입니다. 그래서 그는 창조하지 않습니다.

ObjectCreate 코드에서 직접 지정하는 것이 더 쉬울까요?

고맙습니다! 어째서인지 바로 할 생각은 없었습니다. 버전 4 에서는 객체의 이름 도 정의되어 있기 때문입니다.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов - Документация по MQL5
 

배열 오버플로 오류를 수정할 수 없습니다. 나는 88페이지에 그녀에 대해 썼습니다. Expert Advisor가 한동안 작동하다가 충돌합니다. 좀 더 정확하게 말하면, 하나의 패스는 전문가의 시작부터 끝까지 작동하고, 아래 표시된 주기의 두 번째 패스에서는 어레이가 라인 표시로 오버플로됩니다.

H=높음[j];

 void CreateLevels()
   {
       double High[];
       ArrayResize (High, 0 );
       ArraySetAsSeries (High, true );
       CopyHigh ( _Symbol , _Period , 0 ,Candle,High);
       ArrayResize (HBar, 0 );
       ArrayResize (HBar, 1000 );
       int countH= 0 ;
       int f1;
       double H;
       for ( int j=Nachalo;j<=Candle;j++)
         {
           //--- поиск макс -----------------------------------
           if (iHighest( Symbol (), 0 , 10 ,MN* 2 ,j-MN)==j)
            {
             f1= 0 ;
             H=High[j];                                 // отметка текущего хая
             ...                                         // здесь обработка флага f1
             if (f1== 0 )                                   // если занесение хая в массив разрешено
               {
                HBar[countH][ 0 ]=High[j];
                countH++;
               }
            }
         }
   }

가장 중요한 것은 High[] 배열이 어떻게 오버플로되는지 이해가 되지 않는다는 것입니다. 왜냐하면 특정 수의 최고가 표시되기 때문입니다. 그리고 왜 터미널은 H=High[j] 줄에 오버플로를 표시합니까? ?

계획을 올바르게 구현하는 방법을 제안할 수 있습니까? High[] 배열을 어떻게든 재설정할 수 있습니까? 아니면 특정 촛불의 고가를 다른 방식으로 H 변수에 쓸 수 있습니까?

 
WindSW :

다음과 같이 시도하십시오.

 for ( int j=Nachalo;j < Candle;j++)

이유: 배열 인덱싱은 0부터 시작하므로 Candle==100일 때 배열의 마지막 요소는 100번이 아니라 99번으로 인덱싱됩니다.

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Основы языка / Переменные - Документация по MQL5
 
Yedelkin :

다음과 같이 시도하십시오.

이유: 배열 인덱싱은 0부터 시작하므로 Candle==100일 때 배열의 마지막 요소는 100번이 아니라 99번으로 인덱싱됩니다.

고맙습니다! 도움이 되었습니다!
 

안녕하세요! 다음 문제가 발생했습니다... Expert Advisor를 생성했습니다 ... RTS 지수에 대한 선물 계약을 시작했습니다. 그리고 많은 부분이 소수가 아님 = 자금 관리가 작동하지 않으며 따옴표가 10의 배수 = 후행 중지가 작동하지 않습니다. 이 문제를 해결할 수 있는지 알려주십시오.

나는 iMa 값을 10 또는 5까지 반올림하는 방법을 알고 있습니다. 최후의 수단으로 후행 정지를 별도로 시작하는 것 같습니다.

 
oldiol : 그리고 거기에서 제비는 소수가 아닙니다 = 자금 관리가 작동하지 않으며 따옴표는 10의 배수 = 후행 정지가 작동하지 않습니다. 이 문제를 해결할 수 있는지 알려주십시오.

기기에는 Volume_Step과 같은 속성이 있습니다(예: "로트 단계"). 분수가 아닌 볼륨에 사용할 수 있는지 확인하십시오.

음, 따옴표는 10의 배수입니다. 후행 중지 단계를 동일하게 만들기만 하면 됩니다.

 
Yedelkin :

기기에는 Volume_Step과 같은 속성이 있습니다(예: "로트 단계"). 분수가 아닌 볼륨에 사용할 수 있는지 확인하십시오.

음, 따옴표는 10의 배수입니다. 후행 중지 단계를 동일하게 만들기만 하면 됩니다.

정말 감사합니다.. 노력하겠습니다..
사유: