В 5-ой версии языка MQL появилась масса нововведений, в том числе работа с событиями различных типов (события таймера, торговые события, пользовательские и т.д.). Возможность обработки событий позволяет создавать совершенно новый тип программ для автоматического и полуавтоматического трейдинга. В этой статье мы рассмотрим торговые события и напишем для функции OnTrade() код, который будет обрабатывать событие Trade.
할 것이 없다. 현재 틱이 OnTick() 함수에 의해 처리될 때까지 새로 도착한 모든 틱은 건너뜁니다.
실시간으로 포지션에 발생하는 일은 OnTrade() 거래 이벤트 처리 기능을 사용하여 추적할 수 있습니다.
요청의 비동기 실행이 아니라면 모든 것이 괜찮을 것입니다. 그래서 진드기가 도착하면 포지션을 닫았고, 다음 진드기가 도착했을 때 그들은 여전히 목록에 있었고, 그들이 열려 있는지, 열려 있는지 또는 닫혀 있는지 이해하는 방법은 무엇입니까? 거래 이벤트를 처리하시겠습니까? IMHO, 기본 조작이 그렇게 혼란스러워서는 안됩니다..
이상적으로는 포지션을 청산하려고 할 때 "Closing" 또는 "processing" 또는 기타 상태를 얻게 되며, 이를 통해 현재 어떤 종류의 조치가 진행 중인지 확인한 다음 그대로 둘 수 있습니다. 맑은 양심.
그리고 지금 - 많은 역사를 뒤집고 무슨 일이 일어났고 어떻게 일어났는지 이해하십시오. 모든 것이 옳을 것이라는 것은 사실이 아니며 이것은 모든 틱에 있습니다 ..
요청의 비동기 실행이 아니라면 모든 것이 괜찮을 것입니다. 그래서 진드기가 도착하면 포지션을 닫았고, 다음 진드기가 도착했을 때 그들은 여전히 목록에 있었고, 그들이 열려 있는지, 열려 있는지 또는 닫혀 있는지 이해하는 방법은 무엇입니까? 거래 이벤트를 처리하시겠습니까? IMHO, 기본 조작이 그렇게 혼란스러워서는 안됩니다..
이상적으로는 포지션을 청산하려고 할 때 "Closing" 또는 "processing" 또는 기타 상태를 얻게 되며, 이를 통해 현재 어떤 종류의 조치가 진행 중인지 확인한 다음 그대로 둘 수 있습니다. 맑은 양심.
그리고 지금 - 많은 역사를 뒤집고 무슨 일이 일어났고 어떻게 일어났는지 이해하십시오. 모든 것이 옳을 것이라는 것은 사실이 아니며 이것은 모든 틱에 있습니다 ..
요청의 비동기 실행이 아니라면 모든 것이 괜찮을 것입니다. 그래서 진드기가 도착하면 포지션을 닫았고, 다음 진드기가 도착했을 때 그들은 여전히 목록에 있었고, 그들이 열려 있는지, 열려 있는지 또는 닫혀 있는지 이해하는 방법은 무엇입니까? 거래 이벤트를 처리하시겠습니까? IMHO, 기본 조작이 그렇게 혼란스러워서는 안됩니다..
이상적으로는 포지션을 청산하려고 할 때 "Closing" 또는 "processing" 또는 기타 상태를 얻게 되며, 이를 통해 현재 어떤 종류의 조치가 진행 중인지 확인한 다음 그대로 둘 수 있습니다. 맑은 양심.
그리고 지금 - 많은 역사를 뒤집고 무슨 일이 일어났고 어떻게 일어났는지 이해하십시오. 모든 것이 옳을 것이라는 것은 사실이 아니며 이것은 모든 틱에 있습니다 ..
예, 물론 모든 작업을 능숙하게 수행하지 않는 한 이제는 쉽게 수행할 수 있습니다. 개발자는 OnTrade()를 다시 작성하고 거기에 필요한 매개변수를 추가하기로 약속했습니다. 그들이 한다면 처리하기가 훨씬 더 쉬울 것입니다.
아무도 OnTick() 또는 OnTime()에서 그러한 상황을 즉석에서 처리하려고 하지 않습니다. - 거래 작업 의 장소에서 ; 또는 OnTrade()에서 코드에서 직접 제어되지 않는 사용자 작업이나 거래 작업을 포착해야 하는 경우.
mql5 언어로 열린 위치의 상태를 추적할 수 있는 기회가 있습니까? 예를 들어 현재 닫혀 있는 상태입니까?
...그러나 다음 틱이오고 위의 모든 단계가 반복되고 위치가 선택되고 볼륨이 선택되고 ONE MORE 위치가 폐쇄 방향에 배치됩니다.
이것을 피하기 위해 무엇을 할 수 있습니까?
할 것이 없다. 현재 틱이 OnTick() 함수에 의해 처리될 때까지 새로 도착한 모든 틱은 건너뜁니다.
실시간으로 포지션에 발생하는 일은 OnTrade() 거래 이벤트 처리 기능을 사용하여 추적할 수 있습니다.
할 것이 없다. 현재 틱이 OnTick() 함수에 의해 처리될 때까지 새로 도착한 모든 틱은 건너뜁니다.
실시간으로 포지션에 발생하는 일은 OnTrade() 거래 이벤트 처리 기능을 사용하여 추적할 수 있습니다.
요청의 비동기 실행이 아니라면 모든 것이 괜찮을 것입니다. 그래서 진드기가 도착하면 포지션을 닫았고, 다음 진드기가 도착했을 때 그들은 여전히 목록에 있었고, 그들이 열려 있는지, 열려 있는지 또는 닫혀 있는지 이해하는 방법은 무엇입니까? 거래 이벤트를 처리하시겠습니까? IMHO, 기본 조작이 그렇게 혼란스러워서는 안됩니다..
이상적으로는 포지션을 청산하려고 할 때 "Closing" 또는 "processing" 또는 기타 상태를 얻게 되며, 이를 통해 현재 어떤 종류의 조치가 진행 중인지 확인한 다음 그대로 둘 수 있습니다. 맑은 양심.
그리고 지금 - 많은 역사를 뒤집고 무슨 일이 일어났고 어떻게 일어났는지 이해하십시오. 모든 것이 옳을 것이라는 것은 사실이 아니며 이것은 모든 틱에 있습니다 ..
요청의 비동기 실행이 아니라면 모든 것이 괜찮을 것입니다. 그래서 진드기가 도착하면 포지션을 닫았고, 다음 진드기가 도착했을 때 그들은 여전히 목록에 있었고, 그들이 열려 있는지, 열려 있는지 또는 닫혀 있는지 이해하는 방법은 무엇입니까? 거래 이벤트를 처리하시겠습니까? IMHO, 기본 조작이 그렇게 혼란스러워서는 안됩니다..
이상적으로는 포지션을 청산하려고 할 때 "Closing" 또는 "processing" 또는 기타 상태를 얻게 되며, 이를 통해 현재 어떤 종류의 조치가 진행 중인지 확인한 다음 그대로 둘 수 있습니다. 맑은 양심.
그리고 지금 - 많은 역사를 뒤집고 무슨 일이 일어났고 어떻게 일어났는지 이해하십시오. 모든 것이 옳을 것이라는 것은 사실이 아니며 이것은 모든 틱에 있습니다 ..
그리고 무엇을 .. 누군가 NewBar가 이벤트가 아니라고 말할 것입니다 ???))))))))))
OnNews - 뉴스가 도착했습니다 - 봇이 뉴스에 대해 알게 될 것입니다.
1. NewBar - 독립적으로 구현 가능한 이벤트. 아마도 이것이 조언 될 것입니다. 나는 어떻게든 Connect에 대해 언급했는데, 대답은 간단했습니다. 직접 구현해야 합니다.
문제는 없습니다. 구현했고 너무 마음에 들어서 이제 타이머를 통해 필요한 거의 모든 것을 추적합니다(이미 약 30개의 이벤트가 있음). 내가 끝나면 사용자는 내가 관심 있는 매개변수를 변경할 수 없으므로 전문가는 이에 대해 알 수 없습니다.
2. OnNews - 아이디어는 일반적으로 이해할 수 있으며 참여할 수 있습니다. 개발자는 아마도 News.wav의 존재를 나타낼 것입니다.
경제 뉴스 캘린더 및 기타 FA와 함께 작업할 가능성이 있기 때문에 오랫동안 개발자들이 언어의 기능 을 확장하도록 하려고 노력했지만. 그들이 모든 것을 올바르게 할 것이라고 생각합니까? 뭔가 의심스럽습니다.
그래서 나는 희망이 아직 살아 있기 때문에 이것에 대해 한동안 신청서를 보냈습니다. 전문가가 스스로 작업을 수행하면 좋을 것입니다 ...
요청의 비동기 실행이 아니라면 모든 것이 괜찮을 것입니다. 그래서 진드기가 도착하면 포지션을 닫았고, 다음 진드기가 도착했을 때 그들은 여전히 목록에 있었고, 그들이 열려 있는지, 열려 있는지 또는 닫혀 있는지 이해하는 방법은 무엇입니까? 거래 이벤트를 처리하시겠습니까? IMHO, 기본 조작이 그렇게 혼란스러워서는 안됩니다..
이상적으로는 포지션을 청산하려고 할 때 "Closing" 또는 "processing" 또는 기타 상태를 얻게 되며, 이를 통해 현재 어떤 종류의 조치가 진행 중인지 확인한 다음 그대로 둘 수 있습니다. 맑은 양심.
그리고 지금 - 많은 역사를 뒤집고 무슨 일이 일어났고 어떻게 일어났는지 이해하십시오. 모든 것이 옳을 것이라는 것은 사실이 아니며 이것은 모든 틱에 있습니다 ..
예, 물론 모든 작업을 능숙하게 수행하지 않는 한 이제는 쉽게 수행할 수 있습니다. 개발자는 OnTrade()를 다시 작성하고 거기에 필요한 매개변수를 추가하기로 약속했습니다. 그들이 한다면 처리하기가 훨씬 더 쉬울 것입니다.
아무도 OnTick() 또는 OnTime()에서 그러한 상황을 즉석에서 처리하려고 하지 않습니다. - 거래 작업 의 장소에서 ; 또는 OnTrade()에서 코드에서 직접 제어되지 않는 사용자 작업이나 거래 작업을 포착해야 하는 경우.
1. NewBar - 독립적으로 구현 가능한 이벤트. 아마도 이것이 조언 될 것입니다. 나는 어떻게든 Connect에 대해 언급했는데, 대답은 간단했습니다. 직접 구현해야 합니다.
...OnNewBar를 보는 방법을 조금 설명하지 않았습니다..))
OnNewBar(ulong Param), 여기서 Param - 새 막대가 있는 시간대 위치에서 비트 단위로 1로 채워짐.. - 모든 차트가 막대 수로 동시에 업데이트되는 것은 아닙니다.
예를 들어 ..
...00001 - 1분만 업데이트되었습니다.
...00111 - 1분만에 2,3이 업데이트 되었습니다.. 등등..
순전히 아이디어지만.. 유용할 것 같지만..?;)
OnNewBar가 어떻게 보이는지 조금 설명하지 않았습니다..))
OnNewBar(ulong Param), 여기서 Param - 새 막대가 있는 시간대 위치에서 비트 단위로 1로 채워짐.. - 모든 차트가 막대 수로 동시에 업데이트되는 것은 아닙니다.
예를 들어 ..
...00001 - 1분만 업데이트되었습니다.
...00111 - 1분만에 2,3이 업데이트 되었습니다.. 등등..
순전히 아이디어지만.. 쓸만할 것 같지만..?;)
매개변수에 대해 생각해야 합니다. 이런 식으로 할 가치가 있습니까( ENUM_TIMEFRAMES 형식으로 TF를 밀어 넣는 것이 더 쉬울 수도 있습니다)?
적어도 나는 이런 것을 휘젓고 싶었지만 거절했다 ...
추신
나는 지금 열심히 일하고 있는 Chart 클래스에서 OnNewBar를 자극하고 싶었다는 것을 잊어버렸습니다.
왜 표준 CChart 가 나를 기쁘게 하지 않았는지 묻지 마세요... :)
새 막대의 모양을 추적해야 하는 사람은 내 코드를 참조하십시오. 유용할 수 있습니다. 다른 옵션을 시도했습니다. 이 방법이 가장 안정적입니다.
https://www.mql5.com/ru/code/107
새 막대의 모양을 추적해야 하는 사람은 내 코드를 참조하십시오. 유용할 수 있습니다. 다른 옵션을 시도했습니다. 이 방법이 가장 안정적입니다.
https://www.mql5.com/ru/code/107
마침표 SERIES_LASTBAR_DATE로 마지막 막대의 여는 시간을 기억하고 비교하는 것이 잘못된 것은 무엇입니까? 귀하의 버전보다 훨씬 간단하고 표시기가 필요하지 않습니다.
또한 다중 통화 Expert Advisor의 경우 각 기호에 대해 새 막대를 정의해야 하므로 모든 기호에 대한 표시기를 초기화해야 합니다.
새 막대의 모양을 추적해야 하는 사람은 내 코드를 참조하십시오. 유용할 수 있습니다. 다른 옵션을 시도했습니다. 이 방법이 가장 안정적입니다.
https://www.mql5.com/ru/code/107
그리고 다시 - code .. code .. Code is good .. 그러나 그것은 또한 - tactics, cyclics .. ;)
글쎄요, 차트에 새 막대 생성에 대한 메시지가 표시되지 않습니까? 인생 못믿어..
그걸로 이벤트를 만드는게 문제인가요? 그리고 적어도 미리 정해진 변수??
그리고 일반적으로 - 코드의 산을 감는 것보다 이벤트를 처리하는 것이 더 쉽습니다 .. 게다가 - 오류가 있는 경우(오류가 없는 프로그램 - 발생하지 마십시오!!!))))