MQL5에서 함께 배우고 쓰기 - 페이지 40

 
지표는 전문가와 병행하여 지표를 다시 계산하는 일반적이고 독립적인 프로세스에 속합니다.
 
Dimka-novitsek : ... 그리고 init에서 생성된 경우 표시기 핸들이 새 틱 또는 최소한 막대의 도착과 함께 다시 그려지도록 강제하는 것은 무엇입니까?

다시 그리는 것은 표시기 핸들이 아니라 표시기 자체 의 그래픽 구성 입니다. 핸들은 정수 값입니다.

Dimka-novitsek :
init에 작성하면 어떻게 든 비현실적입니다!

간단한 방법으로 설명하려고 합니다. 표시기를 시작하는 방법에는 수동 및 프로그래밍 방식의 두 가지가 있습니다. 두 경우 모두 터미널은 동일한 컴퓨팅 프로세스를 생성하고 유지합니다. 프로그램 시작과 수동 시작을 통해 표시기를 한 번만 실행하면 충분합니다. 그러면 모든 것이 코드에 따라 계산됩니다. 표시기를 프로그래밍 방식으로 실행하기 위해 iCustom() 함수 및 유사한 함수가 사용됩니다. 즉, 올바른 매개변수 세트를 사용하여 iCustom() 함수를 한 번 성공적으로 시작하면 해당 계산 프로세스가 수동으로 시작할 때와 마찬가지로 작동하기 시작합니다.

이 경우 프로그래밍 방식으로 한 번에 여러 지표를 시작할 수 있습니다. 핸들은 특정 컴퓨팅 프로세스에 액세스할 수 있는 일종의 식별자입니다. 핸들을 사용하여 프로그래밍 방식으로 시작된 특정 지표의 계산된 데이터를 복사할 수 있습니다.

따라서 프로그래밍 방식으로 표시기를 시작하고 핸들을 얻으려면 일반적으로 OnInit()에서 수행하는 것으로 충분합니다. "다시 그리도록" 각 틱이 도착할 때 표시기를 수동으로 시작하지 않습니다.

 
감사해요!!!!
 
고맙습니다! 대체로 이해했습니다. 그리고 여기 앉아서 벌써 두 시간 동안 생각합니다. 글쎄, init에서 핸들의 발표는 나에게 어울리지 않는다. 약 20개의 통화 쌍이 나열되는 다중 통화 로봇입니다. 로봇의 다른 위치에서 지정된 기능이 호출되고 다른 시간 프레임이 설정됩니다. 어쩌면 진짜일 수도 있지만 이것은 말도 안되는 소리입니다. 앉아서 진짜 문지르는데..
 int OnInit ()
  {
//---
   if ( Digits () == 3 || Digits () == 5 ) slip=slip * 10 ; 
   //рисовка места под дашборд   
   time1 = 0 ;
   initGraph();
   ArrayInitialize (avg_, 1 );
//---
 ATR_handle= iATR (symbol,periodd(timeframe),period);
   return ( 0 );
  }
//+------------------------------------------------------------------+
 
실제로 ERR_MARKET_NOT_SELECTED 4302 MarketWatch에서 기호가 선택되지 않았습니다. 문제의 근원이 어디에 있는지 더 자세히 설명합니다.

어떻게 선택되지 않습니까? 선택되지 않은 이유는 무엇입니까? 마켓워치란? 그나저나 그 상징은 무엇일까요? 통화쌍? 그래서 아니오, 제 코드에서 통화 쌍은 함수의 입력으로 매우 잘 사용됩니다!
 
확인도 해보고 알 것 같습니다. 사실, 새 버전에서 수정된 한 줄을 제외하고 Google과 Yandex에서 MarketWatch를 찾지 못했습니다.
 
Dimka-novitsek :
실제로 ERR_MARKET_NOT_SELECTED 4302 MarketWatch에서 기호가 선택되지 않았습니다. 문제의 근원이 어디에 있는지 더 자세히 설명합니다.

어떻게 선택되지 않습니까? 선택되지 않은 이유는 무엇입니까? 마켓워치란? 그나저나 그 상징은 무엇일까요? 통화쌍? 그래서 아니오, 제 코드에서 통화 쌍은 함수의 입력으로 매우 잘 사용됩니다!

SymbolSelect () 함수를 살펴보십시오. MarketWatchMarket Watch 창입니다. 질문하기 전에 오른쪽 상단 모서리에 있는 포럼 검색을 사용하여 답변을 찾아보십시오.

추신 감사합니다. 모든 게시물을 일일이 작성할 필요는 없습니다. :)

 

응.

다음과 같이 인쇄를 확인하고 입력했습니다.

 double iATRf ( string symbol, int timeframe, int period, int shift  ){
  
   Print ( "symbol" ); Print (symbol); Print ( "timeframe" ); Print (timeframe); Print ( "period" ); Print ( period); Print ( "shift" ); Print (shift);  
  
    ATR_handle= iATR (symbol,periodd(timeframe),period);
   CopyBuffer (ATR_handle, 0 , 0 , 100 ,ATR);
     ArraySetAsSeries (ATR, true ); 
     return ( ATR[shift]); }  

그리고 검사 결과 함수가 정상적이고 정상적인 매개변수를 허용하는 것으로 나타났습니다. 여기. 그리고 지금 바로 질문을 더 잘 이해하기 위해 링크를 살펴보겠습니다! 고맙습니다!

 
Dimka-novitsek :
저도 확인해보니 방법을 알 것 같습니다. 사실 , 새 버전에서 수정된 한 줄을 제외하고 Google 및 Yandex에서 MarketWatch를 찾지 못했습니다 .
글쎄, Dimon Vladimirovich, 당신은 장난 꾸러기입니다 :)
 

감사해요!!

이것은 플랫폼이 이 쌍과의 작업을 전혀 제공하지 않는다는 것을 의미합니까? 2012.09.21 16:23:17 CADJPY/PERIOD_D1 쌍에 대한 iMA 표시기 핸들 생성 실패, 오류 코드 4302

Документация по MQL5: Технические индикаторы / iMA
Документация по MQL5: Технические индикаторы / iMA
  • www.mql5.com
Технические индикаторы / iMA - Документация по MQL5