MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 70

 
wishmast :

OrdersTotal() 함수를 사용하여 주문을 정렬할 때 -1을 쓰는 이유를 알려주세요.

예: for (i=OrdersTotal()-1 ;i>=0; i--)

왜 OrdersTotal() 만 아닌가요?

이 함수의 주문 수는 0부터 시작합니까 아니면 1부터 시작합니까? 즉, 하나의 주문이 있는 경우 OrdersTotal()은 0 또는 1과 같습니까?

처음부터 계정
 
wishmast :

OrdersTotal() 함수를 사용하여 주문을 정렬할 때 -1을 쓰는 이유를 알려주세요.

예: for (i=OrdersTotal()-1 ;i>=0; i--)

왜 OrdersTotal() 만 아닌가요?

이 함수의 주문 수는 0부터 시작합니까 아니면 1부터 시작합니까? 즉, 하나의 주문이 있는 경우 OrdersTotal()은 0 또는 1과 같습니까?

OrdersTotal()은 수량을 표시합니다. 즉, 하나의 주문이 있는 경우 OrdersTotal()은 1과 같지만 주문 목록에서 보고서는 0부터 시작합니다.

0 - 첫 번째 주문

1 - 두 번째 주문

2 - 세 번째

등.

따라서 목록 끝에서 열거를 시작하면 총 OrdersTotal() 주문 수에서 하나를 빼야 합니다.

 
Sergey Gritsay :

OrdersTotal()은 수량을 표시합니다. 즉, 하나의 주문이 있는 경우 OrdersTotal()은 1과 같지만 주문 목록에서 보고서는 0부터 시작합니다.

0 - 첫 번째 주문

1 - 두 번째 주문

2 - 세 번째

등.

따라서 목록 끝에서 열거를 시작하면 총 OrdersTotal() 주문 수에서 하나를 빼야 합니다.

그러나 첫 번째 표현식에서 1을 빼지 않으면 오류가 되지 않습니다. 하나의 차수가 있으면 두 번의 반복이 발생합니다. 한 번에 수행해야 하는 모든 작업을 수행할 수 있을 때 실제로 두 번 반복할 필요가 없는 것이므로 -1, 올바르게 이해하고 있습니까?
 
wishmast :
그러나 첫 번째 표현식에서 1을 빼지 않으면 오류가 되지 않습니다. 하나의 차수가 있으면 두 번의 반복이 발생합니다. 한 번에 수행해야 하는 모든 작업을 수행할 수 있을 때 실제로 두 번 반복할 필요가 없는 것이므로 -1, 올바르게 이해하고 있습니까?
네, 그러죠
 
Sergey Gritsay :
네, 그러죠

정확하지 않습니다.

접두사 감소 를 사용할 수 있습니다.

for ( int i = OrdersTotal (); i >= 0 ; --i)
 
trader781 :
주문이 많은데 왜 제대로 된 주문을 받고 바로 꺼낼 수 없습니까? (필수) 원하는 대로 그들과 함께 하시겠습니까? 예를 들어 주문 (i-4)
MT4 테스터에서만 작동하기 때문입니다. 또는 하나의 기호와 이러한 고문 중 하나만 거래할 때.
 
Vitalie Postolache :
MT4 테스터에서만 작동하기 때문입니다. 또는 하나의 기호와 이 고문 중 하나만 거래할 때.

글쎄, 생각해보면 어드바이저는 각 페어마다 동일하고 계좌 잔액 만 공통(스위치가 마지막이 됨)

필터는 시장 유형-어드바이저가 열림-기호가 일치하는 경우 조건을 충족하는 모든 주문을 거칩니다.

그렇지 않은 것은 무엇입니까?

 
trader781 :

글쎄, 생각해보면 어드바이저는 각 페어마다 동일하고 계좌 잔액 만 공통(스위치가 마지막이 됨)

필터는 시장 유형-어드바이저가 열림-기호가 일치하는 경우 조건을 충족하는 모든 주문을 거칩니다.

그렇지 않은 것은 무엇입니까?

글쎄, 당신은 이미 위에서 무엇이 잘못되었는지 설명했습니다. 자신의 주문만 계산하고 총 수에 대한 배열 인덱스를 가져옵니다. 빈 셀이 있는 배열을 얻습니다. 그리고 왜 필요한가? 그리고 배열이 비어 있지 않으면 "추가"필드에서 불필요한 쓰레기로 인해 오류가 발생하지만 우리는 돈에 대해 이야기하고 있습니다.
 
Vitalie Postolache :
글쎄, 당신은 이미 위에서 무엇이 잘못되었는지 설명했습니다. 자신의 주문만 계산하고 총 수에 대한 배열 인덱스를 가져옵니다. 빈 셀이 있는 배열을 얻습니다. 그리고 왜 필요한가? 그리고 배열이 비어 있지 않으면 "추가"필드에서 불필요한 쓰레기로 인해 오류가 발생하지만 우리는 돈에 대해 이야기하고 있습니다.

좋아 이렇게 하자

struct myorder
{
int     Ticket;
double orderopenprice;
int    ordertype;
double profit;
double stoploss;
double   lot;
};

myorder orders[];

int i;
int count1= 0 ;
void CalcOrders()
{
for (i= OrdersTotal ()- 1 ; i>= 0 ; i--)
     {
       if (( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) && ( OrderSymbol ()== Symbol ())
         && ( OrderMagicNumber ()==Magic) && ( OrderType ()< 2 ))
         orders[count1].Ticket= OrderTicket ();
         orders[count1].lot= OrderLots ();
         orders[count1].orderopenprice= OrderOpenPrice ();
         orders[count1].ordertype= OrderType ();
         orders[count1].profit= OrderProfit ();
         orders[count1].stoploss= OrderStopLoss ();
         count1++;
     }
}    


오른쪽?

 
조건을 기록하는 데 도움이 됩니다. 계정 의 무료 자금 금액 이 보증금의 50% 미만이면 {action} MT5