실행 정책을 반환합니다. - 페이지 8

 

이것이 현재 이동 평균 데이터를 얻는 방법입니다. 맞습니까?

 input int       ma_period = 10 ;
 int ma_handle = 0 ;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
    ma_handle = iMA ( _Symbol , _Period ,ma_period, 0 , MODE_SMA , PRICE_MEDIAN );
   if (ma_handle == INVALID_HANDLE )
     {
       Print ( "ma_handle == INVALID_HANDLE" );
       return ( INIT_FAILED );
     }

   return ( INIT_SUCCEEDED );


  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  { 
   double    ma[ 1 ] ;
   if ( CopyBuffer (ma_handle, 0 , 0 , 1 ,ma)== 1 )
     {
     
     
     }
 }

두 가지 질문입니다.

1. 표시기 버퍼 번호가 표시기와 연관되지 않은 것은 없습니다. 인디케이터가 하나 생기면 자동으로 버퍼 0을 받아서 표시해 주었습니다.

2. 초기화에 표시기 핸들이 있는 경우 표시기에 전달되는 매개변수를 변경할 때 초기화 이벤트가 발생하고 새 매개변수가 적용되도록 어드바이저를 차트에 다시 로드해야 합니까?

 
Ivan_Invanov :

이것이 현재 이동 평균 데이터를 얻는 방법입니다. 맞습니까?

두 가지 질문입니다.

1. 표시기 버퍼 번호가 표시기와 연관되지 않은 것은 없습니다. 인디케이터가 하나 있으면 자동으로 버퍼 0을 받아서 지정해 주었습니다.

2. 초기화에 표시기 핸들이 있는 경우 표시기에 전달되는 매개변수를 변경할 때 초기화 이벤트가 발생하고 새 매개변수가 적용되도록 어드바이저를 차트에 다시 로드해야 합니까?

1. "협회"가 없습니다. 그리고 결코 없었다.

CopyBuffer 에 대한 도움말 읽기

 int    CopyBuffer (
   int        indicator_handle,     // handle индикатора
   int        buffer_num,           // номер буфера индикатора
   int        start_pos,             // откуда начнем 
   int        count,                 // сколько копируем
   double     buffer[]               // массив, куда будут скопированы данные
   );

표시기 핸들이 전달되는 함수가 있습니다(귀하의 경우 이동 평균 표시기에는 버퍼가 하나만 있기 때문에 ma_handle 변수이고 버퍼 번호 '0'은 0입니다).


2. Expert Advisor에서 입력 매개변수를 변경하면 Expert Advisor가 새로 초기화되고 입력한 매개변수가 있는 표시기 핸들이 OnInit에서 생성됩니다.

Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
  • www.mql5.com
Отсчет элементов копируемых данных (индикаторный буфер с индексом buffer_num) от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар (значение индикатора для текущего бара). При копировании заранее неизвестного количества данных в качестве массива-приемника buffer[] желательно...
 
Vladimir Karputov :

1. "협회"가 없습니다. 그리고 결코 없었다.

...

SetIndexBuffer() 를 호출하는 것을 의미합니다.

 
Dmitry Fedoseev :

SetIndexBuffer()를 호출하는 것을 의미합니다.

네. 표시기 버퍼 번호가 무엇인지, 이러한 버퍼가 어떻게 생성되는지, 특정 표시기에 속하는지 또는 공통 번호가 있는지는 명확하지 않습니다. 설명서에는 SetIndexBuffer()를 작성해야 한다고 나와 있지만 이동 평균 전문가 조언자의 예에서는 작성하지 않았습니다. 도움말을 읽고 추가 기사를 검색했지만 더 이해하기 어려워졌습니다. 전처리기에 버퍼를 지정해야 합니까? 그리고 전처리기 지시문 보다 버퍼가 하나 더 적어야 하는 이유는 동일하지 않아야 합니다.
 
Ivan_Invanov :
네. 표시기 버퍼 번호가 무엇인지, 이러한 버퍼가 어떻게 생성되는지, 특정 표시기에 속하거나 공통 번호가 있는지 여부는 명확하지 않습니다. 설명서에는 SetIndexBuffer()를 작성해야 한다고 나와 있지만 이동 평균 전문가 조언자의 예에서는 작성하지 않았습니다. 도움말을 읽고 추가 기사를 검색했지만 더 이해하기 어려워졌습니다. 전처리기에 버퍼를 지정해야 합니까? 그리고 전처리기 지시문 보다 버퍼가 하나 더 적어야 하는 이유는 동일하지 않아야 합니다.

형이상학적 의미를 찾으면... 많은 것이 이해할 수 없게 됩니다. 글쎄요, 숫자일 뿐입니다. 특정 지표에 속합니다.

Expert Advisors에는 표시기 버퍼가 전혀 없으므로 SetIndexBufer() 호출이 있을 수 없습니다.

하나도 덜한게 아니라 똑같습니다. 0부터 계산할 때 마지막 숫자는 총 숫자보다 1 작습니다.

 
고맙습니다.
 

실례가 되지 않는다면 몇 가지 질문에 더 답해 주십시오.

1. 나중에 무언가를 할당하는데 왜선언된 변수 에 0을 할당하는지 이해가 되지 않습니다. 또한 0이 할당되지 않을 때도 있고 할당될 때도 있습니다.

2. 그리고 초기화 해제 시 객체를 삭제해야 한다고 하는데(이유는 불명) 인디케이터 핸들은 객체인데 어째서인지 삭제가 관례가 아닌데 왜 그런걸까요?

삼.   MqlTradeRequest 요청={0}; 무슨 뜻인가요? 글쎄, 아마도 전체 구조에는 0이 할당되지만 결국 숫자 유형뿐만 아니라 그 안에도 할당됩니다.

4. 그리고 여기서 논리적 연산은 무엇입니까?

 bool    OrderSend (
   MqlTradeRequest &  request,       // структура запроса
   MqlTradeResult &   result         // структура ответа
   );
 
Ivan_Invanov :

실례가 되지 않는다면 몇 가지 질문에 더 답해 주십시오.

1. 나중에 무언가를 할당하는데 왜 선언된 변수 에 0을 할당하는지 이해가 되지 않습니다. 또한 0이 할당되지 않을 때도 있고 할당될 때도 있습니다.

2. 그리고 초기화 해제 시 객체를 삭제해야 한다고 하는데(이유는 불명) 인디케이터 핸들은 객체인데 어째서인지 삭제가 관례가 아닌데 왜 그런걸까요?

삼.   MqlTradeRequest 요청={0}; 무슨 뜻인가요? 글쎄, 아마도 전체 구조에는 0이 할당되지만 결국 숫자 유형뿐만 아니라 그 안에도 할당됩니다.

4. 그리고 여기서 논리적 연산은 무엇입니까?

1. 습관적으로.

2. 이것은 다른 개체입니다. 그런 다음 자체적으로 언로드되지만 IndicatorRelease() 함수를 사용하여 속도를 높일 수 있습니다.

3. 클리어하고 모두.

4. 이것은 논리적 연산이 아니라 참조로 변수를 전달하는 것입니다.

 
Dmitry Fedoseev :

1. 습관적으로.

2. 이것은 다른 물건입니다. 그런 다음 자체적으로 언로드되지만 IndicatorRelease() 함수를 사용하여 속도를 높일 수 있습니다.

3. 클리어하고 모두.

4. 이것은 논리적 연산이 아니라 참조로 변수를 전달하는 것입니다.

감사하다)
 
뭔가 혼란스러워졌다. SYMBOL_TRADE_EXECUTION_MARKET을 실행할 때. 즉시 실행 과 같이 특정 가격으로 주문이 열리도록 할 수 있습니까? 보류 중인 주문이 필요합니까? 보류 중인 주문에 대한 시장 거래 요청 형식을 작성하십시오.