증가했습니다. 화살표가 아래에서 두 번째 주문의 가격과 끝에서 두 번째의 기준에 맞지 않는 주문의 티켓을 가리키는 것을 정확히 보았습니다. 내 코드를 실행하고 가장 낮은 순서의 티켓을 참조하십시오. 그리고 더 낮은 BUY 주문이 아니라 아래에서 두 번째 주문을 받을 때까지 이 기능을 완료할 수 있습니다.
증가했습니다. 화살표가 아래에서 두 번째 주문의 가격과 끝에서 두 번째의 기준에 맞지 않는 주문의 티켓을 가리키는 것을 정확히 보았습니다. 내 코드를 실행하고 가장 낮은 순서의 티켓을 참조하십시오. 그리고 더 낮은 BUY 주문이 아니라 아래에서 두 번째 주문을 받을 때까지 이 기능을 완료할 수 있습니다.
내 질문은 끝에서 두 번째 주문의 티켓을 결정하는 코드의 오류가 어디에 있습니까 ???
//+----------------------------------------------------------------------------+//| Расчет тикета предпоследнего ордера в сетке |//+----------------------------------------------------------------------------+int GetTicketPenultimateOrder()
{
penultimate_ticket = 0 ;
{
for ( int cnt = OrdersTotal () - 1 ; cnt >= 0 ; cnt--)
{
if ( OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
{
if (OrderType() == OP_BUY || OrderType() == OP_SELL)
{
if (OrderTicket() > penultimate_ticket && penultimate_ticket != GetTicketMaxOrder())
penultimate_ticket = OrderTicket();
}
}
}
}
}
return (penultimate_ticket);
}
//+----------------------------------------------------------------------------+//| Расчет тикета предпоследнего ордера в сетке |//+----------------------------------------------------------------------------+int GetTicketPenultimateOrder()
{
penultimate_ticket = 0 ;
{
for ( int cnt = OrdersTotal () - 1 ; cnt >= 0 ; cnt--)
{
if ( OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
{
if (OrderType() == OP_BUY || OrderType() == OP_SELL)
{
if (OrderTicket() > penultimate_ticket && penultimate_ticket != GetTicketMaxOrder() )
penultimate_ticket = OrderTicket() ;
}
}
}
}
}
return (penultimate_ticket);
}
그리고 또 다른 중대한 실수는 루프에서 순서를 반복하는 동안 함수를 호출한다는 것입니다. 이 함수도 순서대로 반복합니다 ... 그리고 코드 실행이 함수로 돌아올 때 다른 순서가 이미 선택되어 있습니다... 그리고 OrderTicket()은 예상과 완전히 다른 것을 반환합니다 .
Alex 사진을 확대하십시오
증가했습니다. 화살표가 아래에서 두 번째 주문의 가격과 끝에서 두 번째의 기준에 맞지 않는 주문의 티켓을 가리키는 것을 정확히 보았습니다. 내 코드를 실행하고 가장 낮은 순서의 티켓을 참조하십시오. 그리고 더 낮은 BUY 주문이 아니라 아래에서 두 번째 주문을 받을 때까지 이 기능을 완료할 수 있습니다.
증가했습니다. 화살표가 아래에서 두 번째 주문의 가격과 끝에서 두 번째의 기준에 맞지 않는 주문의 티켓을 가리키는 것을 정확히 보았습니다. 내 코드를 실행하고 가장 낮은 순서의 티켓을 참조하십시오. 그리고 더 낮은 BUY 주문이 아니라 아래에서 두 번째 주문을 받을 때까지 이 기능을 완료할 수 있습니다.
내 질문은 끝에서 두 번째 주문의 티켓을 결정하는 코드의 오류가 어디에 있습니까 ???
내 질문은 끝에서 두 번째 주문의 티켓을 결정하는 코드의 오류가 어디에 있습니까 ???
오류는 주문 가격이 어떤 식으로든 고려되지 않는다는 것입니다.
대화의 어딘가에 전체를 배열에 넣고 티켓을 원하는 수만큼 정렬하도록 하는 조언이 있습니다. 그러나 이에 대한 응답으로이 작업을 수행하는 방법에 대한 이해 부족 ...
이와 같이
내 질문은 끝에서 두 번째 주문의 티켓을 결정하는 코드의 오류가 어디에 있습니까 ???
그리고 또 다른 중대한 실수는 루프에서 순서를 반복하는 동안 함수를 호출한다는 것입니다. 이 함수도 순서대로 반복합니다 ... 그리고 코드 실행이 함수로 돌아올 때 다른 순서가 이미 선택되어 있습니다... 그리고 OrderTicket()은 예상과 완전히 다른 것을 반환합니다 .
오류는 주문 가격이 어떤 식으로든 고려되지 않는다는 것입니다.
대화의 어딘가에 전체를 배열에 넣고 티켓을 원하는 수만큼 정렬하도록 하는 조언이 있습니다. 그러나 이에 대한 응답으로이 작업을 수행하는 방법에 대한 이해 부족 ...
이와 같이
Alexey, 로그의 오류에 대해 의견을 말씀해 주시겠습니까?
2021.11.07 12:17:40.791 2020.01.02 06:00:00 eGriD2 EURUSD,M5: ArraySort 기능의 잘못된 시작 위치 0
2021.11.07 12:17:40.791 2020.01.02 06:00:00 eGriD2 EURUSD,M5: 'eGriD2.mq4'의 범위를 벗어난 배열(664,18)
Alexey, 로그의 오류에 대해 의견을 말씀해 주시겠습니까?
2021.11.07 12:17:40.791 2020.01.02 06:00:00 eGriD2 EURUSD,M5: ArraySort 기능의 잘못된 시작 위치 0
2021.11.07 12:17:40.791 2020.01.02 06:00:00 eGriD2 EURUSD,M5: 'eGriD2.mq4'의 범위를 벗어난 배열(664,18)
이것은 내 코드의 오류가 아닙니다. 저는 영어를 모릅니다. 이 사이트의 내장 번역기를 사용합니다. 그가 번역하는 방법은 다음과 같습니다.
ArraySort 함수의 잘못된 시작 위치 0 - ArraySort 함수의 잘못된 시작 위치 0
'eGriD2.mq4'의 범위를 벗어난 배열(664,18) — 'eGriD2.mq4'의 범위를 벗어난 배열(664,18)
EA의 심각한 오류로 인해 테스트 통과가 중지됨 - EA의 심각한 오류로 인해 테스트 통과가 중지됨
따라서 코드는 스튜디오에 있습니다.
추신; 하지만 주문이 2개 미만일 때 이 함수를 호출하면 이러한 오류가 발생합니다. ......에 대한 보호는 하지 않았지만, 분명히 필요했던 것 같다.
바로 이런 이유로 누군가를 돕고 싶은 마음이 완전히 부족합니다 ... 당신은 내 팁의 의도적 인 적용에 의존하고 있지만 ....... ...
안녕하세요. n 막대에 대한 최소/최대 검색을 구현하는 방법을 알려주십시오.
i최저
또 다른 질문입니다. 프랙탈을 그리는 지표가 있습니다. n개의 막대에 대한 신호의 존재를 확인하는 방법은 무엇입니까?
또 다른 질문입니다. 프랙탈을 그리는 지표가 있습니다. n개의 막대에 대한 신호의 존재를 확인하는 방법은 무엇입니까?