MQL4预定义变量(一)
- 获取最新卖价 Ask
- 获取最新买价 Bid
- 获取图表柱数 Bars
- 获取货币对小数位数 Digits
- 获取货币对点值 Point
对于每个可执行的MQL4程序,在程序启动时(智能交易、脚本或是自定义指标),诸多的预定义变量可以轻松应对图表中的各种价格状态等价格相关信息。
库可以使用模块中的预定义变量。
为了能安全、快速地访问这些数据,客户端程序会为每个单独启动的程序提供预定义变量的本地副本。这些数据会在每次运行智能交易或自定义指标后自动更新,或调用RefreshRates()函数更新。
获取最新卖价 Ask
double Ask
获取当前货币对的最新卖价。请调用RefreshRates()函数更新数据。
注意:该Ask变量为程序(智能交易、脚本或是自定义指标)运行的图表上所对应货币对(品种)的Ask价格,如果需要获取其他货币对(品种)的Ask价格应使用Marketlnfo()函数。
参见 Marketlnfo()。
示例:
if(iRSI(NULL,0,14,PRICE_CLOSE,0)<25) { OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point, "My order #2",3,D'2005.10.10 12:30',Red); return; }
获取最新买价 Bid
double Bid
获取当前货币对的最新买价。请调用RefreshRates()函数更新数据。
注意:该Ask变量为程序(智能交易、脚本或是自定义指标)运行的图表上所对应货币对(品种)的Bid价格,如果需要获取其他货币对(品种)的Bid价格应使用Marketlnfo()函数。
参见 Marketlnfo()。
示例:
if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75) { OrderSend("EURUSD",OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point, "My Order #2",3,D'2005.10.10 12:30',Red); return(0); }
获取图表柱数 Bars
int Bars
获取当前图表中柱数。
参见 iBars()。
示例:
int counter=1; for(int i=1; i<=Bars; i++) { Print(关闭[i-1]); }
获取货币对小数位数 Digits
int Digits
获取当前货币对汇率的小数位数。如EURUSD当前价格为1.54321,Digits值为5。
参见 MarketInfo()。
示例:
Print("当前货币对小数位数为:"+Digits);
获取货币对点值 Point
double Point
返回图表中当前货币对的点值。
如图表当前货币对为EURUSD,报价为1.54321,因为有5位小数报价,所以点值Point为0.00001也为5位小数;如果报价为1.5432因为是4位小数报价,所以点值Point为0.0001也应该是4位小数。
参见 Marketlnfo()。
示例:
//下面例子下单的时候同时设置100点止盈//如果这里交易的是EURUSD且报价为4位小数,这样是正确的设置了100点止盈int TakeProfit=100;OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point);
//下面例子下单的时候同时设置100点止盈//如果这里交易的是EURUSD且报价为5位小数//因为这时Point是0.00001,要设置100点止盈,Point必须再乘以10int TakeProfit=100;OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point*10);
本文地址:https://www.waihuibang.com/fxschool/autotrading/mql4/49058.html