포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 842

 

OrderClose(OrderTicket(),0.01,Bid,2);

"전문가"에서 "OrderClose 기능 에 대한 유효하지 않은 티켓"이라고 씁니다.

돕다? 내 목표는 현재 차트에서 주문을 마감하는 것입니다.

 
Escapee :

OrderClose(OrderTicket(),0.01,Bid,2);

"전문가"에서 "OrderClose 기능에 대한 잘못된 티켓"이라고 씁니다.

돕다? 내 목표는 현재 차트에서 주문을 마감하는 것입니다.

 if ( OrdersTotal ()== true )
{
if ( OrderSelect (ticket,SELECT_BY_TICKET)> 0 && OrderType()==(OP_BUY/OP_SELL здесь поставишь какой ордер) && (здесь можешь написать условия закрытия т.е. сигнал) 
{
bool close = OrderClose(OrderTicket(),OrderLots(),Bid, 3 , clrRed ); 
if (!close)
Print ( "Ошибка закрытия ордера. Код ошибки=" , GetLastError ());
else
Print ( "Ордер BUY успешно закрыт." );
}
}
 
가능한 경우 주문을 무조건 종료해야 합니까? 내가 작성한 프로그램의 해당 라인에서 orderticket이 작동하지 않는 이유는 무엇입니까?
 
Pokrov :

좋은 저녁이에요! 아래 코드를 이해하도록 도와주세요. 매도는 왜 세 가지 개설 옵션이 있는 것과 같은 원리에 따라 작성되었습니다. 왜냐하면 주문이 현재 막대에서 열리고 위험에 의해 닫힐 때 주문을 열지 않는 옵션과 혼동해야 했기 때문입니다. -무료,

근데 시그널이 남아서 오프닝이 또 계속돼서 이렇게 글을 쓰게 되었습니다. 그리고 문제는 단 하나의 매수 및 매도 주문이 열렸고 그게 다였다는 것입니다. 그리고 나서 침묵, 저는 오류를 찾지 못했습니다 . 미리 감사드립니다.

이 줄을 이해하는 방법?

 if (! OrdersTotal ()== true )

 if (!OrdersHistoryTotal()== true )

그리고 이것...

 if ( OrderSelect (ticket,SELECT_BY_TICKET)> 0 // дальше я не смотрел

이 마지막 줄이 작동하지만 그렇게 쓰여지지는 않았지만 ... 단어가 없습니다.

글쎄요, 오류가 발견되지 않았다면 아마도 오류가 없을 것입니다...

 
Escapee :

OrderClose(OrderTicket(),0.01,Bid,2);

"전문가"에서 "OrderClose 기능에 대한 잘못된 티켓"이라고 씁니다.

돕다? 내 목표는 현재 차트에서 주문을 마감하는 것입니다.

주문으로 작업하기 전에 OrderSelect() 함수 로 주문을 선택해야 하기 때문에
 
AlexeyVik :

이 줄을 이해하는 방법?

그리고 이것...

이 마지막 줄이 작동하지만 그렇게 쓰여지지는 않았지만 ... 단어가 없습니다.

글쎄요, 오류가 발견되지 않았다면 아마도 오류가 없을 것입니다...

1. 미결주문이 없는 경우

2. 마감된 주문이 없는 경우.

뭐가 문제 야?

 
Pokrov :

1. 미결주문이 없는 경우

2. 마감된 주문이 없는 경우.

뭐가 문제 야?

정수 주문 합계() ; - true-false가 아닌 숫자를 반환합니다. 잘못된 것입니다. 주문이 없다는 것은 0을 의미하고 주문이 있으면 1만이 아닙니다.

그리고 아직 거래되지 않은 새로 개설된 계정에만 폐쇄된 계정이 없습니다. 그리고 다시 함수의 잘못된 사용.

왜 RefreshRates(); 서버에 주문을 보낸 후? 무언가를 먼저 지불한 다음 "비용이 얼마입니까?"라고 묻는 것과 같습니다.

 
Pokrov :

 if ( OrdersTotal ()== true )
{
if ( OrderSelect (ticket,SELECT_BY_TICKET)> 0 && OrderType()==(OP_BUY/OP_SELL здесь поставишь какой ордер) && (здесь можешь написать условия закрытия т.е. сигнал) 
{
bool close = OrderClose(OrderTicket(),OrderLots(),Bid, 3 , clrRed ); 
if (!close)
Print ( "Ошибка закрытия ордера. Код ошибки=" , GetLastError ());
else
Print ( "Ордер BUY успешно закрыт." );
}
}

여기서 무슨 말도 안되는 짓을 하는 겁니까?

주문 및 포지션의 합계가 1개 이상인 경우...
알 수 없는 티켓에 대한 주문이 선택되고 닫혔는지 열렸는지 확실하지 않은 경우...
등. ...

그들이 도왔다고 생각합니까?

 
evillive :

... 주문이 없으면 0을 의미하고 주문이 있으면 1만 있는 것이 아닙니다.

...

여기에서 말하자면 허가를 받아 수정하겠습니다.

bool에서 0이면 거짓이고 0이 아닌 다른 모든 것은 참입니다.

 
Escapee :

OrderClose(OrderTicket(),0.01,Bid,2);

"전문가"에서 "OrderClose 기능에 대한 잘못된 티켓"이라고 씁니다.

돕다? 내 목표는 현재 차트에서 주문을 마감하는 것입니다.

티켓으로 포지션을 청산하려면 먼저 청산되는 포지션의 티켓 번호를 정확히 알아야 합니다. 그런 다음 OrderSelect(티켓, SELECT_BY_TICKET) 함수를 사용하여 주문을 선택하고 선택이 성공했는지 확인해야 합니다. 다음으로 성공적으로 선택된 주문의 마감 시간을 확인해야 합니다. 무엇 때문에? 그런 다음 티켓으로 선택할 때 OrderSelect(..., ..., pool ) 함수의 pool 매개변수는 무시됩니다(인덱스로 선택할 때만 필요). 즉, 주문을 성공적으로 선택했더라도 닫힘 또는 열린 위치 목록에서 주문을 선택한 목록을 알아야 합니다. "시장에 아직 주문이 있습니까?" 마감 시간이 0이면 주문은 여전히 시장에 있는 것입니다. 시간이 0과 다르면 주문이 이미 마감된 것입니다. 이제 이 모든 절차가 끝나면 이 주문을 마감하는 주문을 보낼 수 있습니다.