MT5基础知识

获取账户相关信息 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
printf("ACCOUNT_BALANCE =  %G",AccountInfoDouble(ACCOUNT_BALANCE));
   printf("ACCOUNT_CREDIT =  %G",AccountInfoDouble(ACCOUNT_CREDIT));
   printf("ACCOUNT_PROFIT =  %G",AccountInfoDouble(ACCOUNT_PROFIT));
   printf("ACCOUNT_EQUITY =  %G",AccountInfoDouble(ACCOUNT_EQUITY));
   printf("ACCOUNT_MARGIN =  %G",AccountInfoDouble(ACCOUNT_MARGIN));
   printf("ACCOUNT_FREEMARGIN =  %G",AccountInfoDouble(ACCOUNT_FREEMARGIN));
   printf("ACCOUNT_MARGIN_LEVEL =  %G",AccountInfoDouble(ACCOUNT_MARGIN_LEVEL));
   printf("ACCOUNT_MARGIN_SO_CALL = %G",AccountInfoDouble(ACCOUNT_MARGIN_SO_CALL));
   printf("ACCOUNT_MARGIN_SO_SO = %G",AccountInfoDouble(ACCOUNT_MARGIN_SO_SO));
 
 
printf("ACCOUNT_LOGIN =  %d",AccountInfoInteger(ACCOUNT_LOGIN));
   printf("ACCOUNT_LEVERAGE =  %d",AccountInfoInteger(ACCOUNT_LEVERAGE));
   bool thisAccountTradeAllowed=AccountInfoInteger(ACCOUNT_TRADE_ALLOWED);
   bool EATradeAllowed=AccountInfoInteger(ACCOUNT_TRADE_EXPERT);
   ENUM_ACCOUNT_TRADE_MODE tradeMode=(ENUM_ACCOUNT_TRADE_MODE)AccountInfoInteger(ACCOUNT_TRADE_MODE);
   ENUM_ACCOUNT_STOPOUT_MODE stopOutMode=(ENUM_ACCOUNT_STOPOUT_MODE)AccountInfoInteger(ACCOUNT_MARGIN_SO_MODE);
 
 
 
   Print("The name of the broker = ",AccountInfoString(ACCOUNT_COMPANY));
   Print("Deposit currency = ",AccountInfoString(ACCOUNT_CURRENCY));
   Print("Client name = ",AccountInfoString(ACCOUNT_NAME));
   Print("The name of the trade server = ",AccountInfoString(ACCOUNT_SERVER));

Bar 向前 的值 可以通过 Copytime  什么的 进行 操作 

获取  iMA的 值

1
2
3
double aaa[];
   int handle = iMA(Symbol(),PERIOD_H1,60,0,MODE_SMA,PRICE_CLOSE);
   CopyBuffer(handle,0,0,2,aaa);

开仓 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
   if(!PositionSelect(_Symbol))
   {
 
            MqlTradeRequest request={0};
         request.action=TRADE_ACTION_DEAL;         // 设置挂单
         request.magic=1000;                  // ORDER_MAGIC
         request.symbol=_Symbol;                      // 交易品种
         request.volume=0.1;                          // 0.1为单位的交易量
         request.sl=1.09;                                // 没有指定止损价位
         request.tp=1.1;                                // 没有指定盈利价位
      //--- 形成订单类型
         request.type=ORDER_TYPE_BUY;                // 订单类型
      //--- 形成挂单价格
         request.price=SymbolInfoDouble(_Symbol,SYMBOL_ASK);  // 开盘价
         Print(SYMBOL_ASK);
      //--- 发送交易请求
         MqlTradeResult result={0};
         OrderSend(request,result);
Print(__FUNCTION__,": ",result.comment," reply code ",result.retcode);
 
 
 
 
   }



修改止损止盈 

1
2
3
4
5
6
7
8
9
10
11
12
   if(PositionSelect(_Symbol))
   {
            MqlTradeRequest request={0};
         request.action=TRADE_ACTION_SLTP;         // 设置挂单
         request.sl=1.08;                                // 没有指定止损价位
         request.tp=1.11;                                // 没有指定盈利价位
         request.symbol = _Symbol ;
         MqlTradeResult result={0};
         OrderSend(request,result);
Print(__FUNCTION__,": ",result.comment," reply code ",result.retcode);
 
   }

平仓

1
2
3
4
5
6
7
8
9
10
11
12
13
14
   if(PositionSelect(_Symbol))
   {
            MqlTradeRequest request={0};
         request.action=TRADE_ACTION_DEAL;         // 设置挂单
         request.type =ORDER_TYPE_SELL;
         request.volume =PositionGetDouble(POSITION_VOLUME);
         request.price=SymbolInfoDouble(_Symbol,SYMBOL_BID);
 
         request.symbol = _Symbol ;
         MqlTradeResult result={0};
         OrderSend(request,result);
Print(__FUNCTION__,": ",result.comment," reply code ",result.retcode);
 
   }

挂单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   if(!PositionSelect(_Symbol))
   {
            MqlTradeRequest request={0};
         request.action=TRADE_ACTION_PENDING;         // 设置挂单
         request.type =ORDER_TYPE_BUY_LIMIT;
         request.volume =0.1;
         request.price=1.09;
         request.sl = 1.08;
         request.tp = 1.1;
         request.symbol = _Symbol ;
         MqlTradeResult result={0};
         OrderSend(request,result);
Print(__FUNCTION__,": ",result.comment," reply code ",result.retcode);
 
   }

修改挂单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
   for(int i=0;i<OrdersTotal();i++)
   {
      long tic = OrderGetTicket(i);
      MqlTradeRequest request={0};
         request.action=TRADE_ACTION_MODIFY;         // 设置挂单
   request.order = tic ;
   request.price=1.091;
   //止损 必须加 ,如果不加  则给你全部归零
         request.sl = 1.081;
         request.tp = 1.11;
         MqlTradeResult result={0};
         OrderSend(request,result);
Print(__FUNCTION__,": ",result.comment," reply code ",result.retcode);
 
 
 
 
 
   }

移除挂单

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
   for(int i=0;i<OrdersTotal();i++)
   {
      long tic = OrderGetTicket(i);
      MqlTradeRequest request={0};
         request.action=TRADE_ACTION_REMOVE;         // 设置挂单
   request.order = tic ;
   request.price=1.091;
   //止损 必须加 ,如果不加  则给你全部归零
         request.sl = 1.081;
         request.tp = 1.11;
         MqlTradeResult result={0};
         OrderSend(request,result);
Print(__FUNCTION__,": ",result.comment," reply code ",result.retcode);
 
 
 
 
 
   }

 

原文地址:https://www.cnblogs.com/aliblogs/p/5493798.html