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

 
azolotta :

덕분 에 정말 문제가 해결되었습니다!!!

귀찮으시다면 하이/로우 2개를 연속으로 표시하지 않고 가변성(하이-로우-하이)이 생기도록 말해주세요. 어떤 디자인을 추가해야 할까요? " 배열의 이전 요소 가 높으면 행의 두 번째 높은 요소가 배열에 포함되지 않고 낮을 때까지 기다려야합니다"와 같은 검사가 필요하지만 어떻게 정렬해야합니까?

나는 이미 당신에게 그것을 설명했습니다

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

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

알렉세이 빅토 로프 , 2021.01.24 17:15

아니요. 이전 것을 재설정하고 현재 하나를 표시기 버퍼에 추가해야 합니다.


 
DanilaMactep :

좋은 오후에요 여러분. 수표를 망쳤지만 O_o를 테스트하는 것을 잊었습니다. 오늘이 생각나서 좋네요... 여기가 스톱레벨 패션에 대한 체크입니다

테스트 중에 이러한 검사는 아래 스크린샷에 표시된 오류를 제공합니다.

그리고 흥미로운 점은 내가 어떻게   다음과 같이 이 수표에 1.5를 곱한 값을 추가했습니다.


이 추가 기능은 문제를 해결하지 않습니다   테스트는 아래 스크린샷과 같은 오류를 생성합니다.

정지 레벨 모드에 대한 이 검사가 주석 처리되어 있으면 오류가 없습니다. 수표의 오류가 무엇인지 알려주십시오. 그것 없이는 현실에서 Grail을 사용할 수 없습니다. 그들은 즉시 L O_o를 금지할 것입니다.

수표에 오류가 있는 것이 아니라 등록한 곳에 오류가 있다고 생각합니다.

여기에서 " * 1.5"를 제거할 수 있습니다.

 if (tp<MarketInfo( Symbol (),MODE_STOPLEVEL) * 1 , 5 )
 if (sl<MarketInfo( Symbol (),MODE_STOPLEVEL) * 1 , 5 )
 
DanilaMactep :

좋은 오후에요 여러분. 수표를 망쳤지만 O_o를 테스트하는 것을 잊었습니다. 오늘이 생각나서 좋네요... 여기가 스톱레벨 패션에 대한 체크입니다

테스트 중에 이러한 검사는 아래 스크린샷에 표시된 오류를 제공합니다.

그리고 흥미로운 점은 내가 어떻게   다음과 같이 이 수표에 1.5를 곱한 값을 추가했습니다.


이 추가 기능은 문제를 해결하지 않습니다   테스트는 아래 스크린샷과 같은 오류를 생성합니다.

정지 레벨 모드에 대한 이 검사가 주석 처리되어 있으면 오류가 없습니다. 수표의 오류가 무엇인지 알려주십시오. 그것 없이는 실생활에서 Grail을 시작할 수 없습니다. 그들은 즉시 L O_o를 금지할 것입니다.

스톱 레벨이 무엇을 반환하는지 확인하십시오. 종종 0입니다.

   int     Stoplevel = ( int )MarketInfo( Symbol (), MODE_STOPLEVEL);
   int     Spread = ( int )MarketInfo( Symbol (), MODE_SPREAD );

   if (Stoplevel == 0 ) Stoplevel = 2 * Spread;

   

이 같은

 
Alekseu Fedotov :

스톱 레벨이 무엇을 반환하는지 확인하십시오. 종종 0입니다.

이 같은

그는 그것을 필요로하지 않습니다, 그는 "만약 더 적은 stoplevel"이 있습니다

 
DanilaMactep :

좋은 오후에요 여러분.

큰 실수 ... 나는 즉시 눈치 채지 못했습니다.

 if (sl<MarketInfo( Symbol (),MODE_STOPLEVEL)* 1 , 5 ) // ЕСЛИ СТОПОЛС МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО 
 {
  sl= MarketInfo( Symbol (),MODE_STOPLEVEL)* 1 , 5 ; //СТОП  ЛОССУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
 }

if (tp<MarketInfo( Symbol (),MODE_STOPLEVEL)* 1 , 5 ) // ЕСЛИ ПРОФИТ МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО 
 {
  tp= MarketInfo( Symbol (),MODE_STOPLEVEL)* 1 , 5 ; // ПРОФИТУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
 }

POINTS여야 합니다.

 
azolotta :
2개의 하이/로우가 연속으로 표시되지 않고 변동성이 있도록(하이-로우-하이)

간단한 방법으로 할 수 있습니다. 전역 변수를 선언하고 이벤트에 따라 변경합니다.

 int direction= 0 ;

int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
   {


   for (n= 0 ; n<=limit; n++)
     {
       if (direction>= 0 && ((Close[n+ 1 ]>Open[n+ 1 ] && Open[n+ 2 ]>=Close[n+ 2 ]) || (Close[n+ 1 ]>Open[n+ 1 ] && Open[n+ 3 ]>Close[n+ 3 ])))
        {
         val_index= iLowest ( NULL , 0 , MODE_LOW , 3 ,n+ 1 );
         myAZBuffer[n]=Low[val_index];
         ExtLowBuffer[n]=Low[val_index];
         direction=- 1 ;
        }
       else
         if (direction<= 0 && ((Open[n+ 1 ]>Close[n+ 1 ] && Close[n+ 2 ]>=Open[n+ 2 ]) || (Close[n+ 1 ]<Open[n+ 1 ] && Close[n+ 3 ]>Open[n+ 3 ])))
          {
            val_index= iHighest ( NULL , 0 , MODE_HIGH , 3 ,n+ 1 );
            myAZBuffer[n]=High[val_index];
            ExtHighBuffer[n]=High[val_index];
            direction= 1 ;
           }
      }
.......

표시기에서 OnCalculate 함수와 모든 변수를 사용합니다.

그리고 시작은 더 이상 유행이 아닙니다 :)

 
Aleksei Stepanenko :

간단한 방법으로 할 수 있습니다. 전역 변수를 선언하고 이벤트에 따라 변경합니다.

표시기에서 OnCalculate 함수와 모든 변수를 사용합니다.

그리고 Start는 더 이상 유행이 아닙니다. :)

감사하다! 좋은 방법입니다!)

나는 OnCalculate 에 대해 이해했고, 나는 그것에 있을 것입니다))

 
Aleksei Stepanenko :

간단한 방법으로 할 수 있습니다. 전역 변수를 선언하고 이벤트에 따라 변경합니다.

표시기에서 OnCalculate 함수와 모든 변수를 사용합니다.

그리고 시작은 더 이상 유행이 아닙니다 :)

새로운 높음 / 낮음으로 작동하지 않습니다.
 

안녕하세요. Expert Advisor에서 표시기가 호출되면 프레임에 표시된 오류가 발생합니다. 왜 발생합니까? 항상 그런 것은 아닙니다. 다른 것에

터미널이 잘 작동합니다.


 
Sergey Fionin :

안녕하세요. Expert Advisor에서 표시기가 호출되면 프레임에 표시된 오류가 발생합니다. 왜 발생합니까? 항상 그런 것은 아닙니다. 다른 것에

터미널이 잘 작동합니다.


이것은 쓰기 권한 위반, 시스템 쓰기 금지입니다.