获取账户相关信息
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); }
|