[아카이브!] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 2. - 페이지 176

 
eddy :
글쎄, 당신은 후자를 어떻게 정의합니까? 시간으로. 글쎄, 코드에서 어떤 순서가 가장 최신인지 확인하십시오


나는 이미 그것을 스스로 알아 냈습니다. 나는 당신의 마지막 조언을 이해하지 못합니다. 모든 주문을 꺼내어 어느 것이 가장 최신인지 확인할 수 있습니까? 그래서 모든 주문을 꺼내고 모든 주문의 마감 시간을 비교하는 것이 좋습니다. 코드를 수행하는 방법을 보여줍니다.

나는 다음과 같이 모든 것을 해결했습니다.

인츠;
int_bar;

정수 시작()

{

z=OrdersHistoryTotal()-1;
주문 선택(z,SELECT_BY_POS,MODE_HISTORY);
if(TimeCurrent() - OrderCloseTime() > 1&& TimeCurrent() - OrderCloseTime() < 7)
{
if(OrderProfit()> 0)
PlaySound("이익.wav");
if(주문 이익()== 0)
PlaySound("zero.wav");
if(주문 이익()< 0)
PlaySound("loss.wav");
}

z 대신 1을 대입하면 가장 첫 번째 순서(가장 빠른 것)가 선택됩니다. 가장 최근의 번호를 취하면 논리적으로 선택됩니다. 가장 최근 것이므로 OrdersHistoryTotal() ( 기록의 주문 수 반환)을 가져 와서 인덱스 대신 대체했습니다. 그러나 결과적으로 OrdersHistoryTotal()은 어떤 이유로 실제보다 1 더 많이 반환합니다. 나는 기록에 6개의 주문이 있었고 OrdersHistoryTotal()은 7개의 주문을 보여주었습니다. 따라서 z=OrdersHistoryTotal()-1; . 하지만 인덱스에서 무엇을 대체해야 마지막 항목이 선택되는지 이전에는 알지 못했습니다. 아무도 몰라서 혼자 해결해야 했습니다.

 
Reaktiv :

if(TimeCurrent() - OrderCloseTime() > 1&& TimeCurrent() - OrderCloseTime() < 7)

이것은 근본적으로 잘못된 것이며 테스터에서도 항상 작동하지는 않습니다.
 
sergeev :
이것은 근본적으로 잘못된 것이며 테스터에서도 항상 작동하지는 않습니다.

글쎄요, 어떻게 하면 제대로 하는지 가르쳐주세요 그렇지 않으면 교과서에 많은 예가 있습니다.
 
Reaktiv :

글쎄요, 어떻게 하면 제대로 하는지 가르쳐주세요 그렇지 않으면 교과서에 많은 예가 있습니다.

모든 결정은 목표에 달려 있습니다.

기록의 마지막 주문을 찾으려면 이것이 한 가지이지만 Expert Advisor의 마지막 주문이 마감 된 방법을 확인하려면 다른 것입니다.

 
sergeev :

모든 결정은 목표에 달려 있습니다.

기록에서 마지막 주문을 찾으려면 이것이 한 가지이지만 Expert Advisor의 마지막 주문이 어떻게 마감되었는지 보여주면 또 다른 것입니다.


주문이 완료된 후 재생을 시작하려면 음악이 필요하며, 그러한 음악은 어떤 종류의 수익에 따라 달라집니다. 하지만 마지막 오더까지만 재생되도록 놔두면 계속 재생이 되는데, 제 예에서는 오더가 종료된 후 1~7초가 지나면 음악이 재생되도록 하고 싶었습니다.
 

그러면 스키마는 다음과 같아야 합니다.

1. OrderSend 성공 시 주문 티켓 ( GlobalVariableSet )을 기억해야 합니다.

2. 각 틱에서 이 기억된 주문의 티켓( GlobalVariableGet )에서 근접성( OrderCloseTime )을 확인합니다.

3. 주문이 종료되면 해당하는 소리를 내서 수익을 내고 저장된 티켓을 삭제합니다( GlobalVariableDel ).

4. 그래도 1-7초 동안 확인하려는 경우 이 확인을 분석에 포함할 수 있지만 틱이 10초 이상 지연될 수 있으며 신호를 놓칠 수 있음을 잊지 마십시오.

 
sergeev:

그러면 스키마는 다음과 같아야 합니다.

1. OrderSend 성공 시 주문 티켓( GlobalVariableSet )을 기억해야 합니다.

2. 각 틱에서 이 기억된 주문의 티켓( GlobalVariableGet )에서 근접성( OrderCloseTime )을 확인합니다.

3. 주문이 종료되면 해당하는 소리를 내서 수익을 내고 저장된 티켓을 삭제합니다( GlobalVariableDel ).

4. 그래도 1-7초 동안 확인하려는 경우 이 확인을 분석에 포함할 수 있지만 틱이 10초 이상 지연될 수 있으며 신호를 놓칠 수 있음을 잊지 마십시오.



EA에서 OrderSend 를 보내야 합니까 아니면 중요합니까? 그런 다음 시스템은 내가 직접 수동으로 거래를 열 수 있다는 사실을 기반으로 합니다. 그리고 어드바이저 자체가 거래를 연 후 주문을 수정하고(중단) 거래가 성사되면 음악을 재생합니다. 그리고 진드기가 지연되어 10초 안에 갈 수 있다는 사실에 대해서는 분명합니다. 나는 지금과 같은 시간에 예를 들어 고문을 사용하지 않을 것입니다. 나는 모스크바 시간으로 9시에서 18시 사이에 유로백에 대한 고문을 사용합니다.그런 지연은 거의 없습니다.
 
Reaktiv :

그리고 고문 자체가 거래를 시작한 후 주문을 수정합니다(중단).

그런 다음 귀하의 경우 이 항목이 주문 티켓 을 받는 지점이 됩니다.
 
sergeev :
그런 다음 귀하의 경우 이 항목이 주문 티켓을 받는 지점이 됩니다.

고맙습니다
 
Reaktiv :
주문이 마감된 후 1~7초가 지나면 음악이 재생되게 하고 싶었습니다.
왜요? 주문을 마감하면 1회만 잃을 수 있습니다.