有很多没有编程经验的小白,学习MT4 EA编程,都会有些吃力,还有些更是死记硬背,却不理解其中的含义。这样学习是不会达到成功的目标。下面我简单的说下初建EA,一些固定含义(为方便理解,说的都是非专业术语);
设置参数,参数可以大大提高EA的灵活性,修改某些固定值时,我们可以不用去代码里面在去更改。(如:设置止损,止盈);在启动EA时,都会去修改一些自己的理想参数,当然,也可以默认;
启动EA参数选项
下面我就说一下,这些参数,在EA中如何去表达;
编写EA参数设置
extern 。。。。便是执行EA输入框里面的参数,如果前面去掉extern那么输入框里就不会出现该参数(注:红色的为自定义参数名,中英文都可以)。这些参数,编程也叫全局变量。就是你设置的参数名称可以在下面任何方法函数中去引用;(可以理解每个参数就是一个人的名字,方法函数就是一个房间,指派一个人可以去一个或多个房间,前提必须告诉房间,这个人的名字)。顺便差一句,有全局变量,就有私有变量(人只用在自己的房间起名才有效,前面不需要加extern,出去就是废物了);
至于string ,int ,double ,bool 都是类型;(人的性别,人妖。。。)简单说一下
string 代表字符串 可以随意定义,必须加 "";
int 就是数字 0到9;
double 小数 0.1 最长小数点后六位;
bool 布尔 只有,真(开) 或 假(关);
其余的自己可以去网上查或留言我就不一一说明了;
EA运行初始化参数方法
int init(){
};
EA运行初始化,可以做一些检查账户金额,或者输出一些账户相关信息;
EA执行结束调用
int deinit(){
}
当执行结束的时候调用,这里我们可以放一些”善后“的代码;
int start(){
}
这个函数是EA运行的核心,要执行的策略要在这个函数里编写;
还有一些自定义函数方法 ,可以让代码逻辑变得通俗易懂,写的更轻松 (常用逻辑)如:
计算当前盈亏比,我们就可以写个方法(造个工人GetYKB),其他函数(房间)召唤它的名字(或下指令)就可以了
double GetYKB()
{
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
{
if(OrderProfit()>0)
{
PWin+=MathAbs(OrderOpenPrice()-(Ask+Bid)/2);
}else
{
PLose+=MathAbs(OrderOpenPrice()-(Ask+Bid)/2);
}
}
}
if(PLose==0)return(10000);
return(PWin/PLose);
}
学习中大家有什么问题,难以理解的留言就可以,我会在直播间解答,也可以关注 佬佐 会定期更新;