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

 
ascerdfg :
가능한가요?

로 교체되다:

왜 안 돼? 물론 당신은 할 수

 
double Open [ 3 ];

int Ind_Handle;

int OnInit ()
  {
      Ind_Handle= iCustom ( _Symbol , _Period , "Pop" ); // Pop.ex5
       if (Ind_Handle== INVALID_HANDLE )
        {
         Print ( " Не удалось получить хендл индикатора" );
         return ( INIT_FAILED );
        }
   
   return ( INIT_SUCCEEDED );
  }


void OnTick ()
  {
 
      CopyBuffer (Ind_Handle, 0 , 1 , 1 , Open );
       Print ( "Open0 " , Open [ 0 ]);
  }

인쇄: "Open0 1.797693134862316e+308"

표시기 버퍼 의 셀 번호와 인덱스를 모두 변경했지만.

나는 지표에 정수가 포함되어 있다는 것을 확실히 알고 있습니다. 왜 인쇄됩니까?

 
ascerdfg :

인쇄: "Open0 1.797693134862316e+308"

표시기 버퍼 의 셀 번호와 인덱스를 모두 변경했지만.

나는 지표에 정수가 포함되어 있다는 것을 확실히 알고 있습니다. 왜 인쇄됩니까?

또는 배열을 선언한 후 배열 ArraySetAsSeries를 true로 만들거나 크기가 1인 배열을 선언합니다.
 
void OnTick ()
  {
     int i;
     double price=. 5 ;
     double Open [];
       ArraySetAsSeries ( Open , true );

       Print ( "Кол-во " , BarsCalculated (Ind_Handle));
       Print ( "хэндл " ,Ind_Handle);
       CopyBuffer (Ind_Handle, 0 , 0 , 100 , Open );
                 
      
     for (i= 0 ; i< 100 ; i++)
    {
         if ( Open [i]!= EMPTY_VALUE )
        {
            price= Open [i];
             break ;
        }
    }
           
       Print (price);
  }
도움이 되지 않고 항상 씁니다 0.5. 항상 최대 수의 버퍼를 나타냅니다.
 
ascerdfg :
도움이 되지 않고 항상 씁니다 0.5. 항상 최대 수의 버퍼를 나타냅니다.

정확한 답변을 원하시면 올바른 질문을 하십시오. 표시기 코드와 조언자 코드를 제공하십시오. 이제 WHAT, WHO 및 WHERE가 명확하지 않습니다. :)

 

팝 - 표시기

prr - 고문

파일:
Pop.mq5  38 kb
ppp.mq5  4 kb
 
ascerdfg :

팝 - 표시기

prr - 고문

표시기를 다시 작성하십시오. 첫째, STOP WORDS를 확인하고, 둘째, 가능한 한 단순화하십시오. 예를 들어 표시기 버퍼 에 현재 막대의 수와 동일한 숫자를 입력하십시오.

결과: array[0]=0.0, array[1]=1.0 등. 이것은 지표에서 데이터를 가져오는 작업을 이해하는 프로세스를 매우, 매우 단순화합니다. 셋째, 하나의 표시기 버퍼만 남겨둡니다.

 

이 함수에서 업데이트된 기호를 명시적으로 지정하는 방법을 알려주시겠습니까? 예를 들어 EURUSD.m

 //+------------------------------------------------------------------+
//| Refreshes the symbol quotes data                                 |
//+------------------------------------------------------------------+
bool RefreshRates ( void )
  {
//--- refresh rates
   if (!m_symbol. RefreshRates ())
     {
       Print ( "RefreshRates error" );
       return ( false );
     }
//--- protection against the return value of "zero"
   if (m_symbol. Ask ()== 0 || m_symbol. Bid ()== 0 )
       return ( false );
//---
   return ( true );
  }
//+------------------------------------------------------------------+
 

안녕하세요!

시장 지표를 올바르게 구성하는 방법을 알려주실 수 있습니까?

확장자가 .mq5인 c 파일이 있고 확장자가 .mqh인 포함된 파일이 여러 개 있지만 시장에는 하나의 파일만 있으면 됩니다.

내가 알기로는 리소스를 통해 .mqh를 첨부하는 것은 불가능합니다. 수동으로 모든 것을 하나의 파일로 전송해야 합니까?

그리고 새 버전인 경우:? 당신이 할 수있는 미친 것입니다 +))

고맙습니다.

 
EgorKim :

이 함수에서 업데이트된 기호를 명시적으로 지정하는 방법을 알려주시겠습니까? 예를 들어 EURUSD.m

반대 질문: "여기에 명시적으로 기호를 설정하는 이유는 무엇입니까?".

이 기능을 사용하는 경우 OnInit에서 m_symbol에 기호를 할당해야 합니다.

   if (!m_symbol.Name( Symbol ())) // sets symbol name
       return ( INIT_FAILED );
   RefreshRates ();

이 경우 "EURUSD.m" 기호에 대해 Expert Advisor를 실행하면 m_symbol이 자동으로 "EURUSD.m"으로 설정됩니다.

사유: