초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 519

 
Vasyl Nosal :

왜 이러는지 알 수 있을까요?

정수 합계 = OrdersTotal ();

추가합니다. 주문이 많으면 루프를 반복할 때마다 함수 가 호출되며 이는 경제적이지 않습니다.
 
Sergey Gritsay :
루프를 실행하는 동안 OrdersTotal ()의 값이 발생하기 때문입니다. 변경될 수 있으며 순서를 건너뛸 수 있습니다. 그렇지 않으면 주기의 본문에 버그가 있습니다.

알렉세이 코지친 :
추가합니다. 주문이 많으면 루프를 반복할 때마다 함수 가 호출되며 이는 경제적이지 않습니다.

둘 다 농담입니까, 아니면 진짜입니까?

 
Vasyl Nosal :

알렉세이 코지친 :
추가합니다. 주문이 많으면 루프를 반복할 때마다 함수 가 호출되며 이는 경제적이지 않습니다.

둘 다 농담입니까, 아니면 진짜입니까?

다른 관점이 있습니까?
 

Alexey Kozitsyn :
У Вас другая точка зрения?

 for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)

정수 i= 주문 합계 () - 1

이 작업은 첫 번째 반복 전에 한 번 수행됩니다. 다른 것을 조각하는 것은 의미가 없습니다. 코드를 늘리면 됩니다.

 
Vasyl Nosal :

이 디자인에서는 가능하지만 결함이 있을 수 있습니다.

 for ( int i= 0 ; i<total; i++)
 
Sergey Gritsay :

이 디자인에서는 가능하지만 결함이 있을 수 있습니다.

:))))))))

무슨 근거로?

하지만.

그래서 항상 끝에서 가십시오.

 
Vasyl Nosal :

이 경우 그렇습니다. 그리고 이 경우:

 for ( int i= 0 ; i<OrdersTotal(); i++)
{

}

차이가 있습니다. 당신은 이전에 당신이 의미하는 바를 말하지 않았습니다.

 
Vasyl Nosal :

:))))))))

무슨 근거로?

하지만.

그래서 항상 끝에서 가십시오.

이 방법이 항상 적합한 것은 아닙니다. 예를 들어 검색이 필요한 경우 가장 빠른 순서부터 시작합니다.
 
kashi_ann :
네, 그냥 논리의 문제입니다. 작업 순서 외에 서버에서 데이터를 업데이트하는 시간도 고려해야 한다는 점이 더 걱정이었습니다.

자연스럽게 사용되는 중단점.

분명히 모든 것이 다시 작성되어야 하고, 어떤 종류의 넌센스가 얻어집니다.

마침내 나는 문제가 무엇인지 이해했습니다.

평소와 같이 엄청나게 간단합니다))

미결제 주문 의 잘못된 사용) 가격이 더 낮아졌고 구매 가격이 지정된 지정가 주문이 더 높음))) 이러한 조건에서는 단순히 배치될 수 없었습니다)

나는 "주문 중지"의 설정을 추가했고 짜잔, 모든 것이 원래대로입니다))))

 
Alexey Kozitsyn :
이 방법이 항상 적합한 것은 아닙니다. 예를 들어 가장 빠른 순서부터 반복해야 하는 경우입니다.
그리고 언제 필요할 수 있습니까?
사유: