포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 722

 
Zver4991 :
코드 규칙은 어떻습니까?

물론 코드뿐만 아니라!

https://forum.mql4.com/ru/38943

 
왜 나는 이해할 수 없다
 //+------------------------------------------------------------------+
//|                     Машка за больший период без перерисовки .mq4 |
//|                                                             Zver |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Zver"
#property link        "https://www.mql5.com"
#property version    "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Aqua
extern int Otobrajat_v_istorii = 1000 ;
extern int ma_shift= 0 ;
extern int ma_method = 0 ;
extern int applied_price= 0 ;


double buf_ma[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
     SetIndexBuffer ( 0 ,buf_ma);         // Назначение массива буферу
   SetIndexStyle( 0 , DRAW_LINE ,EMPTY, 2 ); // Стиль линии
//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
//---

   int i, // Индекс бара
   Counted_bars;
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i= Bars -Counted_bars- 1 ;           // Индекс первого непосчитанного
   if (i>Otobrajat_v_istorii- 1 ) // Если много баров то ..
      i=Otobrajat_v_istorii- 1 ;                   // ..рассчитывать заданное колич.
     
   while (i>= 1 ) // Цикл по непосчитанным барам
     {

    
     buf_ma[i]= iMA ( Symbol (), Period (), 5 ,ma_shift,ma_method,applied_price,i);
  
     
     }
   
   
   
   
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+

 
코드 옵션
 int Err;   //Номер ошибки
int FunErr( int Err) // Функция обработки ошибок
 경고를 제공합니다:
 'Err' 선언은 51행에서 전역 선언을 숨깁니다.
 코드의 다른 버전
 int Err;   //Номер ошибки
int FunErr(Err) // Функция обработки ошибок
 오류가 발생합니다.
 '오류' - 유형이 없는 선언
 여기에 올바르게 쓰는 방법?
 
Zver4991 :
왜 나는 이해할 수 없다
int i // 막대 인덱스
while
(i>= 1 ) // 셀 수 없는 막대를 반복합니다 .
i>= 1 항상.
 
Shurkin :
int i // 막대 인덱스
while
(i>= 1 ) // 셀 수 없는 막대를 반복합니다 .
i>= 1 항상.

나는 확실히 잊어 버렸습니다 ... 감사합니다

나--;

 
//--------------------------------------------------------------------
int Count= 0 ;                                    
//--------------------------------------------------------------------
void OnTick ()   
  {
   Count++;
   Comment ( "Новый тик " , Count);
   //if(Count>2) ExpertRemove();
  }
//--------------------------------------------------------------------
void OnDeinit ( const int reason)
  {
   Comment ( "Сработала ф-ия deinit() при выгрузке" );
  }
//--------------------------------------------------------------------

if(Count>2) ExpertRemove() 주석을 해제하고 이 함수에 의해 종료가 발생 하면 Expert Advisor를 언로드한 후 "Deinit() 함수가 언로드 중 작동함"이라는 주석 이 차트에 계속 표시됩니다 .

그런 Expert Advisor가 컨텍스트 메뉴를 통해 차트에서 제거되면 OnDeinit 의 Comment() 가 차트에 남아 있지 않은 이유를 아는 사람이 있습니까?

 

Shurkin :

 코드 옵션
 int Err;   //Номер ошибки
int FunErr( int Err) // Функция обработки ошибок
 경고를 제공합니다:
 'Err' 선언은 51행에서 전역 선언을 숨깁니다.
 코드의 다른 버전
 int Err;   //Номер ошибки
int FunErr(Err) // Функция обработки ошибок
 오류가 발생합니다.
 '오류' - 유형이 없는 선언
 여기에 올바르게 쓰는 방법?

이것은 일반적으로 가장 높은 수준에서 방어되는 언어 설계 결함입니다. 두 가지 사실:

1. MQL4++ 언어는 중첩 범위에서 변수 이름을 숨길 수 있습니다.

2. 중첩 범위에서 변수 이름을 숨길 때 해제할 수 없는 경고가 반드시 발생합니다.

질문에 답하면 적어도 두 가지 옵션이 가능하다고 말할 수 있습니다.

1. 이름 숨김을 사용하되 경고가 있는 것은 참아라(나쁘게도 이름 숨김에 대한 많은 경고 중에서 잠재적인 오류를 감지하고 제거하는 데 도움이 될 수 있는 정말 중요한 다른 경고를 알아차릴 수 없음).

2. 언어에 그러한 옵션이 있음에도 불구하고 이름 숨기기를 사용하지 마십시오. 예를 들어 전역 변수 이름을 Err 대신 gErr로 지정합니다.

이름 숨기기를 비활성화하는 대신 영구 경고가 도입되었습니다. 즐기다.

 

러시아어: 올바른 옵션이 첫 번째 옵션이며 경고를 무시하십시오.

 
tara :

러시아어: 올바른 옵션이 첫 번째 옵션이며 경고를 무시하십시오.

고맙습니다.
 
포함 파일의 기능 설명을 어딘가에서 볼 수 있습니까?