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

 
Vladimir Karputov :

트레이드 클래스 CSymbolInfo 또는 SymbolInfoXXXX 유형의 시스템 기능과 같은 한 가지 접근 방식을 혼동하지 않고 사용하는 것이 좋습니다.

감사합니다. 더 정확할 수 있습니다.

이것이 오류로 이어질 수 있습니까? 아니면 코딩 문화 권장 사항에 불과합니까?

 
vladzeit :

어, 고마워. 더 정확할 수 있습니다.

이것이 오류로 이어질 수 있습니까? 아니면 코딩 문화 권장 사항에 불과합니까?

아무도 vinaigrette를 사용하는 것을 금지하지 않습니다. 하지만 시간이 지나면서 변수 이름과 혼동될 것입니다. 변수의 데이터를 업데이트했는지 여부를 기억하십니까?

 
Vladimir Karputov :

아무도 vinaigrette를 사용하는 것을 금지하지 않습니다. 하지만 시간이 지나면서 변수 이름과 혼동될 것입니다. 변수의 데이터를 업데이트했는지 여부를 기억하십니까?

감사합니다 이해했습니다)

 
Vladimir Karputov :

동일한 시간대의 여러 시계열을 비교해야 하는 경우 MqlRates ->와 같은 배열로 작업하고 CopyRates 를 사용하여 이 배열을 채웁니다.

시간은 구조에 편리하게 저장됩니다.   MqlDateTime -> datetime 에서 구조로 시간을 변환합니다.   MqlDateTimeTimeToStruct 를 사용합니다.

이제 예제 1은 다음과 같습니다.

명쾌한 답변 감사합니다. 그러나 질문이 있습니다 ...

1. 무엇을 합니까? 및 : 만 발견됨 :: 컨텍스트

 int count=(InpBarTime< 10 )? 10 :InpBarTime+ 1 ;

2. MT4에서 [h] 레코드를 정의하는 레코드 요소

 //--- example 1
// if(Period()<=PERIOD_H4 && TimeHour(Time[h])==0 && TimeMinute(Time[h])==0)
   MqlDateTime SDateTime;
   TimeToStruct (rates[InpBarTime].time,SDateTime); // Converts a value of datetime type into a structure variable MqlDateTime
   if ( Period ()<= PERIOD_H4 && SDateTime.hour== 0 && SDateTime.min== 0 )
     {

     }
  
 
코페이카2 :

명쾌한 답변 감사합니다. 그러나 질문이 있습니다 ...

1. 무엇을 합니까? 및 : 만 발견됨 :: 컨텍스트

 int count=(InpBarTime< 10 )? 10 :InpBarTime+ 1 ;

-->

이것은 축약형입니다. 다음과 같은 경우에는 중요하지 않습니다.

 int count= 0 ;
if (InpBarTime< 10 )
   count= 10 ;
else
   count=InpBarTime+ 1 ;



2. MT4에서 [h] 레코드를 정의하는 레코드 요소

 //--- example 1
// if(Period()<=PERIOD_H4 && TimeHour(Time[h])==0 && TimeMinute(Time[h])==0)
   MqlDateTime SDateTime;
   TimeToStruct (rates[InpBarTime].time,SDateTime); // Converts a value of datetime type into a structure variable MqlDateTime
   if ( Period ()<= PERIOD_H4 && SDateTime.hour== 0 && SDateTime.min== 0 )
     {

     }

-->

InpBarTime이라고 생각합니다. 그리고 어떻게 생각하세요?

 

무슨 뜻인가요? 및 : 만 발견됨 :: 컨텍스트

 int count=(InpBarTime< 10 )? 10 :InpBarTime+ 1 ;


https://www.mql5.com/ru/docs/basis/operators/ternary

최근에이 연산자는 유행이되어 점점 더 많이 사용합니다.

Документация по MQL5: Основы языка / Операторы / Условный оператор ?:
Документация по MQL5: Основы языка / Операторы / Условный оператор ?:
  • www.mql5.com
В качестве первого операнда – "выражение1" – может быть использовано любое выражение, результатом которого является значение типа bool. Если результат равен , то выполняется третий операнд – "выражениеЗ". Второй и третий операнды, то есть "выражение2" и "выражениеЗ", должны возвращать значения одного типа и не должны иметь тип void...
 
Vladimir Karputov :
코페이카2 :

명쾌한 답변 감사합니다. 그러나 질문이 있습니다 ...

1. 무엇을 합니까? 및 : 만 발견됨 :: 컨텍스트

-->

이것은 축약형입니다. 다음과 같은 경우에는 중요하지 않습니다.



2. MT4에서 [h] 레코드를 정의하는 레코드 요소

-->

InpBarTime이라고 생각합니다. 그리고 어떻게 생각하세요?

이제 나는이 상태의 일반적인 의미에서 거의 생각하지 않습니다 .... 나는 손에 잭이있는 BLONDE입니다)))

InpBarTime= 3 을 전역적으로 선언했습니다 . 그리고 MT4 [h]에서는 일반적으로 사이클에서 여기에서 여기까지 (한계용 ......)

 #property script_show_inputs
//--- input parameters
int InpBarTime= 3 ; // Bar where we compare the time
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()

나는 Market_Sessions Indicator를 찾았습니다. 흥미로운 구성이 있습니다. ... 내 머리 속에 내부 대화의 잔재를 몰아 내기 위해 노력하고 있습니다 ...))))

파일:
 
kopeyka2 :

이제 나는이 상태의 일반적인 의미에서 거의 생각하지 않습니다 .... 나는 손에 잭이있는 BLONDE입니다)))

그리고 당신은 전 세계적으로 이렇게 썼습니다.

나는 Market_Sessions Indicator를 찾았습니다. 흥미로운 구성이 있습니다. ... 내 머리 속에 내부 대화의 잔재를 몰아 내기 위해 노력하고 있습니다 ...))))

죄송합니다. 다음과 같이 작성해야 했습니다.

 //--- input parameters
input int InpBarTime= 3 ; // Bar where we compare the time
 
Fast528 :

무슨 뜻인가요? 및 : 만 발견됨 :: 컨텍스트


https://www.mql5.com/ru/docs/basis/operators/ternary

최근에이 연산자는 유행이되어 점점 더 많이 사용합니다.

확인 !!!


내가 맞았어?

 //if(Period()<=PERIOD_H4 && TimeHour(Time[h])==0 && TimeMinute(Time[h])==0)
   MqlDateTime SDateTime;
   TimeToStruct (rates[InpBarTime].time,SDateTime); // Converts a value of datetime type into a structure variable MqlDateTime
   if ( Period ()<= PERIOD_H4 && SDateTime.hour== 0 && SDateTime.min== 0 )
     {

     }
// А ЕСЛИ ПО ЦИКЛУ ?
int InpBarTime= 10 ;
for ( int a= 0 ; a<=InpBarTime; a++) 
 {
//if(Period()<=PERIOD_H4 && TimeHour(Time[h])==0 && TimeMinute(Time[h])==0)
   MqlDateTime SDateTime;
   TimeToStruct (rates[InpBarTime].time,SDateTime); // Converts a value of datetime type into a structure variable MqlDateTime
   if ( Period ()<= PERIOD_H4 && SDateTime.hour== 0 && SDateTime.min== 0 )
     {

     }
Запустив InpBarTime по циклу будем иметь цикл, но в структуре. Правильно?
 
kopeyka2 :

확인 !!!


내가 맞았어?

당신은 아무것도 이해하지 못했습니다. 나는 당신에게 작동 예를 주었다. 실행합니다. MQL4 스타일 로 작성하는 것을 잊어버리십시오. 코드 학습을 시작하고 도움말을 살펴보세요.

사유: