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

 
sss2019 :
OrderClose() 또는 OrderCloseBy() 중 어떤 함수가 주문의 절반을 닫아야 하는지 알려주십시오.

미결 주문이 있고 그 일부만 청산해야 하는 경우 청산할 볼륨을 지정하는 OrderClose()를 사용하면 충분합니다.
 
sss2019 :
OrderClose() 또는 OrderCloseBy() 중 어떤 함수가 주문의 절반을 닫아야 하는지 알려주세요.

주문량의 절반 마감:

   int Ticket = ...
   OrderSelect (Ticket, SELECT_BY_TICKET);
   OrderClose (Ticket, NormalizeDouble ( OrderLots ()/ 2 ), Ask /*или Bid*/ , Slippage);
 
MaxZ :

주문량의 절반을 마감합니다.


OrderClose() 이전의 OrderSelect()는 필요하지 않습니다.
 
PapaYozh :

OrderClose() 이전의 OrderSelect()는 필요하지 않습니다.
OrderLots를 사용하기 때문에 필요
 
ilunga :
OrderLots를 사용하기 때문에 필요


이 경우:

- 먼저 OrderSelect()에서 반환된 결과를 확인해야 합니다.

- 둘째, 분할 과정에서 얻은 볼륨을 모니터링해야합니다. 그렇지 않으면 전혀 닫히지 않을 수 있습니다.

 

PapaYozh, MaxZ 로트 비용 0.1, 30 ( ClosingPercent = 30) 퍼센트로 계산할 때 0.03 이어야 하지만 이러한 로트로 청산할 때 오류 131 발생

           ClosingLot = OrderLots () / 100 * ClosingPercent;
           ClosingLot = NormalizeDouble (ClosingLot, 3 );
           OrderClose ( OrderTicket (),ClosingLot,Ask,Slippage, Green );
 
sss2019 :

PapaYozh, MaxZ 로트 비용 0.1, 30 ( ClosingPercent = 30) 퍼센트로 계산할 때 0.03 이어야 하지만 이러한 로트로 청산할 때 오류 131 발생


그리고 볼륨을 3자리로 정규화하는 이유는 무엇입니까?
 
sss2019 :

PapaYozh, MaxZ 로트 비용 0.1, 30 ( ClosingPercent = 30) 퍼센트로 계산할 때 0.03 이어야 하지만 이러한 로트로 청산할 때 오류 131 발생

1) 왜 3자리로 정규화합니까?

2) 최소 로트가 0.1이고 그 이하 로트는 원칙적으로 불가

 
PapaYozh :

그리고 볼륨을 3자리로 정규화하는 이유는 무엇입니까?

로트가 0.10이면 30%를 청산할 수 없습니다. 그러나 lot 1로 최대 2개의 문자를 정규화하려고 시도했지만 여전히 동일한 오류가 발생했습니다.
 
sss2019 :

로트가 0.10이면 30%를 청산할 수 없습니다. 그러나 lot 1로 최대 2개의 문자를 정규화하려고 시도했지만 여전히 동일한 오류가 발생했습니다.

기호는 소수점 이하로 간주됩니다.

즉, 숫자 10.044425를 2자리로 정규화하면 숫자 10.04가 됩니다.


예, OrderLots를 사용하기 전에 주문을 선택할 수 있는 위치는 어디입니까?