거래 환경에서 작업할 때 일반적인 실수와 이를 제거하는 방법 - 페이지 7

 
fxsaber :

잘못된 논리라고 생각합니다. 하지만 물론 내가 틀릴 수도 있다. 논리를 듣는 것은 흥미로울 것입니다.

3+피트 차익 거래

 
Комбинатор :

3+피트 차익거래

이 TS에 대해 다른 논리를 사용할 수 있습니다. 일반적으로 이것은 3개의 주문을 비동기식으로 보내는 것입니다. 그러나 실제로 동기식 OrderSend가 강력한 점프를 위해 가장 가능성이 높은 기호로 처음 전송될 때 옵션이 있습니다. 그리고 OrderSend 가 열린 위치 로 종료되면 가장 가능성이 낮은 두 개의 OrderSendAsync가 전송됩니다.

이 상황에서 첫 번째 "포지션"인 시장 주문의 열등성을 결정하는 메커니즘이 필요한 것처럼 보일 수 있습니다. 그러나 첫 번째 OrderSend는 현재 가격 또는 약간 더 나쁜 지정가 주문을 거칩니다. 따라서 "위치"로 간주되지 않습니다. 나머지 2개는 시장가 주문으로 가장 자주 발생합니다. 그리고 그들을 "포지션"으로 고려하면 포지션을 다시 여는 상황을 피할 수 있습니다. 그러나 이 회계처리는 부정적인 영향을 미치지 않습니다.

 

일반적으로 내가 이해하는 한 해결 방법은 없습니다. 해결책도 아니지만 주문과 직책의 수로 작업하는 논리적으로 올바른 원칙입니다.

나는 모든 전략에 사용되는 기능에 대해 이야기하고 있습니다. 다른 사람들은 각 전략에 대해 고유한 스파이크를 말합니다.

 
fxsaber :

이 예는 훨씬 더 멋진 것으로 판명되었습니다. 브로커가 직접 설정한 TP가 등록되었습니다! 그리고 거부 후 거의 즉시 (115ms - MT5 버그 로 많이 기다렸습니다) 브로커는 다음 TP를 설정했습니다. 주문에 대한 설명이 화면에 나타나지 않았습니다. 녹색 - ORDER_REASON_TP . 따라서 거부 주문 에는 ORDER_POSITION_ID도 있습니다.

이것은 더 이상 거부 주문이 아니라 정상적으로 채워진 주문입니다. 실행했을 때 포지션 ID를 받았습니다.

그리고 한 가지 더: 영장이 두 개 있는데 그 중 하나는 집행되지 않았습니다. 이제 질문은 다음과 같습니다. 얼마나 많은 포지션(이 주문이 정지 주문이 아니라 포지션을 여는 주문인 경우), 그리고 - 귀하의 접근 방식은 얼마나 많은 포지션을 반환할 것입니까? 나는 대답할 것이다: 하나 더, 그것은 거짓말이다. 왜 이렇게 합니까?

 
Artyom Trishkin :

이것은 더 이상 거부 주문이 아니라 정상적으로 채워진 주문입니다. 실행했을 때 포지션 ID를 받았습니다.

당신은 잘못된 생각을 가지고 있습니다


그리고 한 가지 더: 영장이 두 개 있는데 그 중 하나는 집행되지 않았습니다. 이제 질문은 다음과 같습니다. 얼마나 많은 포지션(이 주문이 정지 주문이 아니라 포지션을 여는 주문인 경우), 그리고 - 귀하의 접근 방식은 얼마나 많은 포지션을 귀하에게 반환할 것입니까? 나는 대답할 것이다: 하나 더, 그것은 거짓말이다. 왜 이렇게 합니까?

자, 다시 해보자. 두 개의 열린 위치가 있다고 가정합니다. 그리고 우리는 미래에 그러한 거부된 시장 주문을 폭로합니다. 함수는 2+1=3 을 반환합니다. TS는 세 가지 포즈처럼 보이고 모든 것이 OK입니다. 16ms 후에 거부가 옵니다. TC는 얼마나 많은 포즈를 취하는지 봅니다 - 2+0=2 . 그리고 세 가지가 필요합니다! - 다른 시장가 주문을 보냅니다. 그런 다음 다시 2+1=3 입니다. 그리고 주문이 채워져 3+0=3 이 됩니다.

 
Artyom Trishkin :

일반적으로 내가 이해하는 한 해결 방법은 없습니다. 해결책도 아니지만 주문과 직책의 수로 작업하는 논리적으로 올바른 원칙입니다.

나는 모든 전략에 사용되는 기능에 대해 이야기하고 있습니다. 다른 사람들은 각 전략에 대해 고유한 스파이크를 말합니다.

그는 마음을 바꾸지 않았다. 이 기능은 Expert Advisors 및 거래 플랫폼의 99.9%에서 보편적으로 유지됩니다.

 
fxsaber :

당신은 잘못된 생각을 가지고 있습니다


자, 다시 해보자. 두 개의 열린 위치가 있다고 가정합니다. 그리고 우리는 미래에 그러한 거부된 시장 주문을 폭로합니다. 함수는 2+1=3 을 반환합니다. TS는 세 가지 포즈처럼 보이고 모든 것이 OK입니다. 16ms 후에 거부가 옵니다. TC는 얼마나 많은 포즈를 취하는지 봅니다 - 2+0=2 . 그리고 세 가지가 필요합니다! - 다른 시장가 주문을 보냅니다. 그런 다음 다시 2+1=3 입니다. 그리고 주문이 채워져 3+0=3 이 됩니다.

#896615 - 거부하고 위치 ID가 없습니다.

글쎄, 다르게 해보자. 두 개의 열린 위치가 있다고 가정합니다. 우리는 세 번째 포지션을 개설하라는 신호를 받고 거래 요청을 보내고 거부된 시장 주문을 받습니다. TS에 3개의 포지션이 있는 경우 다른 거래 주문 을 보내는 모드가 다른 기호로 켜집니다. 함수는 2+1=3 을 반환합니다. TS는 3개의 위치가 있음을 확인하고 거래량 계산을 시작하고 3개의 추가 위치를 취/중지합니다. 다른 기호에서 다른 기호에서 열기 위해 거래 주문을 보냅니다. 16ms 후에 다른 문자 중 하나가 거부됩니다. TS는 2(현재)+3(2개의 위치 및 다른 심볼의 한 시장)=5의 위치를 확인 합니다. 그리고 6개가 필요합니다! - 완전히 다른 가격으로 현재 기호에 대한 또 다른 시장 주문을 보내고 세 번째 기호에 대한 새 위치의 거래량 및 취/중단을 계산합니다. 그런 다음 다시 같은 혼란.

그리고 우리는 순무를 긁습니다. 왜 그는 미쳤습니까 ???

아니면 차량을 만드는 전략과 논리를 오직 당신만의 기능으로 만들 필요가 있다고 생각하십니까? 당신은 잘못.

 
fxsaber :

그는 마음을 바꾸지 않았다. 이 기능은 Expert Advisors 및 거래 플랫폼의 99.9%에서 보편적으로 유지됩니다.

아니요. 하나의 행동 논리에 대해서만.

그리고 수천 가지가 있습니다.

 
fxsaber :

그는 마음을 바꾸지 않았다. 이 기능은 Expert Advisors 및 거래 플랫폼의 99.9%에서 보편적으로 유지됩니다.

함수는 요청한 내용을 반환해야 합니다. 명확하고 무조건적으로 사용자를 위해 나중에 필요한 것이 무엇인지 결정하지 마십시오.

내가 제안하는 논리는 다음 중 하나여야 합니다.

  • Q: 포지션이 몇 개나 되나요?
  • 답: 둘

... 또는 다음과 같이:

  • Q: 포지션이 몇 개나 되나요?
  • 답변: 잠시만 기다려 주십시오. 아직 명확하지 않습니다.
  • 기다리겠습니다. 그러면 질문은 다음과 같습니다. 자리가 몇 개나 될까요?
  • 답: 세

그리고 당신은 제안합니다:

  • Q: 포지션이 몇 개나 되나요?
  • 답: 세
  • 글쎄, 나는 너무 오래 기다렸고, 나는 더 세고 다른 기호에서 열었습니다 ... 잠시 후 : 일종의 쓰레기 ... 질문 : 어쨌든 얼마나 많은 위치가 있습니까?
  • 답: 둘
  • 질문: 왜 3이라고 했습니까?
  • 답변: 글쎄, 나는 당신이 나중에 유용할 것이라고 결정했습니다.
  • 질문: 다른 심볼의 위치는 몇 개입니까?
  • 답: 세
  • 예? 확실합니까? 그래서 그들은 이전 답변과 다른 기호에 돈을 낭비했습니다 ...
 
Artyom Trishkin :

#896615 - 거부하고 위치 ID가 없습니다.

위 화면의 왼쪽에서 세 번째 빨간색 상자에 있는 숫자를 읽으십시오.

글쎄, 다르게 해보자. 두 개의 열린 위치가 있다고 가정합니다. 우리는 세 번째 포지션을 오픈하라는 신호를 받고 거래 요청을 보내고 거부된 시장 주문을 받습니다. TS에 3개의 포지션이 있는 경우 다른 거래 주문 을 보내는 모드가 다른 기호로 켜집니다. 함수는 2+1=3 을 반환합니다. TS는 3개의 위치가 있음을 확인하고 거래량 계산을 시작하고 3개의 추가 위치를 취/중지합니다. 다른 기호에서 다른 기호에서 열기 위해 거래 주문을 보냅니다. 16ms 후에 다른 문자 중 하나에서 거부가 옵니다. TS는 2(현재)+3(2개의 위치 및 다른 심볼의 한 시장)=5의 위치를 확인 합니다. 그리고 6개가 필요합니다! - 완전히 다른 가격으로 현재 기호에 대한 또 다른 시장 주문을 보내고 세 번째 기호에 대한 새 위치의 거래량 및 취/중단을 계산합니다. 그런 다음 다시 같은 혼란.

그리고 우리는 순무를 긁습니다. 왜 그는 미쳤습니까 ???

비뚤어진 거래 논리를 작성하고 생각해낼 필요가 없습니다. 그렇지 않으면 순무를 긁을 뿐만 아니라. 아마 프리랜서로 넘쳐날 것 같은 비뚤어진 TK 중에 이런 일이 드문 일이 아니라는 것을 이해합니다. 그리고 돈은 냄새가 나지 않기 때문에 원칙에 따라 누군가가 그것을 수행하기로 약속합니다. 그들이 똥을 요구하기 때문에 나는 그것을하고 잊어 버릴 것입니다. 악몽 속에서도 이것에 가깝게 아무 것도 쓰지 않았다. 하지만 TK들 사이에 변의 종류는 프리랜서들이 나보다 훨씬 더 잘 이해한다고 확신한다. 따라서 예, 부적절한 TS의 경우 @Combinator 가 제안한 옵션이 매우 유용할 수 있습니다. ID가 0인 시장 주문이 발견되는 즉시 TS에서 레그를 만드는 것입니다.

아니면 차량을 만드는 전략과 논리를 오직 당신만의 기능으로 만들 필요가 있다고 생각하십니까? 당신은 잘못.

최소한 생각해볼 필요는 있다고 생각합니다. 그리고 나쁜 차량의 재생산에 적합한 환경을 조성하지 않습니다. 불행히도 TK 중 최하위를 결정하는 기준을 공식화하는 것은 불가능합니다. 누군가를 화나게하지 않기 위해 나는 내 세계관을 거꾸로 뒤집을 것입니다. 나는 나 자신이 바닥에 있고 잘 알려진 기술 사양은 물리 법칙에 따라 나타날 것입니다.


그들이 말했듯이 조리법은 보편적입니다.

  1. 우리는 ID가 0인 시장 주문을 만났습니다. 즉시 종료합니다.
  2. MT5-OrderSend는 항상 0이 아닌 Result.deal을 반환하도록 다시 작성됩니다. 소스는 KB로 게시되었습니다.
  3. 각 OrderSend 또는 Sleep이 항목 1로 전송된 후.
이 접근 방식을 사용하면 모든(절대적인 100%) 차량이 제설됩니다.