OnTradeTransaction 기능에 대한 질문 - 페이지 4

 
Mikalas :

예, 이것은 거래소에 주방이 없고(커미션만) FOREX에는 수백만 명의 MMM 추종자가 있기 때문입니다.

100달러가 있을 수 있지만 여러분! 엄청난 돈, 계산할 것이 있습니다! :)

나는 MetaQuotes를 이해하지 못한다)

외환 키친의 경우 우수한 MT4 터미널이 있습니다.

많은 외환 키친은 MT5를 통한 액세스를 제공하지 않으며 필요하지 않습니다.

거래소와 가까운 터미널을 만드는 것이 그렇게 오랜 세월 동안 정말 불가능합니까?

고품질 터미널이 있을 것입니다. MT5 서비스를 제공하고자 하는 많은 고객이 있을 것입니다.

 
Serj_Che :

나는 MetaQuotes를 이해하지 못한다)

외환 키친의 경우 우수한 MT4 터미널이 있습니다.

많은 외환 키친은 MT5를 통한 액세스를 제공하지 않으며 필요하지 않습니다.

거래소와 가까운 터미널을 만드는 것이 그렇게 오랜 세월 동안 정말 불가능합니까?

고품질 터미널이 있을 것입니다. MT5 서비스를 제공하고자 하는 많은 고객이 있을 것입니다.

그것은 MQ에 관한 것이 아니라 브로커에 관한 것입니다.

클라이언트가 거래 - 더 많은 거래 - 더 많은 수수료를 만드는 것은 브로커에게 유리합니다.

로봇은 "정확한 거래"만 하고 "손"으로 주문하는 사람은 매우

종종 실수 (그 자신이이 "갈퀴"를 두 번 이상 밟음)가 잘못된 방향으로 명령을 내렸습니다.

명중, 맹세, 손실로 마감, 다시 이기고 싶다면 다시 잘못 설치했습니다.

그리고 브로커와 거래소에서 커미션을 받았습니다 :)

따라서 교환, 특히 브로커 QUIK의 경우 - "어머니".

 
Mikalas :

바실리, 답이 있을까?

나는 아니라고 생각한다.

내가이 겄어?

저녁에 답변드리겠습니다. 이제 방법이 없습니다.
 
C-4 :

복잡하지 마십시오. FORTS에서 거래하기 위해 비동기를 사용할 필요가 없습니다. 시작하려면 이 기사 , 3장: "비동기 작업의 기본"을 확인하십시오. 많지 않고 아주 기본적인 것이 있지만 학습을 시작하기에 충분합니다. 여기에 설명된 코드는 100% 비동기식이지만 OnTradeTransaction 및 기타 이벤트를 수신하지 않고 동기식 모드에서 작동하는 것을 막지는 않습니다.

솔루션은 작업에서 나와야 합니다. MetaTrader 5에서는 한 번에 하나의 활성 포지션만 있으므로 계속 주시하십시오. 주문 내역에 들어갈 필요가 없습니다. 주문 내역이 여전히 필요하면 작업을 명확히 해야 합니다.

아니, Vasily, 당신은 내 목표를 제대로 이해하지 못했습니다. 저는 아직 FORTS에 대해 글을 작성하거나 거래하지 않을 예정이며, 방금 mql5를 배우기 시작했습니다. 나는 이 글을 더 일찍 읽기 시작했다. 하지만 2페이지도 못 읽고 포기했습니다. NT 자체는 필요 없다고 생각합니다. 그러나 OrderSend와 OrderSendAsync의 차이점에 대한 시각적 설명은 도움이 됩니다. 일반적으로 나는 그렇게 가정했다.

비동기식 주문을 버리고 계정에서 일어나는 일을 추적하기 위해 여전히 OnTradeTransaction을 사용한다면 EA의 성능이 향상되지 않을까요?

각 틱에 대해 일종의 확인을 수행하는 것과 계정에 약간의 변경 사항이 있는 경우에만 확인을 수행하는 것은 완전히 다른 것입니다. 내가 잘못? 연기가 활성화되었으며 이에 대한 정보가 있습니다. 포지션이 마감되었습니다. 마감된 결과를 분석할 수 있습니다. 포지션을 개설하고 청산할 때까지 전체 시간 동안 몇 가지 확인만 하는 것으로 나타났습니다. 이와 대조적으로 모든 틱을 확인합니다...

또 다른 질문이 발생합니다. 포지션 이익을 결정하기 위해 PositionGetDouble( POSITION_PROFIT) 함수가 있고 닫힌 거래의 이익을 결정하기 위해 이 거래에서 먼저 가져와야 하는 많은 매개변수가 있는 OrderCalcProfit()만 있습니다. 아니면 아직 mql5를 너무 많이 마스터하지 않아서 올바른 솔루션을 찾을 수 없었습니까?

힘들지만 않는다면...

 
AlexeyVik :

아니, Vasily, 당신은 내 목표를 제대로 이해하지 못했습니다. 저는 아직 FORTS에 대해 글을 작성하거나 거래하지 않을 예정이며, 방금 mql5를 배우기 시작했습니다. 나는 이 글을 더 일찍 읽기 시작했다. 하지만 2페이지도 못 읽고 포기했습니다. NT 자체는 필요 없다고 생각합니다. 그러나 OrderSend와 OrderSendAsync의 차이점에 대한 시각적 설명은 유용합니다. 일반적으로 나는 그렇게 가정했다.

비동기식 주문을 버리고 계정에서 일어나는 일을 추적하기 위해 여전히 OnTradeTransaction을 사용한다면 EA의 성능이 향상되지 않을까요?

각 틱에 대해 일종의 확인을 수행하는 것과 계정에 약간의 변경 사항이 있는 경우에만 확인을 수행하는 것은 완전히 다른 것입니다. 내가 잘못? 연기가 활성화되었으며 이에 대한 정보가 있습니다. 포지션이 마감되었습니다. 마감된 결과를 분석할 수 있습니다. 포지션을 개설하고 청산할 때까지 전체 시간 동안 몇 가지 확인만 하는 것으로 나타났습니다. 이와 대조적으로 모든 틱을 확인합니다 ...

또 다른 질문이 발생합니다. 포지션 이익을 결정하기 위해 PositionGetDouble( POSITION_PROFIT) 함수가 있고 닫힌 거래의 이익을 결정하기 위해 이 거래에서 먼저 가져와야 하는 많은 매개변수가 있는 OrderCalcProfit()만 있습니다. 아니면 아직 mql5를 너무 많이 마스터하지 않아서 올바른 솔루션을 찾을 수 없었습니까?

힘들지만 않는다면...

OrderCalcProfit은 도움이 되지 않습니다.

모든 주문의 평균 가격(in)과 모든 주문의 평균 가격(out)을 계산해야 합니다.

그런 다음 마감된 위치의 이익을 계산할 수 있습니다.

우리는 역사를 파헤쳐야 합니다.

 
Mikalas :

OrderCalcProfit은 도움이 되지 않습니다.

모든 주문의 평균 가격(in)과 모든 주문의 평균 가격(out)을 계산해야 합니다.

그런 다음 마감된 위치의 이익을 계산할 수 있습니다.

우리는 역사를 파헤쳐야 합니다.

원칙적으로는 이해하지만(아직도 어떻게 하는지는 모르지만) 이 경우에는 마지막 마감 포지션만 중요합니다. 분명히 이것은 위치가 올랐을 때의 경우에 더 적합합니다. 그리고 이제 다른 임무가 있습니다.

martin으로 올빼미를 mql5로 다시 작성하기로 결정했습니다. 시장에서 지속적으로 다음 거래가 마지막 위치를 향해 열립니다...

죄송합니다 ... 포럼에서 의사 소통하는 것이 얼마나 유용한지 알 수 있습니다. 결국, 포지션이 딜레이가 활성화되었을 때만 뒤집힐 수 있거나 테이크에 닫힐 수 있다면 손익 금액은 나에게 중요하지 않습니다. 음, 마지막 무릎이 마이너스를 제공하면 여기에는 아무 것도 필요하지 않습니다... 닫힌 위치의 유형을 찾는 것으로 충분합니다... 그리고 이것은 OnTradeTransaction 핸들러의 전역 수준 변수에 다음을 사용하여 작성할 수 있습니다. TRADE_TRANSACTION_DEAL_ADD의 트랜잭션 유형 과 TRADE_TRANSACTION_HISTORY_ADD 유형의 트랜잭션을 사용 하거나 심볼의 PositionsTotal이 0과 같으면 시리즈의 다음 첫 번째 주문을 배치할 수 있습니다... 잊지 않기 위해 직접 작성했습니다 :)))



 
papaklass :

...즉, 알고리즘의 논리는 기능이나 이벤트 의 처리가 아니라 거래 환경의 변화를 기반으로 해야 합니다.

3. 거래 환경을 확인하는 빈도(틱, 바, 타이머 등)는 TS의 논리와 일치해야 합니다. 즉, 거래 환경의 변화를 얼마나 빨리 처리해야 합니까? 차량의 논리가 가능한 한 빨리 변경 사항을 처리해야 하는 경우 모든 틱에 대한 확인에서 벗어날 수 없습니다...

그리고 고문이 다중 통화 라면 ?
 
papaklass :

1. OrderSendAsync() 함수 는 일괄 발송의 일종인 한번에 여러 주문을 보내야 할 때 사용합니다. 일괄 처리를 보낼 때 OrderSend() 함수를 사용하여 각 주문에 대한 서버 응답을 기다리는 경우 전체 일괄 처리를 보낼 때 상당한 총 시간 지연이 발생합니다. 이 시차 동안 시장은 크게 바뀔 수 있습니다! 이 시간 지연을 없애기 위해 OrderSendAsync() 함수가 도입되었습니다. 이것을 분명히 이해해야 합니다.

일괄 주문 전송이 필요하지 않은 경우 OrderSendAsync() 함수를 사용할 필요가 없습니다.

2. 명령, 영장 등의 철회에 대한 가장 확실한 정의 기능이나 이벤트를 실행하지 않고 거래 환경을 모니터링하고 있습니다. 기능이나 이벤트가 작동할 수 있지만 이 작업의 결과로 거래 환경이 변경된다는 것은 사실이 아닙니다. 왜요? 예, 단순히 기능 작동 중에 오류가 발생할 수 있기 때문입니다.

즉, 알고리즘의 논리는 기능이나 이벤트의 개발이 아니라 거래 환경의 변화를 기반으로 해야 합니다.

3. 거래 환경을 확인하는 빈도(틱, 바, 타이머 등)는 TS의 논리와 일치해야 합니다. 즉, 거래 환경의 변화를 얼마나 빨리 처리해야 합니까? 차량의 논리가 가능한 한 빨리 변경 사항을 처리해야 하는 경우 매 틱마다 확인을 피할 수 없습니다.

Alexander, 응답해 주셔서 감사합니다.

1. 지금까지는 필요하지 않다는 것을 충분히 이해하고 있습니다. 지금은 OrderSend 기능으로 충분합니다.

2. 예, 가장 신뢰할 수 있는 상태는 각 틱에서 전체 환경을 모니터링해야만 결정할 수 있다는 데 동의합니다. 하지만 그런 이벤트 핸들러가 그것을 무시하도록 하는 것은... 글쎄, 나는 단지 실험 중입니다. 더 신뢰할 수 있는 것을 만들도록 도와주려는 당신의 열망을 충분히 이해하지만, 내 목표는 다릅니다. 나는 이 고문이 시급하게 필요하지 않으며, 더욱이 주문하기 위해 쓰지 않습니다.

3. 아마도 최종 버전의 어드바이저에서 모든 틱을 확인하는 것으로 돌아가겠지만 지금은...

질문은 달랐습니다. 문서에 경고가 있는 경우 OnTradeTransaction 이벤트 핸들러를 얼마나 신뢰할 수 있습니까?

또한 서버에서 단말로 전달하는 과정에서 거래가 손실될 수 있습니다.

그리고 어떤 경우에는 신뢰하지 않는 것이 좋으며 어떤 경우에는 무언가를 보장해야합니다.

Vasily, Mikhail 및 Alexander 모두에게 감사드립니다. 더 많은 생각을 공유해 주시면 매우 기쁠 것이며 다시 한 번 감사드립니다.

 
papaklass :

나와 Vasily가 모두 당신에게 대답한 것은 이 질문이었습니다.

OnTradeTransaction() 함수의 작동을 다시 확인해야 하는 경우 OnTradeTransaction()이 처리된 후보다 즉시 거래 환경을 확인하는 것이 더 나을 수 있습니다. 그러나 이것은 취향의 문제입니다.

네, 그리고 다음 분기에서 Renat는 이 기능을 사용하겠다고 약속했으며 아마도 다음 빌드에서 이 기능의 작업이 개선될 것입니다.

그럼에도 불구하고 비동기식 주문에 중점을 둡니다. 이 경우 수백 주문 중 하나의 거래를 잃는 것이 놀라운 일이 아님은 분명합니다. 그럼에도 불구하고 Mikhail에 따르면 엄청나게 많은 주문으로 6개월 동안 단 한 건의 거래도 잃지 않았습니다. 그리고 OrderSend() 함수에 의해 주문이 이루어진 경우 트랜잭션을 잃을 확률은 얼마입니까? 이 경우 큰 문제가 아닐 수도 있습니다.

그리고 개선이 오고 있다면 이것이 할 가치가 있는 또 다른 이유입니다. 아니면 내가 또 뭔가 잘못하고 있습니까?

 
denkir :
А если советник мультивалютный?


파파클라스 :

당신이 나에게서 무엇을 듣고 싶어하는지 명확하지 않습니다.

이벤트 모델 에 대한 논쟁 ...
사유: