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

 
Yedelkin :
나는 대답하기 어렵다. 나는 당신의 메시지를 다시 읽었지만 배열의 크기를 변경한다는 아이디어를 이해하지 못했습니다. 그리고 코드에 대한 답은 의도에 대한 이해에 달려 있습니다. 아마도 다른 사람이 응답할 것입니다.

원칙적 으로 배열의 크기를 변경하는 것은 중요하지 않습니다. 예를 들어 20으로 설정하겠습니다.

  

 double masCenPoc[ 20 ]; 

 for ( int i= 0 ; i<20; i++){
 
   if ((cena_poc < high && cena_poc < low)||(cena_poc > high && cena_poc > low))

//как вот дальше обозначить чтоб он запомнил значение цены уровня Рос?
    
     masCenPoc[i] = cena_poc;

else 

//и удалил значение из массива, если нашлось пересечение с ценой этого уровня Рос?
 
Top2n : 원칙적으로 신경쓰지 않고 배열의 크기를 변경합니다. 예를 들어 20으로 설정하겠습니다.

여기에 20개 요소의 배열이 있습니다. if 조건이 충족되었다고 가정합니다 . 배열의 첫 번째 요소에 가격 값을 할당합니다. masCenPoc[0] = cena_poc;

배열의 두 번째 요소에 무엇을 할당할까요?

 
Yedelkin :

여기에 20개 요소의 배열이 있습니다. if 조건이 충족되었다고 가정합니다 . 배열의 첫 번째 요소에 가격 값을 할당합니다. masCenPoc[0] = cena_poc;

배열의 두 번째 요소에 무엇을 할당할까요?

Ros의 다음 값은 n시간 후에 나타납니다. Ros 라인은 이전 결과를 기반으로 매일 시작될 때 나타납니다. 가격이 수준에 닿지 않으면 이 수준 Ros의 값이 배열에 저장됩니다.
 
Top2n : Ros의 다음 값, n번입니다. Ros 라인은 이전 결과를 기반으로 매일 시작될 때 나타납니다. 가격이 수준에 닿지 않으면 이 수준 Ros의 값이 배열에 저장됩니다.
분명한. 나는 그렇게 할 것이다. 20개의 요소로 구성된 배열을 만들고 모든 값에 -1을 할당합니다. 하루가 시작될 때 for 루프( int i= 0 ; i<20; i++)를 실행하고 배열에서 값이 -1인 첫 번째 요소를 찾습니다. 이러한 요소를 찾은 후 거래 조건( if ((cena_poc < high && cena_poc < low)||(cena_poc > high && cena_poc > low)))을 확인하고 성공하면 발견된 항목에 cena_poc 값을 할당합니다. 배열 요소 . 따라서 배열은 필요한 값으로 점차 채워집니다.
 
Top2n : 감사합니다 하지만 어디에 넣어야 하나요?
예, 비동적 배열을 사용하는 경우(마지막 예에서와 같이) 이 기능은 필요하지 않습니다. 동적 배열 이 필요한 경우 루프 전에 코드의 첫 번째 줄에서 크기를 선언하고 설정합니다.
 
Top2n :

원칙적으로 배열의 크기를 변경하는 것은 중요하지 않습니다. 예를 들어 20으로 설정하겠습니다.

 

모든 것이 이해가 되어야 합니다. 이 경우 어레이가 필요하지 않을 수 있습니다. 추가 계산이 포함된 한 주기에서는 1개의 변수로 충분할 수 있습니다. 나는 당신이 기록에 대한 데이터를 얻고 싶어한다고 생각합니다. 그래서 사이클은 막대에서 0으로 더 논리적이 될 것입니다. 그런 다음 데이터를 작성하십시오. 배열이 필요한 경우에는 스택으로 축적해야 합니다.

온라인 견적에 따라 구축하려는 경우 여전히 스택(유리)의 규칙을 따릅니다.

//Удачи!
 

안녕하세요. CopyBuffer 함수 를 사용하여 지표 데이터를 배열에 복사하려고 하면 -6.999999999999999e-005와 같은 값을 얻습니다.

이유는 무엇입니까?


Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
Документация по MQL5: Доступ к таймсериям и индикаторам / CopyBuffer
  • www.mql5.com
Доступ к таймсериям и индикаторам / CopyBuffer - Документация по MQL5
 
sss20192 :

안녕하세요. CopyBuffer 함수 를 사용하여 지표 데이터를 배열에 복사하려고 하면 -6.999999999999999e-005와 같은 값을 얻습니다.

이유는 무엇입니까?


아마도 그러한 가치와 원본. 코드를 게시하는 것이 좋습니다.
 

데이터 창 에서 지표에는 다른 데이터가 있습니다. Expert Advisor를 H1 차트에 첨부하면 M5 M15 및 H1 기간의 데이터를 복사합니다.

 int MacdHandleTf1 = iMACD ( _Symbol , Timeframe1, FastEMA, SlowEMA, SignalMA, AppliedPrice); 

int MacdHandleTf2 = iMACD ( _Symbol , Timeframe2, FastEMA, SlowEMA, SignalMA, AppliedPrice); 

int MacdHandleTf3 = iMACD ( _Symbol , Timeframe3, FastEMA, SlowEMA, SignalMA, AppliedPrice); 

CopyBuffer (MacdHandleTf1, 0 , 1 , 1 , MacdArray);

Print ( NormalizeDouble (MacdArray[ 0 ], 5 )); 

CopyBuffer (MacdHandleTf2, 0 , 1 , 1 , MacdArray);

Print ( NormalizeDouble (MacdArray[ 0 ], 5 )); 

CopyBuffer (MacdHandleTf3, 0 , 1 , 1 , MacdArray); 

Print ( NormalizeDouble (MacdArray[ 0 ], 5 )); 
사유: