对于MT4程序化交易世界中的交易员们而言,编写一款高效稳定的EA非常关键。而在MT4编程中,有一些函数是最核心、最重要的,熟练掌握它们会对编写优秀EA有所帮助。本文将分享MT4编程中最重要的几个函数,帮助投资者学习和了解EA编程技术。
一、OrderSend函数
OrderSend函数是MT4编程中最基本的下单函数,因此也是最为重要的函数之一。函数的主要作用是向MT4服务器发送交易订单。
语法:
bool OrderSend(string symbol,int cmd,double volume,double price,
int slippage,double stoploss,double takeprofit,string comment = "",
int magic = 0,datetime expiration = 0,color arrow_color=CLR_NONE);
参数说明:
symbol — 交易品种符号。
cmd — 交易类型(买入/卖出)。
volume — 手数。
price — 单价。
slippage — 滑点(允许价格波动的最大值)。
stoploss — 止损点位。
takeprofit — 止盈点位。
comment — 交易备注,不是必填项。
magic — EA魔术编号。
expiration — 挂单有效期限,不是必填项。
二、OrderSelect函数
OrderSelect函数用于获得与当前订单相关的信息。这个函数很重要,它可以在程序执行过程中帮助我们获得订单的各种信息,如订单号码、开仓时间、价格、手数、止损点位和止盈点位等。
语法:
bool OrderSelect(int index,int select, int pool = MODE_TRADES);
参数说明:
index — 订单索引。
select — 按照什么顺序获取订单信息。
pool — 订单池类型。此处MODE_TRADES表示选择活动订单池。
三、AccountInfoDouble函数
AccountInfoDouble函数主要用于获取账户基本信息,这些信息包括了当前账户的各种资金数据,如账户余额、保证金值、收益率、净值等。
语法:
double AccountInfoDouble(int type);
参数说明:
type — 枚举类型。如:ACCOUNT_BALANCE表示账户余额;MARGIN_FREE表示可用保证金;ACCOUNT_EQUITY表示账户净值。
四、iBars函数
iBars函数是获得图表某段时间范围内交易品种的K线数目。这个函数同样非常重要,常常用于寻找历史K线的收盘价等计算。
语法:
int iBars(string symbol,int timeframe);
参数说明:
symbol — 交易品种符号。
timeframe — K线周期设定。
五、iMA函数
iMA函数是计算简单移动平均线(MA)的一种类型。它是编写EA中最为重要的函数之一,因为大多数策略都需要通过计算MA来确定交易信号的生成,如趋势跟踪策略和均线交易策略等。
语法:
bool iMA(string symbol,int timeframe,int ma_period,int ma_shift,int ma_method,int applied_price,int shift);
参数说明:
symbol — 交易品种符号。
timeframe — K线周期设定。
ma_period — 移动平均线周期。
ma_shift — 偏移量(例如: ma_shift=1时,表示当前计算的是前一时间段的MA数据)。
ma_method — 五种计算移动平均线的方法之一。
applied_price — 计算简单移动平均的数据类型。
shift — 偏移量,当该参数等于0时,表示计算当前期赋值。
以上就是MT4编程中最基本、最为重要的几个函数。对于初学者而言,熟练掌握以上函数将会对EA编写工作的成功有很大的帮助。当然,如果需要编写更加复杂、高级的EA策略,还需要对其他更为深入的编程技术进行学习和掌握。