English
中文
日本語
ID
Vietnam
한국어
Filipino
 
   대학 내비게이션

외환 MQL4에서 OrderClose 기능을 사용하는 방법

MQL4 OrderClose Function

시장가 주문을 종료하면 현재 시장 가격으로 거래를 종료합니다. 이는 매수 주문의 현재 입찰가와 매도 주문의 현재 요청가가 됩니다. 전체 MQL4 OrderClose 함수 문서에서 종료 조건이 충족될 때 미결 주문을 마감하도록 EA를 프로그래밍하는 방법을 알아보세요.


시장 주문을 종료하기 위해 사용되는 코드는 OrderClose() 함수이며 구문은 다음과 같습니다.


bool OrderClose(int Ticket, double Lots, double Price, int Slippage, color Arrow);


다음 표에서는 각 항목에 대해 설명합니다. 다음 매개변수 중 a:

범위설명
티켓< /strong> 시장 마감 주문의 티켓 번호
포지션을 청산할 랏 수입니다.
가격거래를 종료하기 위한 우선 가격입니다.
미끄러짐 종가에 허용되는 스프레드입니다.
색상 닫힌 화살표의 색상 상수입니다.

다음 예에서는 슬레이브를 닫습니다. MACD의 차용 시장가 주문 예시:

for(cnt=0; cnt<total ;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ;< br/>if(OrderType()<=OP_SELL && // 오픈 포지션 확인
OrderSymbol()==Symbol()) // 심볼 확인
{
if (OrderType()==OP_BUY) // 롱 포지션 오픈
{
// 청산해야 할까요?
if(MacdCurrent>0 && MacdCurrentSignalPrevious &&
MacdCurrent>(MACDCloseLevel*Point))
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // 포지션 닫기
return(0) ; / / 종료
}

 

설명

여기서 닫는 코드는 for 연산자로 시작하며, 코드 블록은 닫는 조건을 계산하기 위해 계속 반복됩니다.


OrderSelect() 함수는 열려 있는 주문 풀을 확인하고 일치하는 거래 기호 및 주문 유형(OP_BUY 또는 OP_SELL)을 찾는 데 사용됩니다.


이 코드 블록의 마지막이자 가장 중요한 조건은 출구 전략 조건을 관찰하는 것입니다. 위 예에서는 MACD 출구 조건입니다.


개설 품종과 주문 유형이 결정되고 MACD 청산 조건이 충족되면 OrderClose() 함수를 배포할 수 있으며 해당 매개변수가 결정됩니다. 위의 표에 나와 있습니다.

自定义关闭函数

일련의 조건에 따라 주문을 마감해야 할 때마다 Start() 함수에서 쉽게 호출할 수 있도록 사용자 정의 마감 함수를 사용하는 것이 유용할 수 있습니다. 사용자 정의 마감 기능은 현재 진행 중인 주문 풀을 확인하여 주문 유형과 매직 넘버를 식별해야 합니다.

MT4 코드 조각

void close(int type){
if(OrdersTotal()>0){
for(Counter=OrdersTotal()-1; 카운터>=0;카운터–){
OrderSelect(Counter,SELECT_BY_POS,MODE_TRADES);

if(type==OP_BUY && OrderType()==OP_BUY){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) {
RefreshRates();
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits ), vSlippage);
} }

if(type==OP_SELL && OrderType()==OP_SELL){
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) {
RefreshRates(); OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),vSlippage);
}}
}}}

 

MT4 사용

if (OType==0 && CloseBuy==true)
{
close (OP_BUY); // 구매 닫기

 

설명

우리는 사용자 정의 닫기 함수의 이름으로 close()를 선택하고 이를 호출하고 싶을 때마다 위의 사용 예와 같이 닫기 조건 뒤에 단어를 삽입하기만 하면 됩니다.


두 번째 줄은 총 오픈 포지션이 0보다 큰 경우 기능을 시작합니다. 세 번째 라인은 현재 열려 있는 주문 풀을 확인하여 계산합니다. 네 번째 줄에서는 OrderSelect() 함수를 호출하여 추가 처리를 위해 계산된 주문을 선택합니다.


우리는 사용자 정의 닫기 함수에 대해 괄호() 안의 변수 int 유형인 하나의 매개변수만 구성했습니다. 이 매개변수는 주문 유형의 식별자가 됩니다. 사용자 정의 함수에서 유형이 OP_BUY 또는 OP_SELL과 동일(==)함을 나타내므로 close()를 호출할 때 다음과 같이 close()가 close(OP_BUY)인지 close(OP_SELL)인지 나타내야 합니다. 위의 사용 예. 함수에서 type==OP_BUY 및 OrderType==OP_BUY를 기호(&&)와 연관시킵니다.


또한 6행에서 했던 것처럼 올바른 코드와 매직 넘버가 있는 구매 주문을 선택했는지 확인하고 싶습니다.


if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) {


Refresh Rates()는 통화쌍의 환율을 새로 고쳐 최신 환율로 채워지는 기능입니다.


마지막으로 OrderClose() 함수를 배포합니다. 해당 함수의 매개변수는 위 표에서 찾을 수 있습니다.