MT4其他常用内置函数
MT4(MetaTrader 4)除了订单相关的内置函数外,还提供了许多其他有价值的内置函数,这些函数涵盖了账户信息、市场数据、时间管理、图表操作、文件操作、字符串处理、数学计算等多个方面。以下是 MT4 中一些常用且有价值的内置函数分类及其功能简介:
1. 账户信息函数
这些函数用于获取账户的基本信息,例如余额、杠杆、货币等。
-
AccountBalance()- 功能:获取账户余额。
-
语法:
double AccountBalance(); - 返回值:账户余额。
-
AccountEquity()- 功能:获取账户净值(余额 + 浮动盈亏)。
-
语法:
double AccountEquity(); - 返回值:账户净值。
-
AccountFreeMargin()- 功能:获取账户的可用保证金。
-
语法:
double AccountFreeMargin(); - 返回值:可用保证金。
-
AccountMargin()- 功能:获取账户当前占用的保证金。
-
语法:
double AccountMargin(); - 返回值:占用的保证金。
-
AccountLeverage()- 功能:获取账户的杠杆倍数。
-
语法:
double AccountLeverage(); - 返回值:账户杠杆。
-
AccountCurrency()- 功能:获取账户的基础货币。
-
语法:
string AccountCurrency(); - 返回值:账户基础货币(如 USD)。
-
AccountNumber()- 功能:获取账户号码。
-
语法:
int AccountNumber(); - 返回值:账户号码。
2. 市场信息函数
这些函数用于获取交易品种的市场数据,例如点值、价格、保证金要求等。
-
MarketInfo()- 功能:获取指定交易品种的市场信息。
-
语法:
double MarketInfo(string symbol, int type); -
参数:
-
symbol:交易品种(如 EURUSD)。 -
type:信息类型(如MODE_BID、MODE_ASK、MODE_MARGINREQUIRED等)。
-
- 返回值:指定类型的市场信息。
常用的
type值:-
MODE_BID:当前买价。 -
MODE_ASK:当前卖价。 -
MODE_SPREAD:点差。 -
MODE_MARGINREQUIRED:开仓所需保证金。 -
MODE_TICKVALUE:每点的价值。
3. 时间函数
这些函数用于获取时间信息,例如服务器时间、本地时间等。
-
TimeCurrent()- 功能:获取服务器时间。
-
语法:
datetime TimeCurrent(); -
返回值:服务器时间(
datetime类型)。
-
TimeLocal()- 功能:获取本地计算机时间。
-
语法:
datetime TimeLocal(); - 返回值:本地时间。
-
TimeGMT()- 功能:获取 GMT 时间。
-
语法:
datetime TimeGMT(); - 返回值:GMT 时间。
-
TimeDayOfWeek()- 功能:获取当前时间是星期几。
-
语法:
int TimeDayOfWeek(); - 返回值:星期几(0 表示星期日,1 表示星期一,依此类推)。
-
TimeDayOfYear()- 功能:获取当前时间是今年的第几天。
-
语法:
int TimeDayOfYear(); - 返回值:今年的第几天。
4. 图表操作函数
这些函数用于操作图表,例如获取图表信息、修改图表属性等。
-
ChartID()- 功能:获取当前图表的 ID。
-
语法:
long ChartID(); - 返回值:当前图表的唯一 ID。
-
WindowPriceMin()/WindowPriceMax()- 功能:获取当前图表窗口的价格范围。
-
语法:
double WindowPriceMin(); double WindowPriceMax(); - 返回值:图表窗口的最小/最大价格。
-
ChartSetInteger()- 功能:设置图表属性。
-
语法:
bool ChartSetInteger(long chart_id, int property_id, long sub_window, long value); -
参数:
-
chart_id:图表 ID。 -
property_id:属性类型(如CHART_MODE、CHART_SCALE等)。 -
value:属性值。
-
-
返回值:成功返回
true,失败返回false。
-
ChartOpen()- 功能:打开新图表。
-
语法:
long ChartOpen(string symbol, int period); - 返回值:新图表的 ID。
5. 技术指标函数
这些函数用于获取技术指标的值,例如移动平均线、RSI 等。
-
iMA()- 功能:计算移动平均线(MA)。
-
语法:
double iMA(string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift); - 返回值:指定位置的 MA 值。
-
iRSI()- 功能:计算相对强弱指数(RSI)。
-
语法:
double iRSI(string symbol, int timeframe, int period, int applied_price, int shift); - 返回值:指定位置的 RSI 值。
-
iMACD()- 功能:计算 MACD 指标。
-
语法:
double iMACD(string symbol, int timeframe, int fast_ema_period, int slow_ema_period, int signal_period, int applied_price, int mode, int shift); - 返回值:指定位置的 MACD 值。
6. 文件操作函数
这些函数用于在本地文件系统中读写文件。
-
FileOpen()- 功能:打开文件以进行读写操作。
-
语法:
int FileOpen(string filename, int mode, int delimiter=';'); - 返回值:文件句柄。
-
FileWrite()- 功能:向文件写入数据。
-
语法:
void FileWrite(int handle, ...);
-
FileRead()- 功能:从文件读取数据。
-
语法:
string FileRead(int handle);
-
FileClose()- 功能:关闭文件。
-
语法:
void FileClose(int handle);
7. 数学和字符串函数
这些函数用于数学计算和字符串处理。
-
MathAbs()- 功能:计算绝对值。
-
语法:
double MathAbs(double value);
-
MathPow()- 功能:计算幂。
-
语法:
double MathPow(double base, double exponent);
-
StringFind()- 功能:查找子字符串的位置。
-
语法:
int StringFind(string text, string substring, int start=0);
-
StringSubstr()- 功能:提取子字符串。
-
语法:
string StringSubstr(string text, int start, int length);
总结
MT4 提供了大量的内置函数,涵盖了账户管理、市场数据、时间管理、图表操作、技术指标、文件操作以及数学和字符串处理等多个领域。这些函数是开发自动化交易系统、指标和脚本的基础工具,合理使用这些函数可以帮助开发者实现复杂的交易逻辑和功能。