매번 그런 것은 아니며 다른 이벤트에 대한 대안이 있습니다(이미 논의됨). 여기서 제가 어떻게 했는지 예를 들어주세요. ) 전문가 고문은이 이벤트가 필요하지만 지표는 필요하지 않은 조건에서. 그렇게하면 더 명확해질 것입니다.
추신 정정. 제가 실수했습니다. )) 귀하의 변형이 더 이상 정확하지 않습니다. 전혀 맞지 않습니다. 따라서 위의 조건을 기반으로 예제를 제공하는 것이 좋습니다.
인디케이터에 이 이벤트가 필요하지 않은 경우 단순히 처리하지 않습니다. 또한 전문가 어드바이저는 필요하지 않은 이벤트를 비활성화해서는 안됩니다. 이벤트를 켤 수는 있지만 끌 수는 없습니다. 어떤 이벤트가 그의 창을 통과하고 누가 이벤트를 필요로 하는지는 그가 알 바가 아니기 때문입니다.
인디케이터에 이 이벤트가 필요하지 않은 경우 단순히 처리하지 않습니다. 또한 전문가 어드바이저는 필요하지 않은 이벤트를 비활성화해서는 안 됩니다. 전원을 켤 수는 있지만 끌 수는 없습니다. 어떤 이벤트가 그의 창을 통과하고 누가 이벤트를 필요로 하는지는 그가 알 바가 아니기 때문입니다.
요점은 이 이벤트는 처리되지 않을 수 있다는 것입니다(그냥 잊어버리세요). 그러나 이것이 특정 순간에 필요하지 않은 것들로 OnChartEvent() 함수의 이벤트 대기열이 채워지지 않는다는 것을 의미하지는 않습니다.
그리고 이것은 분당 수천 개의 불필요한 이벤트를 의미합니다. 차트에 여러 개의 프로그램이 있는 경우? 논쟁의 여지가 없나요?
이벤트가 활성화되어 있는지 매초마다 확인하고 현재 활성화되어 있지 않지만 필요한 경우 활성화하면 리소스 낭비를 훨씬 줄일 수 있습니다. 그것도 마음에 들지 않으시나요? 그렇다면 원하는 대로 하세요.
더 이상 논쟁할 게 없네요. ) 제 마음을 바꿀 만한 이야기를 듣지 못했으니 제 의견을 고수하겠습니다.
좋아요. 그렇다면 이 이벤트를 가능하게 한 프로그램을 비활성화할 필요가 없다고 생각하는 분들께 질문이 있습니다.
왜요? )
즉:
1. 왜 필요하지 않은 것을 남겨두는가(분당 수천 개의 이벤트)?
2. (다른 공식으로) 더 적은 리소스를 사용할 수 있는데 왜 더 많은 리소스를 사용해야 하나요?
"이벤트가 필요하지 않으면 처리하지 마세요"와 같은 옵션은 개인적으로 전혀 마음에 들지 않습니다. 하나는 비활성화할 수 없고, 다른 하나는 비활성화할 수 없으며, 그로부터 무엇을 얻을 수 있을까요?
2. (다른 공식으로) 더 적은 리소스를 사용할 수 있는데 왜 더 많은 리소스를 사용해야 하나요?
"이벤트가 필요하지 않으면 처리하지 않는다"와 같은 옵션은 개인적으로 전혀 마음에 들지 않습니다. 하나는 비활성화할 수 없고, 다른 하나는 비활성화할 수 없으며, 그로부터 무엇을 얻을 수 있을까요?
완전히 통제된 코드를 얻을 수 있습니다.
성능을 강조하시는데, 이 기능을 활성화하면 성능이 그렇게 많이 떨어지나요? 이 질문에 답하기 위해 특별히 이 이벤트를 테스트하는 간단한 전문가 조언을 작성했습니다. 다양한 조합을 테스트한 결과 다음 표를 얻었습니다:
모드
CPU 부하
EVENT_MOVE_MOUSE가 활성화되면 Expert Advisor에서 이 이벤트 처리가 활성화됩니다.
9%
EVENT_MOVE_MOUSE가 활성화되면 Expert Advisor에서 이 이벤트 처리가 비활성화됩니다.
6%
EVENT_MOVE_MOUSE가 꺼져 있으면 Expert Advisor에서 이 이벤트 처리가 꺼져 있습니다.
5-6%
전문가 조언자가 꺼져 있습니다. 차트가 닫힙니다. 메타트레이더 창 위로 마우스를 이동하면 됩니다.
5-6%
보시다시피 실제 부하는 이 이벤트의 실제 처리가 일어날 때만 증가합니다. CPU 부하로 판단할 때 메타트레이더는 이 이벤트 구독 활성화 여부에 관계없이 마우스 위치를 추적한다는 점에 주목할 필요가 있습니다. 일반적으로 마우스 추적은 어쨌든 수행되기 때문에 가상의 리소스를 절약하는 것은 무의미하다는 것이 밝혀졌습니다.
전문가 조언자 코드를 테스트합니다:
//+------------------------------------------------------------------+//|Test.mq5 |//| Copyright 2013, MetaQuotes Software Corp.//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2013, MetaQuotes Software Corp."#property link"http://www.mql5.com"#property version"1.00"//+------------------------------------------------------------------+//| 전문가 초기화 기능|//+------------------------------------------------------------------+intOnInit()
{
//---ObjectCreate(0, "Edit", OBJ_EDIT, 0, 0, 0);
ObjectSetInteger(0, "Edit", OBJPROP_XSIZE, 400);
//적합하다고 판단되는 경우 이벤트 켜기 및 끄기ChartSetInteger(0, CHART_EVENT_MOUSE_MOVE, false);
//---return(INIT_SUCCEEDED);
}
voidOnChartEvent(constint id,
constlong &lparam,
constdouble &dparam,
conststring &sparam)
{
//수신 이벤트를 처리할 필요가 없는 경우 블록을 주석 처리합니다.if(id == CHARTEVENT_MOUSE_MOVE)
{
string label = (string)lparam + " " + (string)dparam + " " + sparam;
//printf(sparam);ObjectSetString(0, "Edit", OBJPROP_TEXT, label);
ChartRedraw(0);
}
}
В этой статье проведен краткий обзор языка MQL5, приведен пример написания советника и индикатора. Данная статья ориентирована как на читателей, знакомых с программированием на языке MQL4, так и на тех, кто только начинает знакомство с программированием торговых систем и индикаторов.
기사의 저자 여러분, 당신은 당신이 싸우고 "초보자"를 가르치려고하는 제품의 내부 모순을 설명하지 않는 것이 헛된 것입니다.
따라서 저자는 자신의 지표의 올바른 작업을 뒤엎을 수있는 미끄러운 순간을 보여주었습니다. 좋아, 이제 "초보자"에게 분명합니다:
...
자기 중요성에 대한 감각을 정당화하기 위해 20 가지 규칙을 더 생각해 낼 수 있으며, 그러면 확실히 자신을 혼란스럽게하고 초보자를 "도울"것입니다. 이 경우 모순과 오해는 당신이 관찰했습니다. )
C-4:
완전히 제어되는 코드를 얻을 수 있습니다.
...
당신이 그것을 제어 할 때 제어됩니다. 이 경우 모든 것을 확인하지 않고, 즉 현재 필요하지 않고 매우 자주 재현 할 수있는 이벤트를 남겨 둘 것을 제안합니다. 간단한 예에서는 눈에 띄지 않을 수 있습니다. 아마도 더 복잡한 프로그램에서 필요하지 않은 모든 것을 비활성화해야 할 필요성을 알게 될 것입니다.
그렇지 않은 경우 표시기 하위 창에서 제어에 대한 기사에 대해 계속 논의 해 보겠습니다. 따라서 표시기에서 편리한 메뉴를 만드는 방법에 대한 대량 솔루션 (또는 아이디어)을 제공합니다. 좋아요, 기사의 목적은 매우 가치가 있습니다! 그러나 "초보자"프로그래머가이 모든 무기고를 어떻게 사용할 수 있습니까? 사용자 지정 함수를 어디에 배치할까요? 예를 들어 시연해 보겠습니다. 동시에 5 개의 버튼을 사용하기 위해 코드에서 수정해야하는 사항을 설명 하시겠습니까? 초보자의 질문이라고 생각하세요.
매번 그런 것은 아니며 다른 이벤트에 대한 대안이 있습니다(이미 논의됨). 여기서 제가 어떻게 했는지 예를 들어주세요. ) 전문가 고문은이 이벤트가 필요하지만 지표는 필요하지 않은 조건에서. 그렇게하면 더 명확해질 것입니다.
추신 정정. 제가 실수했습니다. )) 귀하의 변형이 더 이상 정확하지 않습니다. 전혀 맞지 않습니다. 따라서 위의 조건을 기반으로 예제를 제공하는 것이 좋습니다.
인디케이터에 이 이벤트가 필요하지 않은 경우 단순히 처리하지 않습니다. 또한 전문가 어드바이저는 필요하지 않은 이벤트를 비활성화해서는 안됩니다. 이벤트를 켤 수는 있지만 끌 수는 없습니다. 어떤 이벤트가 그의 창을 통과하고 누가 이벤트를 필요로 하는지는 그가 알 바가 아니기 때문입니다.
인디케이터에 이 이벤트가 필요하지 않은 경우 단순히 처리하지 않습니다. 또한 전문가 어드바이저는 필요하지 않은 이벤트를 비활성화해서는 안 됩니다. 전원을 켤 수는 있지만 끌 수는 없습니다. 어떤 이벤트가 그의 창을 통과하고 누가 이벤트를 필요로 하는지는 그가 알 바가 아니기 때문입니다.
요점은 이 이벤트는 처리되지 않을 수 있다는 것입니다(그냥 잊어버리세요). 그러나 이것이 특정 순간에 필요하지 않은 것들로 OnChartEvent() 함수의 이벤트 대기열이 채워지지 않는다는 것을 의미하지는 않습니다.
그리고 이것은 분당 수천 개의 불필요한 이벤트를 의미합니다. 차트에 여러 개의 프로그램이 있는 경우? 논쟁의 여지가 없나요?
이벤트가 활성화되어 있는지 매초마다 확인하고 현재 활성화되어 있지 않지만 필요한 경우 활성화하면 리소스 낭비를 훨씬 줄일 수 있습니다. 그것도 마음에 들지 않으시나요? 그렇다면 원하는 대로 하세요.
더 이상 논쟁할 게 없네요. ) 제 마음을 바꿀 만한 이야기를 듣지 못했으니 제 의견을 고수하겠습니다.
좋아요. 그렇다면 이 이벤트를 가능하게 한 프로그램을 비활성화할 필요가 없다고 생각하는 분들께 질문이 있습니다.
왜요? )
즉:
1. 왜 필요하지 않은 것을 남겨두는가(분당 수천 개의 이벤트)?
2. (다른 공식으로) 더 적은 리소스를 사용할 수 있는데 왜 더 많은 리소스를 사용해야 하나요?
"이벤트가 필요하지 않으면 처리하지 마세요"와 같은 옵션은 개인적으로 전혀 마음에 들지 않습니다. 하나는 비활성화할 수 없고, 다른 하나는 비활성화할 수 없으며, 그로부터 무엇을 얻을 수 있을까요?
기사의 저자 여러분, 당신은 당신이 싸우고 "초보자"를 가르치려고하는 제품의 내부 모순을 설명하지 않는 것이 헛된 것입니다.
따라서 저자는 자신의 지표의 올바른 작업을 뒤엎을 수있는 미끄러운 순간을 보여주었습니다. 좋아, 이제 "초보자"에게 분명합니다:
1. 왜 필요하지 않은 것을 남겨두는가 (분당 수천 개의 이벤트) ?
2. (다른 공식으로) 더 적은 리소스를 사용할 수 있는데 왜 더 많은 리소스를 사용해야 하나요?
"이벤트가 필요하지 않으면 처리하지 않는다"와 같은 옵션은 개인적으로 전혀 마음에 들지 않습니다. 하나는 비활성화할 수 없고, 다른 하나는 비활성화할 수 없으며, 그로부터 무엇을 얻을 수 있을까요?
완전히 통제된 코드를 얻을 수 있습니다.
성능을 강조하시는데, 이 기능을 활성화하면 성능이 그렇게 많이 떨어지나요? 이 질문에 답하기 위해 특별히 이 이벤트를 테스트하는 간단한 전문가 조언을 작성했습니다. 다양한 조합을 테스트한 결과 다음 표를 얻었습니다:
보시다시피 실제 부하는 이 이벤트의 실제 처리가 일어날 때만 증가합니다. CPU 부하로 판단할 때 메타트레이더는 이 이벤트 구독 활성화 여부에 관계없이 마우스 위치를 추적한다는 점에 주목할 필요가 있습니다. 일반적으로 마우스 추적은 어쨌든 수행되기 때문에 가상의 리소스를 절약하는 것은 무의미하다는 것이 밝혀졌습니다.
전문가 조언자 코드를 테스트합니다:
1. 스택에서 이벤트가 누락되는 경우를 항상 고려해야 합니다. 이벤트가 누락되는 경우 중요한 일이 발생할 수 있다면 매우 나쁜 일입니다.
2. 자신에게 맞게 차트를 커스터마이징하는 것은 좋지 않습니다. 마술 없이 자동매매기를 거래하는 것과 마찬가지입니다.
기사의 저자 여러분, 당신은 당신이 싸우고 "초보자"를 가르치려고하는 제품의 내부 모순을 설명하지 않는 것이 헛된 것입니다.
따라서 저자는 자신의 지표의 올바른 작업을 뒤엎을 수있는 미끄러운 순간을 보여주었습니다. 좋아, 이제 "초보자"에게 분명합니다:
...
자기 중요성에 대한 감각을 정당화하기 위해 20 가지 규칙을 더 생각해 낼 수 있으며, 그러면 확실히 자신을 혼란스럽게하고 초보자를 "도울"것입니다. 이 경우 모순과 오해는 당신이 관찰했습니다. )
완전히 제어되는 코드를 얻을 수 있습니다.
...
당신이 그것을 제어 할 때 제어됩니다. 이 경우 모든 것을 확인하지 않고, 즉 현재 필요하지 않고 매우 자주 재현 할 수있는 이벤트를 남겨 둘 것을 제안합니다. 간단한 예에서는 눈에 띄지 않을 수 있습니다. 아마도 더 복잡한 프로그램에서 필요하지 않은 모든 것을 비활성화해야 할 필요성을 알게 될 것입니다.
1. 스택에서 이벤트가 누락되는 경우를 항상 고려해야 합니다. 이벤트가 누락되는 경우 중요한 일이 발생할 수 있다면 매우 나쁜 일입니다.
...
tol64:
실례합니다. 혹시 제가 다른 튜토리얼이나 레시피를 작성하는 데 방해가 되나요?
그렇지 않은 경우 표시기 하위 창에서 제어에 대한 기사에 대해 계속 논의 해 보겠습니다. 따라서 표시기에서 편리한 메뉴를 만드는 방법에 대한 대량 솔루션 (또는 아이디어)을 제공합니다. 좋아요, 기사의 목적은 매우 가치가 있습니다! 그러나 "초보자"프로그래머가이 모든 무기고를 어떻게 사용할 수 있습니까? 사용자 지정 함수를 어디에 배치할까요? 예를 들어 시연해 보겠습니다. 동시에 5 개의 버튼을 사용하기 위해 코드에서 수정해야하는 사항을 설명 하시겠습니까? 초보자의 질문이라고 생각하세요.
이벤트 대기열이 넘칠 때처럼요?