MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 794

 
Igor Makanu :

이것은 지표에서 수행하는 방법의 예입니다. 그리고 질문은 고문에 관한 것이었습니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

MQL4에 대한 모든 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론

북서부 , 2019.03.28 03:54

모두에게 좋은 하루!

두 시간을 잃었지만 아무것도 찾지 못했습니다.

mq4 에서 조언자 에서 유능하게 방법을 알려주십시오.

내장 함수를 사용하여 다른 지표의 데이터에 하나의 지표 구축

그리고 이 모든 것이 테스트 중에 예상대로 하위 창에서 표시되도록,

예를 들어 RSI 데이터에 대한 MA?


그러나 일반적으로 거의 정확합니다. iMAOnArray에 대한 배열을 채우는 것보다 표시기를 작성하고 값을 가져오는 것이 더 쉽습니다. 그런데 왜 2주기인가?

 
Alexey Viktorov :

그런데 왜 2주기인가?

표시기의 첫 번째 실행 또는 기록 데이터의 로드를 확인하지 않음

때로는 코드가 더 간결하고 조건이 충족된 후 루프 문을 사용하는 것보다 while / for에서 조건 확인을 사용하는 것이 더 효율적입니다.

iMAOnArray() 계산 코드를 RSI 데이터가 있는 배열 채우기 주기에 "플러그"하면 rsiBuffer[] 배열에 아직 채워지지 않은 전자 메일에 대한 잘못된 계산이 있습니다.

모든 배열 요소(총 = 0)에 대해 iMAOnArray() 계산을 사용한 예제에서 이 질문을 몇 달 전에 연구했지만 아아, iMAOnArray() 및 매개변수 https 를 올바르게 사용하는 방법에 대한 구체적인 정보가 없습니다. //docs.mql4.com/ru/indicators/imaonarray

int total, // 요소 수


iMAOnArray()를 논의하는 스레드 https://www.mql5.com/ru/forum/303372/page2#comment_10617854




알렉세이 빅토로프 :

이것은 지표에서 수행하는 방법의 예입니다. 그리고 질문은 고문에 관한 것이었습니다.

이 질문이 확실합니까?

북서쪽 :

그리고 이 모든 것이 테스트 중에 예상대로 하위 창에서 표시되도록,

)))))))

iMAOnArray - Технические индикаторы - Справочник MQL4
iMAOnArray - Технические индикаторы - Справочник MQL4
  • docs.mql4.com
В отличие от iMA(...), функция iMAOnArray не выбирает данные на основе названия инструмента, таймфрейма и используемой цены - ценовые данные должны быть подготовлены заранее...
 
Igor Makanu :

표시기의 첫 번째 실행 또는 기록 데이터의 로드를 확인하지 않음

때때로 코드는 조건이 충족된 후 추가 if를 수행한 다음 루프 문을 사용하는 것보다 while / for에서 조건 확인을 사용하는 것이 더 간결하고 효율적입니다.


이 질문이 확실합니까?

)))))))

)))) 부주의함을 만난 것은 이번이 처음이 아닙니다. 나는 지표에 대해 읽어보지도 않았다.

그러나 추가 경우에 대해

 if (prev_calculated== 0 ) limit=rates_total- 1 ; else limit=rates_total-prev_calculated+ 1 ;

이것은 다음과 같이 쓸 수 있습니다.

limit = prev_calculated == 0 ? rates_total- 1 : rates_total-prev_calculated+ 1 ;
그러한 기록을 사용하지 않습니까?
 

Igor Makanu :

...몇 달 전에 이 질문을 연구했지만, 안타깝게도 iMAOnArray()를 올바르게 사용하는 방법과 매개변수 https://docs.mql4.com/en/indicators/imaonarray 에 대한 구체적인 정보가 없습니다.

int total, // 요소 수

단순 평균 이상이 필요할 때 요소 수는 중요합니다. 어떤 유형의 MA가 계산에 이전 값을 사용하는지 기억하지 못합니다. 이 경우 요소의 수가 결과에 영향을 미칩니다. 그러나 일반적으로 mql5에서 이것은 하프 포크로 해결되며 더 이상 관심이 없습니다.

 
Alexey Viktorov :
그러한 기록을 사용하지 않습니까?

나는 그것을 사용하지만 일반적으로 "두 단계로"코드를 작성합니다. 처음부터 작성할 때 if () 조건과 함께 "음성 분석"(즉, 소리내어 읽기)에 이해할 수있는 구성을 사용합니다. 모든 것을 발음하는 것이 더 쉽습니다))))

그럼, 예, 약간 "코드를 결합"하고 유사한 구성을 만들 수 있지만 일반적으로 기성품 예제(코드) 라이브러리에서 이것을 사용합니다.

추신: 어딘가에서 C #에서 프로그램의 성능 향상에 대한 정보를 만났습니다 . foreach() 연산자와 이 연산자를 사용하지 않도록 하는 권장 사항이 있다는 것을 확실히 알고 있습니까? : - if() 연산자가 더 생산적이지만 중요하지 않다고 생각합니다. 편리하게 사용하겠습니다.


알렉세이 빅토로프 :

단순 평균 이상이 필요할 때 요소 수는 중요합니다. 참고로 저는 어떤 MA 보조기가 계산에 이전 값을 사용했는지 기억하지 못합니다. 이 경우 요소의 수가 결과에 영향을 미칩니다. 그러나 일반적으로 mql5에서 이것은 하프 포크로 해결되며 더 이상 관심이 없습니다.

더 깊은 문제가 있습니다. 이 포럼과 영어로 검색했습니다. 포럼, 토론 및 사용 예가 있었습니다. iMAOnArray() 계산은 total = 0 또는 total !=0 매개변수와 다릅니다. Igor(위 링크)와 논의할 때 iMAOnArray()를 total = 로만 사용하기로 결정했습니다. 0 매개변수 - 이전 토론에서 동일한 솔루션이 있었습니다.

 
Igor Makanu :

더 깊은 문제가 있습니다. 이 포럼과 영어로 검색했습니다. 포럼, 토론 및 사용 예가 있었습니다. iMAOnArray() 계산은 total = 0 또는 total !=0 매개변수와 다릅니다. Igor(위 링크)와 논의할 때 iMAOnArray()를 total = 로만 사용하기로 결정했습니다. 0 매개변수 - 이전 토론에서 동일한 솔루션이 있었습니다.

좋아요. 배열의 모든 요소 를 취하지 않고 EMA라도 오류 없이 얻으려고 하면 어려울 것입니다.

지수 이동 평균(EMA)

지수 평활 이동 평균은 현재 종가의 일정 비율을 이전 이동 평균에 더하여 결정됩니다. 지수 이동 평균을 사용할 때 가장 최근의 종가가 더 많은 가중치를 가집니다. p-퍼센트 지수 이동 평균은 다음과 같습니다.

EMA = (닫기(i) * P) + (EMA(i - 1) * (100 - P))

어디:

CLOSE (i) — 현재 기간의 종가
EMA (i - 1) — 이전 기간의 이동 평균 값.
P는 가격 가치의 사용 몫입니다.

따라서 30개 요소의 배열에서 기간 30의 EMA를 계산하면 EMA 대신 간단한 MA를 얻게 됩니다.

 
Alexey Viktorov :

좋아요. 배열의 모든 요소 를 취하지 않고 EMA라도 오류 없이 얻으려고 하면 어려울 것입니다.

따라서 30개 요소의 배열에서 기간 30의 EMA를 계산하면 EMA 대신 간단한 MA를 얻게 됩니다.

iMAOnArray()를 확인했습니다. 결과는 예측할 수 없습니다. 때로는 2 * MA 기간을 사용할 수 있으며 때로는 더 필요 합니다. total = 0을 사용하면 계산에 한 번만 사용할 수 있으며 매우 자주 사용하면 그러면 터미널이 중단됩니다.

글쎄, 나는 거의 iMAOnArray()를 사용하지 않는다

 
Maxim Kuznetsov :

if (response == 0) {

   Print("Что-то пошло не так");

  // потом уже добавите диагностику из WinAPI

   return false;

}

정상적인 반환 전에 결과도 인쇄하십시오.

Print(" всё хорошо, результат:" toStr);

return toStr;

예를 들어 1분에 한 번 타이머의 모든 코드를 실행합니다. 확실히 금지되지 않고 항상 다르지만 예측 가능한 시간을 제공하여 확인할 수 있는 리소스에 대해 교육하십시오.

----
텔레파시로 - 문제가 정말로 있어야 한다면,
초기화를 잘못했거나(InternetOpenW용으로 WinSOCK을 초기화해야 하는지 여부가 기억나지 않음)
또는 일부 리소스가 해제되지 않습니다.

모든 것을 추가했습니다! 인쇄에 아무것도 표시되지 않습니다!!

 

차트에 표시하지 않고 데이터 창 에 변수를 표시하는 방법은 무엇입니까?

어떤 이유로 문서에서 찾을 수 없습니다.

 
psyman :

차트에 표시하지 않고 데이터 창 에 변수를 표시하는 방법은 무엇입니까?

어떤 이유로 문서에서 찾을 수 없습니다.

디스플레이 색상을 clrNONE으로 설정합니다.