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

 
Vladimir Karputov :

OnInit()에서 표시기 핸들을 한 번 생성하기를 바랍니다.

계산 깊이 - 모두 지표 자체에 따라 다릅니다. 희귀 지표는 깊이를 강제로 제한합니다. 일반적으로 모든 사람이 전체 역사를 계산합니다. 따라서 이 옵션이 필요할 수 있습니다. 표시기에서 깊이를 담당하는 변수를 입력한 다음 iCustom을 통해 Expert Advisor에서 이 매개변수를 전달합니다.

1. 예, 좋은 방법으로 이것이 인터넷에서 한 번 수행된다는 것을 이해합니다. 그러나 문제는 지표의 입력 매개변수가 변경될 수 있다는 것입니다. 예를 들어, 스펙트럼 분석에서 공진 주파수가 계산되고 계산 결과는 사용된 MA의 주기입니다. 그리고 새 차원에 대한 MA 데이터를 요청하면 이것은 새 핸들입니다. 실제로 주파수는 모든 막대에서 변경되지 않으므로 동일한 MA 핸들이 계산에 꽤 오랜 시간(~분) 동안 사용됩니다. 그러나 핸들이 바뀌는 순간도 마찬가지입니다. 그런 다음 여러 핸들을 사용하거나 하나의 핸들을 사용하지만 주기적으로 다시 계산해야 합니다. 여기에 저축이 발생합니다.

2. iCustom을 마스터했습니다. 그러나 지표 자체에서 계산 깊이를 제한하는 방법은 무엇입니까? 기술적으로, 방법이 없습니다. 분명히, 당신은 그것들의 커스텀 클론을 많이 만들어야 할 것입니다. 지표. 물론 역겹지만 효과가 있어야 합니다. 조언 해주셔서 감사합니다. 좋은 생각. 고맙습니다.

 
User_mt5 :

1. 예, 좋은 방법으로 이것이 인터넷에서 한 번 수행된다는 것을 이해합니다. 그러나 문제는 지표의 입력 매개변수가 변경될 수 있다는 것입니다.

개발자는 효율성 손실 없이 MQL4 스타일의 지표로 작업할 수 있는 SB를 작성할 수 있습니다. 저것들. 모든 캐시와 핸들은 SB에 숨겨져 있습니다.

 
User_mt5 :

1. 예, 좋은 방법으로 이것이 인터넷에서 한 번 수행된다는 것을 이해합니다. 그러나 문제는 지표의 입력 매개변수가 변경될 수 있다는 것입니다. 예를 들어, 스펙트럼 분석에서 공진 주파수가 계산되고 계산 결과는 사용된 MA의 주기입니다. 그리고 새 차원에 대한 MA 데이터를 요청하면 이것은 새 핸들입니다. 실제로 주파수는 모든 막대에서 변경되지 않으므로 동일한 MA 핸들이 계산에 꽤 오랜 시간(~분) 동안 사용됩니다. 그러나 핸들이 바뀌는 순간도 마찬가지입니다. 그런 다음 여러 핸들을 사용하거나 하나의 핸들을 사용하지만 주기적으로 다시 계산해야 합니다. 여기에 저축이 발생합니다.

2. iCustom을 마스터했습니다. 그러나 지표 자체에서 계산 깊이를 제한하는 방법은 무엇입니까? 기술적으로, 방법이 없습니다. 분명히, 당신은 그것들의 커스텀 클론을 많이 만들어야 할 것입니다. 지표. 물론 역겹지만 효과가 있어야 합니다. 조언 해주셔서 감사합니다. 좋은 생각. 고맙습니다.


1. 이 경우에는 사용하지 않는 핸들을 없애고 새 핸들을 만드는 것이 더 나을 것입니다.

2. 기본 제공 표시기의 복사본을 만들고 다른 이름으로(예: 이름에 "기록 깊이" 추가) 새 매개변수 InpDepthHistory를 입력합니다. 즉, 새로운 사용자 지정 지표를 작성해야 합니다.

 
User_mt5 :

1. 예, 좋은 방법으로 이것이 인터넷에서 한 번 수행된다는 것을 이해합니다. 그러나 문제는 지표의 입력 매개변수가 변경될 수 있다는 것입니다. 예를 들어, 스펙트럼 분석에서 공진 주파수가 계산되고 계산 결과는 사용된 MA의 주기입니다. 그리고 새 차원에 대한 MA 데이터를 요청하면 이것은 새 핸들입니다. 실제로 주파수는 모든 막대에서 변경되지 않으므로 동일한 MA 핸들이 계산에 꽤 오랜 시간(~분) 동안 사용됩니다. 그러나 핸들이 바뀌는 순간도 마찬가지입니다. 그런 다음 여러 핸들을 사용하거나 하나의 핸들을 사용하지만 주기적으로 다시 계산해야 합니다. 여기에 저축이 발생합니다.

2. iCustom을 마스터했습니다. 그러나 지표 자체에서 계산 깊이를 제한하는 방법은 무엇입니까? 기술적으로, 방법이 없습니다. 분명히, 당신은 그것들의 커스텀 클론을 많이 만들어야 할 것입니다. 지표. 물론 역겹지만 효과가 있어야 합니다. 조언 해주셔서 감사합니다. 좋은 생각. 고맙습니다.

내가 이해하는 것처럼 mql4에서와 같이 iCustom()을 사용하여 1개의 값만 얻으려고 하지만 mql4에서 표시기가 첫 번째 호출에서 전체 기록 깊이에 대해 다시 계산되었다는 점은 고려하지 않습니다. 같은 방식으로 하나 이상의 매개변수를 변경할 때 다시 계산됩니다.

따라서 결론: 귀찮게 할 필요가 없습니다. "구식" 표시기가 더 이상 필요하지 않은 경우 간단히 삭제하고 다른 매개변수로 표시기 핸들을 가져올 수 있습니다.

 
fxsaber :

개발자는 효율성 손실 없이 MQL4 스타일의 지표로 작업할 수 있는 SB를 작성할 수 있습니다. 저것들. 모든 캐시와 핸들은 SB에 숨겨져 있습니다.

죄송합니다. 이해하지 못했습니다. 여기에서 개발자라는 단어는 MT를 만든 사람들입니까, 아니면 제가 죄 많은 응용 프로그램입니까? 그리고 SB는..?

 
Vladimir Karputov :

1. 이 경우에는 사용하지 않는 핸들을 없애고 새 핸들을 만드는 것이 더 나을 것입니다.

2. 기본 제공 표시기의 복사본을 만들고 다른 이름으로(예: 이름에 "기록 깊이" 추가) 새 매개변수 InpDepthHistory를 입력합니다. 즉, 새로운 사용자 지정 지표를 작성해야 합니다.

1. 네. 지금까지 일부 핸들의 3차원 배열이 있습니다. 그러나 이제 분명히 모든 것을 다시 만들 것입니다.

2. 네. 다행히 거의 모든 기술 코드가 있습니다. 지표. 더욱이 그들 자신의 것입니다.

고맙습니다.

 
User_mt5 :

죄송합니다. 이해하지 못했습니다. 여기에서 개발자라는 단어는 MT를 만든 사람들입니까, 아니면 제가 죄 많은 응용 프로그램입니까? 그리고 SB는..?

MetaQuotes는 원하는 경우 이러한 표준 라이브러리 를 생성할 수 있습니다. 가장 큰 질문은 그것이 필요합니까?

 
Alexey Viktorov :

내가 이해하는 것처럼 mql4에서와 같이 iCustom()을 사용하여 1개의 값만 얻으려고 하지만 mql4에서 표시기가 첫 번째 호출에서 전체 기록 깊이에 대해 다시 계산되었다는 점은 고려하지 않습니다. 같은 방식으로 하나 이상의 매개변수를 변경할 때 다시 계산됩니다.

따라서 결론: 귀찮게 할 필요가 없습니다. "구식" 표시기가 더 이상 필요하지 않은 경우 간단히 삭제하고 다른 매개변수로 표시기 핸들을 가져올 수 있습니다.

나는 무언가를 원한다, 어쩌면 내가 원할 수도 있다. 하지만 지금은 그러고 싶지 않습니다. 네가 옳아. 오래된 지표가 필요하지 않으면 바퀴벌레와 같은 파충류를 부수십시오. :)

좋은 솔루션은 기술적 복제의 깊이를 제한하는 것입니다. 그러면 리소스와 시간이 절약됩니다. 자, 이제 내가 할게요.

고맙습니다.

 
fxsaber :

MetaQuotes는 원하는 경우 이러한 표준 라이브러리 를 생성할 수 있습니다. 가장 큰 질문은 그것이 필요합니까?

이것은 미래 세대를 위한 것입니다. 나는 도서관에서 몇 가지 예를 보았다. 주석 처리되지 않은 수천 줄의 코드. 방법은 모르겠지만 방법을 모르겠습니다. 아이디어에 감사드립니다. 하지만 제 경우에는 받아들일 수 없습니다.
 
User_mt5 :
이것은 미래 세대를 위한 것입니다. 나는 도서관에서 몇 가지 예를 보았다. 주석 처리되지 않은 수천 줄의 코드. 방법은 모르겠지만 방법을 모르겠습니다. 아이디어에 감사드립니다. 하지만 제 경우에는 받아들일 수 없습니다.

이것은 이미 MT5에서 작동하고 있습니다.

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

mql5 언어의 특징, 미묘함 및 작업 방법

fxsaber , 2018.01.09 10:20

MQL4 지지자의 경우 익숙한 스타일로 MQL5의 TF를 사용하는 고대 방식이 있습니다.

아마도 누군가는 틱 기록으로 작업할 때 MQL4 접근 방식이 필요할 것입니다.

 if (Tick[ 0 ].bid > Tick[ 100 ].bid) // сравниваем текущий и исторический тики
   Print ( "Hello World!" );

if ( High [ 0 ] > Close [ 100 ]) // https://www.mql5.com/ru/forum/42122/page24#comment_2904023
   Print ( "Hello World!" );

기술적으로, 지표로 동일한 ONCE를 수행하고(효율성 손실 없이) 솔루션을 안전보장이사회에 배치하는 것을 막는 것은 없습니다.

사유: