麦田里的守望者:mt4编程→简明教程+速成基础

来源:百度文库 编辑:九乡新闻网 时间:2024/04/27 18:37:43

mt4编程→简明教程+速成基础

mt4编程→简明教程+速成基础
第一篇 创建新文件
1、打开 MetaEditor (如何打开自己想办法)呵呵,如果这个都打不开,拜托下面的也不用看了。也许你不适合研究这个。
2、选择文件-->新文件 打开文件创建页面。
3、选择第二项 客户指标 然后点下一步。
注:这个页面可以创建6种文件。我们常用的有 《客户指标》,《脚本》,《智能交易系统》三种。我们先从指标开始。
4、输入名字,作者等等。(支持中文)暂时不添加参数。
注:这个位置可以添加用户变量以后讲解。
5、下一步 我们先建一个主窗口指标 所以这个页面什么都不用操作
注:这个位置可以添加指标“线”。以后提及。
6、点击完成。
ok新的指标文件生成了。但还没有任何有用的代码。初始化代码齐全。

//+------------------------------------------------------------------+
//|                                              MT4指标编辑.mq4 |
//|                                        |
//+------------------------------------------------------------------+
#property link "http://www.imt4.com"

#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                   |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function                         |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----

//----
return(0);
}
//+------------------------------------------------------------------+
上面的就是刚刚新建的一个指标文件。
第一部分 指标注释 只是一个说明,有没有都不影响指标运行。
//+------------------------------------------------------------------+
//|                                              MT4指标编辑.mq4 |
//|                              
//+------------------------------------------------------------------+
这部分中前面的 “//” 两个斜线 说明后面的是注释语句,不参与实际运行。
第二部分 预处理语句 这部分规定了指标的窗口性质。如下:
#property copyright "ldj"
#property link "http://www.imt4.com"

#property indicator_chart_window
#号表示后面是预处理语句。
property 的意思是定义mt4内部变量的性质。变量名是mt4定义好的只能用固定的变量名。
例如:版权变量 copyright 链接变量 link 以及指标窗口类型变量indicator_chart_window等等。
其中窗口类型变量有indicator_chart_window(主窗口)indicator_separate_window(副窗口)两个这里只能用一个不能两个同时用
这部分内容一般不需要修改。
第三部分 初始化函数(加载函数)
//+------------------------------------------------------------------+
//| Custom indicator initialization function                   |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
//----
return(0);
}
这个函数中的代码只在只在指标(EA)加载的时候执行一次。用于对一些变量的初始化。
去初注释函数体为
int init()
{
return(0);
}
第三部分 卸载函数
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
当去初指标(EA)的时候执行一次。用于去除一些控件。
去除注释函数体为
int deinit()
{
return(0);
}
第四部分 主函数,每当价格变化时就调用执行一次。主要执行代码都在这里。
//+------------------------------------------------------------------+
//| Custom indicator iteration function                         |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----

//----
return(0);
}
第五部分 子函数。有些指标和EA含有子函数。我习惯写在后面。

★★★★★什么是MT4?
我就当你了解什么是MT4了
MT4就是META TRADER 4什么是EA?
我也当你了解什么是EA了
EA 就是 Expert Adviser
EA 就是智能交易系统
智能教育系统就是:
-软件自己判断下订单
-软件自己判断提成利润
-软件自己判断砍仓止输什么是速成班?
就是你在很短很快的时间内就可以学会如何编写EA
是的,快则8个学习小时
慢则24个学习小时什么叫“易学难精”?
就是你很快的就上手,难在成为厉害的高手。
这需要时间慢慢的去研究编写。
久而久之你就可以是EA编写高手了。第一课::了解EA的形式以下就是EA的编写形式//
+------------------------------------------------------------------+
//| Copyright ?2007, MetaQuotes Software Corp. |
//|
//+------------------------------------------------------------------+
#property copyright "Copyright ?2007, MetaQuotes Software Corp."
#property link "http://www.imt4.com"
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----//----
return(0);
}
//+------------------------------------------------------------------+ 
//+------------------------------------------------------------------+
//| Copyright ?2007, MetaQuotes Software Corp. |
//|
//+------------------------------------------------------------------+这个是在上面的垃圾
写与不写都无所谓
我们就不用理他#property copyright "Copyright ?2007, MetaQuotes Software Corp."
#property link "http://www.imt4.com"这个也是在上面的垃圾
写与不写都无所谓
我们也不用理他
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//以后可能有用到
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//以后可能有用到
//----
return(0);
}这两个很少用到。高高手才会用
速成班的话,这个可以不用理他。
放在一边先,以后才学怎样用它。
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
//主程式
//----
return(0);
}
//+------------------------------------------------------------------+
这个就是EA开始操作的重要部分
以上的EA的编写形式我们改成如下:
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
/以后可能有用到
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
/以后可能有用到
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
//主程式
//----
return(0);
}
//+------------------------------------------------------------------+ 什么是“.mq4”?
EA制作好了就save成.mq4的文件
这文件是可以修改的什么是“.ex4”?
EA制作好了
按“编写”就会自动save成.ex4的文件
这文件是不可以被修改的
这文件是加密的
可以出售的文件。
第二课:EA重要部分回到EA重要部分
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
//主程式
//----
return(0);
}
//+------------------------------------------------------------------+
 
我们要知道EA是由上面往下读的
所以我们在编写方面要有逻辑思考
以下是速成班编写的形式//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----MoneyManagement();
macd();
ma();
zhangchang();
buyme();
sellme();
xianshi();
//----
return(0);
}
//+------------------------------------------------------------------+
void MoneyManagement() {
}
//+------------------------------------------------------------------+
void macd() {
}
//+------------------------------------------------------------------+
void ma() {
}
//+------------------------------------------------------------------+
void zhangchang() {
}
//+------------------------------------------------------------------+
void buyme() {
}
//+------------------------------------------------------------------+
void sellme() {
}
//+------------------------------------------------------------------+
void buyme() {
}
//+------------------------------------------------------------------+
void xianshi() {

}
/+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//以后可能有用到
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//以后可能有用到
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
//主程式
MoneyManagement();//资金管理
macd();//指标管理
ma();//指标管理
zhangchang();//战场管理
buyme();//买上
sellme();//买下
xianshi();//显示管理//----
return(0);
}
//+------------------------------------------------------------------+
void MoneyManagement() {
//子程式
//这边要写一些东西
}
//+------------------------------------------------------------------+
void macd() {
//子程式
//这边要写一些东西
}
//+------------------------------------------------------------------+
void ma() {
//子程式
//这边要写一些东西
}
//+------------------------------------------------------------------+
void zhangchang() {
///子程式
//这边要写一些东西
}
//+------------------------------------------------------------------+
void buyme() {
//子程式
//这边要写一些东西
}
//+------------------------------------------------------------------+
void sellme() {
//子程式
//这边要写一些东西
}
//+------------------------------------------------------------------+
void buyme() {
//子程式
//这边要写一些东西
}
//+------------------------------------------------------------------+
void xianshi() {
//子程式
//这边要写一些东西
}
//+------------------------------------------------------------------+
/////end(转)