MetaTrader(中文)编程入门教程

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

extern int bb = 0;
//非零就跟踪止赢
extern double MATrendPeriod=26;//使用 26 ?br />
int i, p2, xxx,p1, res;
double Lots;
datetime lasttime;
int init() //初始化
汇客论坛整理 www.onefx.net/bbs
{ Buffer0[pos]=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,MA_Price,pos); pos--; } } //+-------------------------------------------------例2 //+--------------------------------------------------
//| 注意没有指标文件那些 property
|
//+------------------------------------------------------------------+
extern int whichmethod = 1; //1~4 种下单方式
extern double TakeProfit = 100;
extern int MA_Period=13; extern int MA_Shift=0; extern int MA_Method=2; extern int MA_Price = 6;
double Buffer0[];
汇客论坛整理 www.onefx.net/bbs
double Buffer1[]; double Buffer2[]; double Buffer3[]; double Buffer4[]; double Buffer5[]; double Buffer6[]; //----
//---- 设置编号为0的线 与数组的对应关系, 0~6 SetIndexBuffer(0,Buffer0); SetIndexBuffer(1,Buffer1); SetIndexBuffer(2,Buffer2); SetIndexBuffer(3,Buffer3); SetIndexBuffer(4,Buffer4); SetIndexBuffer(5,Buffer5); SetIndexBuffer(6,Buffer6); return(0); }
int init() {
//-设置编号为0的线的线形等参数, 0~6,对应 indicator_color1~7 SetIndexStyle(0,DRAW_LINE); SetIndexStyle(1,DRAW_LINE); SetIndexStyle(3,DRAW_LINE); SetIndexStyle(4,DRAW_LINE); SetIndexStyle(5,DRAW_LINE); SetIndexStyle(6,DRAW_LINE);
//| 初始化准备函数,装入时调用一次 int init()
{ //-设置编号为0的线的线形等参数, 0~6,对应 indicator_color1~7
汇客论坛整理 www.onefx.net/bbs
SetIndexStyle(0,DRAW_LINE); //---- 设置编号为0的线 与数组的对应关系, 0~6
#property copyright "Copyright 2006, OKwh "
#property link ""
#define MAGICMA 200610011231
//+------------------------------------------------------------------+
double LotsOptimized() //确定下单量,开仓调用
{
double lot=Lots;
int orders=HistoryTotal(); // history orders total
int losses=0;
// number of losses orders without a break
if(lot<0.1) lot=0.1;
if(lot>maxLots) lot=maxLots;
return(lot);
}
//平仓持有的买单 void CloseBuy() { if (OrdersTotal( ) > 0 ) {
for(i=OrdersTotal()-1;i<0;i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) if(OrderType()==OP_BUY) {
{
Lots = 1;
lasttime = NULL;
Hale Waihona Puke return(0);}
int deinit() { return(0); } //反初始化
//主程序
int start()
{
CheckForOpen();
if (bb>0) CTP(); //跟踪止赢
return(0);
}
//+------下面是各子程序--------------------------------------------+
汇客论坛整理 www.onefx.net/bbs
Buffer2[pos]=iMA(NULL,0,MA_Period*3,MA_Shift,MA_Method,MA_Price,pos); pos--; } } void ma1() { int pos=Bars;
while(pos>=0) { Buffer3[pos]=iMA(NULL,0,MA_Period*4,MA_Shift,MA_Method,MA_Price,pos); Buffer4[pos]=iMA(NULL,0,MA_Period*5,MA_Shift,MA_Method,MA_Price,pos); Buffer5[pos]=iMA(NULL,0,MA_Period*6,MA_Shift,MA_Method,MA_Price,pos); Buffer6[pos]=iMA(NULL,0,MA_Period*7,MA_Shift,MA_Method,MA_Price,pos); pos--; }
#property indicator_separate_window #property indicator_buffers 7 #property indicator_color1 Red #property indicator_color2 Yellow #property indicator_color3 Blue #property indicator_color4 Green #property indicator_color5 Gray #property indicator_color6 SkyBlue #property indicator_color7 Tan
OrderClose(OrderTicket(),OrderLots(),Bid,3,White); Sleep(5000); } } } }
extern double StopLoss = 20;
extern double MaximumRisk = 0.3;
extern double TrailingStop =25;
extern int maxOpen = 3; //最多持仓限制
extern int maxLots = 5; //最多单仓限制
汇客论坛整理 www.onefx.net/bbs
MetaTrader 编程入门教程(0)----指标文件构成 汇客论坛整理 /bbs
//+-------------------------------------------------//双些线后是单行注释,用于注解,自用说明。/*和*/包起来实现多行注释,记录自己的说明 介绍,编程使用记录等 //MQL4 语言基本服从 C 语言的规则-----------注意目前 MetaEditor 处理不好多字节代码,所以 不要在代码中使用中文和中文空格-------------+ //每个指标文件只是至少包括三个部分(1)property 和参数,数组声明,(2)初始化函数 nit(),
(3)主函数 start() //property 是各种说明信息 //最重要必须的是这三种,(1)说明指标将画在价格窗口还是独立的窗口 //(2)有多少个(1~7)储存指标数据的数组,(3)说明对应将画指标的绘画颜色,编号 1~7 #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Red //---- 可设置的参数,可根据需要,由使用者设置 extern int MA_Period=13; extern int MA_Shift=0; extern int MA_Method=2; extern int MA_Price = 6; /* MA_Method = MODE_SMA 0 Simple moving average, MODE_EMA 1 Exponential moving average, MODE_SMMA 2 Smoothed moving average, MODE_LWMA 3 Linear weighted moving average. */ /* MA_Price = PRICE_CLOSE 0 Close price. PRICE_OPEN 1 Open price. PRICE_HIGH 2 High price. PRICE_LOW 3 Low price. PRICE_MEDIAN 4 Median price, (high+low)/2. PRICE_TYPICAL 5 Typical price, (high+low+close)/3. PRICE_WEIGHTED 6 Weighted close price, (high+low+close+close)/4. */ //数组,储存指标数据 double Buffer0[];
}
//+------------------------------------------------------------------+
//|
Designed by OKwh, China |
//|
Copyright 2006, OKwh |
//|
|
//+------------------------------------------------------------------+
//MarketInfo(Symbol(),MODE_MINLOT);
//MarketInfo(Symbol(),MODE_MAXLOT);
//MarketInfo(Symbol(),MODE_LOTSTEP);
lot=NormalizeDouble(MaximumRisk * AccountBalance()/AccountLeverage(),1);
SetIndexBuffer(0,Buffer0); return(0); }
int start() //指标计算主函数,每次计算调用 { ma(); return(0); }
//自定义函数,这里只是直接使用库函数实现 MA, 若你自己计算,可设计任何指标 void ma()
{ int pos=Bars; //Bars = Number of bars in the current chart.当前窗口中的蜡烛数 while(pos>=0)
// int start() //指标计算主函数,每次计算调用 {
ma(); ma1(); return(0); }
void ma() { int pos=Bars;
while(pos>=0) { Buffer0[pos]=iMA(NULL,0,MA_Period,MA_Shift,MA_Method,MA_Price,pos); Buffer1[pos]=iMA(NULL,0,MA_Period*2,MA_Shift,MA_Method,MA_Price,pos);
相关文档
最新文档