문서를 읽었습니까?
Parameters
티켓
【인】 두 번째 매개변수에 따라 주문 인덱스 또는 주문 티켓.
고르다
【인】 플래그 선택. 다음 값 중 하나일 수 있습니다.
SELECT_BY_POS - 주문 풀의 인덱스,
SELECT_BY_TICKET - 인덱스는 주문 티켓입니다.
풀=MODE_TRADES
【인】 선택적 주문 풀 인덱스입니다. 선택한 매개변수가 SELECT_BY_POS일 때 사용됩니다. 다음 값 중 하나일 수 있습니다.
MODE_TRADES(기본값)- 거래 풀에서 선택한 주문(열린 주문 및 보류 중인 주문),
MODE_HISTORY - 히스토리 풀에서 선택한 주문(닫힌 주문 및 취소된 주문).
bool OrderSelect( int index, // index or order ticket int select , // flag int pool=MODE_TRADES // mode );
boopa26은 미결 주문을 마감하려고 하므로 boopa는 MODE_TRADES를 세 번째 매개변수 로 선택합니다.
boopa26은 SELECT_BY_POS 또는 SELECT_BY_TICKET을 수행합니까? boopa26은 모른다
SELECT_BY_POS //index inside order pool, SELECT_BY_TICKET //index is order ticket.
https://docs.mql4.com/trading/orderclose
boopa26은 for 주기 또는 while 주기 없이 어떻게 순환하지만 주문 선택 기능으로 열린 주문을 닫는 조건이 있습니까?
문서 주문 닫기에는 주문 티켓이 필요하지만 boopa26은 주문을 선택하여 티켓이 아닌 주문 위치를 찾습니다.
bool OrderClose( int ticket, // ticket double lots, // volume double price, // close price int slippage, // slippage color arrow_color // color );
1. 주문 선택
2. 주문 마감
방법을 모른다
//+------------------------------------------------------------------+ //| Moving Average.mq4 | //| Copyright 2005-2014, MetaQuotes Software Corp. | //| http://www.mql4.com | //+------------------------------------------------------------------+ #property copyright "2005-2014, MetaQuotes Software Corp." #property link "http://www.mql4.com" #property description "Moving Average sample expert advisor" #define MAGICMA 20131111 //--- Inputs input double Lots = 0.1 ; input double MaximumRisk = 0.02 ; input double DecreaseFactor= 3 ; input int MovingPeriod = 12 ; input int MovingShift = 6 ; //+------------------------------------------------------------------+ //| Calculate open positions | //+------------------------------------------------------------------+ int CalculateCurrentOrders( string symbol) { int buys= 0 ,sells= 0 ; //--- for ( int i= 0 ;i< OrdersTotal ();i++) { if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false ) break ; if (OrderSymbol()== Symbol () && OrderMagicNumber()==MAGICMA) { if (OrderType()==OP_BUY) buys++; if (OrderType()==OP_SELL) sells++; } } //--- return orders volume if (buys> 0 ) return (buys); else return (-sells); } //+------------------------------------------------------------------+ //| Calculate optimal lot size | //+------------------------------------------------------------------+ double LotsOptimized() { double lot=Lots; int orders=HistoryTotal(); // history orders total int losses= 0 ; // number of losses orders without a break //--- select lot size lot= NormalizeDouble (AccountFreeMargin()*MaximumRisk/ 1000.0 , 1 ); //--- calcuulate number of losses orders without a break if (DecreaseFactor> 0 ) { for ( int i=orders- 1 ;i>= 0 ;i--) { if ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY)== false ) { Print ( "Error in history!" ); break ; } if (OrderSymbol()!= Symbol () || OrderType()>OP_SELL) continue ; //--- if (OrderProfit()> 0 ) break ; if (OrderProfit()< 0 ) losses++; } if (losses> 1 ) lot= NormalizeDouble (lot-lot*losses/DecreaseFactor, 1 ); } //--- return lot size if (lot< 0.1 ) lot= 0.1 ; return (lot); } //+------------------------------------------------------------------+ //| Check for open order conditions | //+------------------------------------------------------------------+ void CheckForOpen() { double ma; int res; //--- go trading only for first tiks of new bar if (Volume[ 0 ]> 1 ) return ; //--- get Moving Average ma= iMA ( NULL , 0 ,MovingPeriod,MovingShift, MODE_SMA , PRICE_CLOSE , 0 ); //--- sell conditions if (Open[ 1 ]>ma && Close[ 1 ]<ma) { res= OrderSend ( Symbol (),OP_SELL,LotsOptimized(),Bid, 3 , 0 , 0 , "" ,MAGICMA, 0 ,Red); return ; } //--- buy conditions if (Open[ 1 ]<ma && Close[ 1 ]>ma) { res= OrderSend ( Symbol (),OP_BUY,LotsOptimized(),Ask, 3 , 0 , 0 , "" ,MAGICMA, 0 ,Blue); return ; } //--- } //+------------------------------------------------------------------+ //| Check for close order conditions | //+------------------------------------------------------------------+ void CheckForClose() { double ma; //--- go trading only for first tiks of new bar if (Volume[ 0 ]> 1 ) return ; //--- get Moving Average ma= iMA ( NULL , 0 ,MovingPeriod,MovingShift, MODE_SMA , PRICE_CLOSE , 0 ); //--- for ( int i= 0 ;i< OrdersTotal ();i++) { if ( OrderSelect (i,SELECT_BY_POS,MODE_TRADES)== false ) break ; if (OrderMagicNumber()!=MAGICMA || OrderSymbol()!= Symbol ()) continue ; //--- check order type if (OrderType()==OP_BUY) { if (Open[ 1 ]>ma && Close[ 1 ]<ma) { if (!OrderClose(OrderTicket(),OrderLots(),Bid, 3 ,White)) Print ( "OrderClose error " , GetLastError ()); } break ; } if (OrderType()==OP_SELL) { if (Open[ 1 ]<ma && Close[ 1 ]>ma) { if (!OrderClose(OrderTicket(),OrderLots(),Ask, 3 ,White)) Print ( "OrderClose error " , GetLastError ()); } break ; } } //--- } //+------------------------------------------------------------------+ //| OnTick function | //+------------------------------------------------------------------+ void OnTick () { //--- check for history and trading if ( Bars < 100 || IsTradeAllowed()== false ) return ; //--- calculate open orders by current symbol if (CalculateCurrentOrders( Symbol ())== 0 ) CheckForOpen(); else CheckForClose(); //--- } //+------------------------------------------------------------------+이동 평균 전문가 고문은 미결 주문을 마감하는 주기에 사용합니다.
"boopa26"은 다음을 수행해야 한다고 생각합니다.
- 첫째, "boopa26"은 먼저 코딩의 기초(C에서와 같이)를 배워야 합니다.
- 그런 다음 "boopa26"은 책/자습서 (오래되고 구식일지라도)를 읽고 따라야 합니다.
- 동시에 "boopa26"은 책/자습서 에 언급되지 않은 MQL4 업데이트 에 특히 주의하면서 전체 문서 를 읽어야 합니다.
- 그런 다음 "boopa26"은 사용자 코드 기반 에 있는 지표, 전문가 자문(EA) 및 스크립트에 대한 몇 가지 코드 예제를 연구해야 합니다.
- 그런 다음 "boopa26"은 자신만의 매우 간단한 지표를 만들기 시작하고 더 복잡한 지표를 완전히 이해하고 만들 수 있을 때까지 천천히 지표를 구축할 수 있습니다.
- 그런 다음 "boopa26"은 자신의 매우 간단한 EA를 만들기 시작하고 더 복잡한 EA를 완전히 이해하고 만들 수 있을 때까지 천천히 빌드합니다.
"boopa26"은 또한 "boopa26"이 모든 필요한 단계를 건너뛰어서는 안 된다는 매우 중요한 교훈을 배워야 합니다. 그렇지 않으면 "boopa26"이 모든 사람의 시간을 낭비할 뿐이고 "아름다운 케이크" 대신 모든 "boopa26"이 "탄탄"입니다.
"boopa26"은 다음을 수행해야 한다고 생각합니다.
- 첫째, "boopa26"은 먼저 코딩의 기초(C에서와 같이)를 배워야 합니다.
- 그런 다음 "boopa26"은 책/자습서 (오래되고 구식일지라도)를 읽고 따라야 합니다.
- 동시에 "boopa26"은 책/자습서 에 언급되지 않은 MQL4 업데이트 에 특히 주의하면서 전체 문서 를 읽어야 합니다.
- 그런 다음 "boopa26"은 사용자 코드 기반 에 있는 지표, 전문가 자문(EA) 및 스크립트에 대한 몇 가지 코드 예제를 연구해야 합니다.
- 그런 다음 "boopa26"은 자신만의 매우 간단한 지표를 만들기 시작하고 더 복잡한 지표를 완전히 이해하고 만들 수 있을 때까지 천천히 지표를 구축할 수 있습니다.
- 그런 다음 "boopa26"은 자신의 매우 간단한 EA를 만들기 시작하고 더 복잡한 EA를 완전히 이해하고 만들 수 있을 때까지 천천히 빌드합니다.
"boopa26"은 또한 매우 중요한 교훈을 배워야 합니다. "boopa26"은 필요한 모든 단계를 건너뛰어서는 안 됩니다. 그렇지 않으면 "boopa26"은 모든 사람의 시간을 낭비하고 "아름다운 케이크" 대신에 " 숯불".
1. c 지식이 필요하지 않습니다. mql4는 다른 기능입니다
2. 이미 읽은 책
3. 이미 문서 읽기
4. 이미 작성된 코드
5. ?
6. ?
boopa26은 사람들의 시간을 낭비하지 않습니다
boopa26에게 숯 케이크 굽는 법을 가르치는 FMIC 선생님
FMIC 숯 케이크 클래스
boopa26은 주문 전송 코드를 작성할 수 있지만 주문을 닫기 위한 주문 선택 기능은 작성할 수 없습니다. for 사이클 또는 while 사이클 없이 주문을 마감하는 주문 선택 기능을 작성하려고 합니다. boopa26은 if 조건으로 주문을 마감하는 주문 선택 기능을 작성하려고 하지만 boopa26은 주문을 마감하기 위한 주문 선택 기능을 조립하는 것을 이해하지 못합니다.
예시 구매 주문 보내기
if(OrdersTotal()==0)OrderSend(Symbol(),OP_BUY,.1,Ask,3,0,0,NULL,9,0,clrNONE);
예시 주문 선택. boopa26은 이해하지 못합니다
OrderSelect( 정수 인덱스 , 정수 선택 , 정수 풀 )
int 인덱스는 무엇입니까?
int 선택이 무엇입니까?
인풀이 뭔가요?
주문 선택은 어떻게 하나요?