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

 
barabashkakvn :
모든 계산은 OnCalculate에서 이루어집니다(즉, 새 막대가 나타나는 이벤트가 여기에 정의됨)
감사합니다. 살펴보겠습니다. 제가 뭔가 잘못 이해하고 있는 것일 수도 있지만, 상위 5위 안에는 커스텀 인디케이터 의 값을 얻기 위해 버퍼 인덱스를 지정할 가능성이 없는 것 같습니다.
 
forexman77 :
감사합니다. 살펴보겠습니다. 제가 뭔가 잘못 이해하고 있는 것일 수도 있지만, 상위 5위 안에는 커스텀 인디케이터 의 값을 얻기 위해 버퍼 인덱스를 지정할 가능성이 없는 것 같습니다.
iCustom은 사용자 지정 표시기 핸들을 반환합니다. 그런 다음 두 번째 매개변수가 버퍼 번호인 CopyBuffer입니다.
 
알려주세요 - 별도의 최적화 패스가 아닌 Expert Advisor의 최적화 를 완전히 멈추게 하는 기능이 있나요?
 
바라바쉬카크:
iCustom은 사용자 지정 표시기 핸들을 반환합니다 . 그런 다음 두 번째 매개변수가 버퍼 번호인 CopyBuffer입니다.

말해봐, 스크립트에서 표시기의 값을 얻을 수 있습니까?

다음과 같이 시도했습니다.

 input int MA_Period= 21 ;
input int MA_Shift= 0 ;
input ENUM_MA_METHOD MA_Method= MODE_SMA ;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
double MA_handle= iCustom ( NULL , 0 , "Examples\\Custom Moving Average" ,
                     MA_Period,
                     MA_Shift,
                     MA_Method,
                     PRICE_CLOSE // считаем по ценам закрытия
                     );  
Alert ( "MA_handle=" ,MA_handle);
  }

나는 모든 지표에서 값을 얻습니다 10.

나는 또한 이것을 시도했다(오류 4807이 나온다):

 input int MA_Period= 21 ;
input int MA_Shift= 0 ;
input ENUM_MA_METHOD MA_Method= MODE_SMA ;
int MA_handle;
double ma1Val[]; 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {

//--- массив значений индикатора MA
   ArraySetAsSeries (ma1Val, true );
//--- копируем значения индикаторов из индикаторных буферов
   if ( CopyBuffer (MA_handle, 0 , 0 , 3 ,ma1Val)< 0 )
     {
       Alert ( "Ошибка копирования буферов индикатора Moving Average - номер ошибки:" , GetLastError (), "!!" );
       return ;
     }
MA_handle= iCustom ( NULL , 0 , "Examples\\Custom Moving Average" ,
                     MA_Period,
                     MA_Shift,
                     MA_Method,
                     PRICE_CLOSE // считаем по ценам закрытия
                     );  
Alert ( "ma1Val[0]=" ,ma1Val[ 0 ]);
  }
 
forexman77 :
바라바쉬카크:
iCustom은 사용자 지정 표시기 핸들을 반환합니다 . 그런 다음 두 번째 매개변수가 버퍼 번호인 CopyBuffer입니다.

말해봐, 스크립트에서 표시기의 값을 얻을 수 있습니까?

다음과 같이 시도했습니다.

나는 모든 지표에서 값을 얻습니다 10.

나는 또한 이것을 시도했습니다 (오류 4807이 나옵니다).

1.iCustom 도움말을 읽으십시오.
2. 표시기 버퍼의 값을 얻는 절차: 표시기 핸들을 가져온 다음 CopyBuffer를 사용하여 이 핸들을 사용하여 필요한 표시기 버퍼를 복사합니다.
 
barabashkakvn :
1. iCustom에 대한 도움말을 읽으십시오.
2. 표시기 버퍼의 값을 얻는 절차: 표시기 핸들을 가져온 다음 CopyBuffer를 사용하여 이 핸들을 사용하여 필요한 표시기 버퍼를 복사합니다.
물론 공부하겠습니다. 스크립트에 "OnInit"이 없기 때문에 물어봤는데 그 안에 핸들이 들어 있습니다. 스크립트에서 "OnStart" 전에 핸들을 요청하는 것으로 나타났습니까?
 
forexman77 :
물론 공부하겠습니다. 스크립트에 "OnInit"이 없기 때문에 물어봤는데 그 안에 핸들이 들어 있습니다. 스크립트에서 "OnStart" 전에 핸들을 요청하는 것으로 나타났습니까?
OnInit는 Expert Advisors 및 표시기에서 사용할 수 있습니다.
 
barabashkakvn :
OnInit는 Expert Advisors 및 표시기에서 사용할 수 있습니다.
모든 것이 해결되었습니다! 감사해요!!
 
forexman77 :
모든 것이 해결되었습니다! 감사해요!!
물론이죠.
 
Fleder :
마켓의 제품에는 5~20개의 활성화가 있습니다(판매자의 재량에 따라). 활성화 시도를 다 사용하지 않았다면 걱정할 필요가 없습니다. 추가 전리품은 제거되지 않습니다.
답변 감사합니다 구매버튼 눌러보겠습니다. 다른 사람은 없습니다 :-)
사유: