[转载]MT4英汉对照
原文地址:MT4英汉对照作者:heijin4552报名表格:(必须回答全部问题)
1.姓名:__le8009________
2.年龄:__22__
3.性别:___man___
5.are u know little english? yes
6.你为什么要学习编写EA? 寻找圣杯
7.你的育苗 [email]170017111@qq.com[/email]
8.目前是否有用真钱投资外汇? yes
9.是否自己有一套投资策略? yes
10.1000的0.1%是多少? 1
11.if是什么意思? 假如 条件语句的
12.。。。。 ???
Ask=卖价
AccountEquity=账户净资产值
AccountBalance=账户余额
AccountNumber=账户号
Alert=警报
Bid=买价
Bars=图表中的柱数
break=中断
bool=bool布尔型变量
Close=收盘价格
continue=继续
case=例子
color=颜色
Comment=注释
copyright=版权
datetime=日期时间数据
double=双精度数据
Day=日
DayOfWeek=这周的第几天
default=默认
Digits=小数位
else=否则
extern=外部变量
FALSE=假
High=最高价
Hour=小时
iCustom=计算指定的客户指标并且退回它的值
iClose=计算带有时间周期和平移的指定货币对柱的收盘值
iOpen=计算带有时间周期和平移的指定货币对柱的开盘值
IsConnected=在客户终端和服务器执行数据之间函数返回主要连接状态。
IsDemo=模拟账户
IsTesting=测试模式
int=整型数据
if=如果
Low=最低价格
NULL=空状态、当前货币对
NormalizeDouble=给出环绕浮点值的精确度
Open=开盘价
OrderClosePrice=定单收盘价格
OrderMagicNumber=选定订单的指定编号
OrderCloseTime=平仓时间
OrderDelete=订单删除
OrderOpenPrice=定单开盘价格
OrderCommission=定单的佣金、手续费
OrderSwap=定单掉期值
OrderModify=订单修改
OrderTakeProfit=定单赢利值
OrderProfit=定单净盈利值
OrdersTotal=订单总数
OrderSend=开仓
OrderSymbol=定单货币对
OP_BUYLIMIT=买挂单
OP_BUYSTOP=买停挂单
OP_SELLLIMIT=卖挂单
OP_SELLSTOP=卖停挂单
Point=点
Period=使用图表周期的分钟总数
PERIOD_H1=1小时周期
PlaySound=播放声音
Print=输出
return=返回
Sleep=睡眠
Symbol=货币对名称
start=开始
TimeLocal=当前电脑时间
TimeCurrent=最后访问的服务器时间
TRUE=真
Time=时间
void=子程序
Volume=成交量
Year=年
13.数学问题:
最高线=High[1]+High[2]+High[3] / 3
最低线=Low[1]+Low[2]+Low[3] / 3
中间线= [(high[1]+low[1])/2+(high[2]+low[2])/2+(high[3]+low[3])/2]/3
14.解释EA里面常见的数学符号
< = 小于
> = 大于
<= = 小于等于
>= = 大于等于
+ = 加
- = 减
* = 乘
/ =除
= =赋值
== =等于
! =不等于
15.完成以下指标
iAC(NULL, 0, 1)
iAD(NULL,0,0)
iAlligator(NULL, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORJAW, 1)
iADX(NULL,0,14,PRICE_HIGH,MODE_MAIN,0)
iATR(NULL,0,12,0)
iAO(NULL,0,2)
iBearsPower(NULL,0,13,PRICE_CLOSE,0)
iBands(NULL,0,20,2,0,PRICE_LOW,MODE_LOWER,0)
iBandsOnArray(ExtBuffer,total,2,0,MODE_LOWER,0)
iBullsPower(NULL,0,13,PRICE_CLOSE,0)
iCCI(NULL,0,12,PRICE_TYPICAL,0)
iCCIOnArray(ExtBuffer,total,12,0)
iCustom(NULL,0,”TT”,13,1,0)
iDeMarker(NULL,0,13,0)
iEnvelopes(NULL,0,13,MODE_SMA,10,PRICE_CLOSE,0.2,MODE_UPPER,0)
iEnvelopesOnArray(ExtBuffer,0,13,MODE_SMA,0.2,MODE_UPPER,0)
iForce(NULL,0,13,MODE_SMA,PRICE_CLOSE,0)
iFractals (NULL,0,MODE_UPPER,3)
iGator(NULL, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_UPPER, 1)
iIchimoku(NULL, 0, 9, 26, 52, MODE_TENKANSEN, 1)
iBWMFI(NULL,0,0)
iMomentum(NULL,0,12,PRICE_CLOSE,0)
iMomentumOnArray(m_buffer,100,12,0)
iMFI(NULL,0,14,0)
iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,i)
iMAOnArray(ExtBuffer,0,10,0,MODE_LWMA,1)
iOsMA(NULL,0,12,26,9,PRICE_OPEN,1)
iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0)
iOBV(NULL,0,PRICE_CLOSE,1)
iSAR(NULL,0,0.02,0.2,0)
iRSI(NULL,0,14,PRICE_CLOSE,0)
iRSIOnArray(ExtBuffer,1000,14,0)
iRVI(NULL, 0, 10,MODE_MAIN,0)
iStdDev(NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0)
iStdDevOnArray(ExtBuffer,100,10,0,MODE_EMA,0)
iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0)
iWPR(NULL,0,14,0)
按f1
16.你可以分清楚下面的编写词句吗?试一试吧!
High[0] 最后一根K线最高价
iHigh(0,0,0) 当前图表周期货币对,最后一根K最高价
iHigh(0,PERIOD_H1,0) 当前图表货币对周期为1小时,最后一根K的最高价
iHigh("USDCHF",0,0) USDCHF的目前图表周期,最后一根K最高价
iHigh("USDCHF",PERIOD_H1,0) USDCHF的一小时周期图表,最后一根K最高价
High[iHighest(0,0,MODE_HIGH,0,0)] 当前图表最高值
High[iHighest(0,PERIOD_H1,MODE_HIGH,0,0)] 当前图表的1小时图的最高值
High[iHighest("USDCHF",0,MODE_HIGH,20,0)]USDCHF货币对当前周期的倒数20个柱子内最高值
High[iHighest("USDCHF",PERIOD_H1,MODE_HIGH,20,4)] USDCHF1小时图倒数第四4到20个柱子的最高值
High[iHighest("USDCHF",PERIOD_D1,MODE_HIGH,20,0)] USDCHF日线图倒数20个柱子的最高值
High[iHighest("EURUSD",PERIOD_M15,MODE_HIGH,50,1)]EURUSD15分钟图倒数第1到50个柱子的最高值 EA代码 //=====可调参数部分==============
#define Magic 20090101 //预定义的常量 Magic用于后面程序里的开仓动作时标记在订单里面的一个符号,用于区别其他EA程序下的单 防止混乱
extern int N=50; //参数 后面程序里用它作为N根K线的数量
extern int SL=100;//参数 后面程序里下单的时候用这个设置的点数作为入场时订单的止损价格。
extern int TrailingStop=30;//参数 后面程序里用这个作为移动止损的点数设置
extern double 每单手数=0.1;//参数 表示后面下单的仓位的大小
extern int 滑点偏移点数=3;//参数 表示下单时 服务器端的价格与当前看到的价格相差的范围,如果在此范围内,则允许以服务器端的价格成交
//----全局变量===================
int Tick;//用于记录订单的唯一编号
double StopLost;//用于记录止损
//========主函数部分开始============
int start()//主函数 没来一个价格这个函数就运行一次
{
int Ticket; //局部变量 用于记录每次下单后的状态,用于判断下单动作是否成功,如果不成功则做相应处理和提示
int OrderTypeNow=GetOrderTypeHolding();//通过自定义函数得到当前持仓单的交易类型 买 卖
//自定义函数中做了处理,如果没有发现当前有持仓 则返回-1
if (OrderTypeNow==-1)//空仓阶段 -1表示没有持仓的状态
{
if (TradeOrNo(1))//多单入场条件 自定义函数TradeOrNo(1)参数1 表示针对多单的方向进行判断是否满足入场条件
{
Ticket=OrderSend(Symbol(),OP_BUY,每单手数,Ask,滑点偏移点数,Ask-SL*Point,0,"",Magic,0,0);//多单入场
//Ticket表示入场动作的执行结果,如果小于0表示入场动作失败
if(Ticket<0)
{
Print("多单入场失败"+GetLastError());
return(0); //推出本次start函数的执行
}
}else
if (TradeOrNo(2))//空单入场条件
{
Ticket=OrderSend(Symbol(),OP_SELL,每单手数,Bid,滑点偏移点数,Bid+SL*Point,0,"",Magic,0,0);
if(Ticket<0)
{
Print("空单入场失败"+GetLastError());
return(0);
}
}
return;
}else//===============持仓阶段===========================
{
switch(OrderTypeNow)
{
case OP_BUY://多单持仓情况下,满足空单入场条件
if (TradeOrNo(2))
{
if(OrderClose(Tick,OrderLots(),Bid,滑点偏移点数)==false)//平掉多单持仓单
{
Print("翻转发生 多头平仓失败"+GetLastError());
return;
}else//平仓后,反手建立空单
{
Ticket=OrderSend(Symbol(),OP_SELL,每单手数,Bid,滑点偏移点数,Bid+SL*Point,0,"",Magic,0,0);
if(Ticket<0)
{
Print("空单反手建仓失败"+GetLastError());
return(0);
}
}
}else //判断移动止损
{
if (Ask>StopLost+2*TrailingStop*Point)
{
OrderModify(Tick,OrderOpenPrice(),StopLost+TrailingStop*Point,0,0,CLR_NONE);
return;
}
}
break;
case OP_SELL:
if (TradeOrNo(1))
{
if(OrderClose(Tick,OrderLots(),Ask,滑点偏移点数)==false)//平掉空单持仓单
{
Print("翻转发生 空头平仓失败"+GetLastError());
return;
}else//平仓后,反手建立多单
{
Ticket=OrderSend(Symbol(),OP_BUY,每单手数,Ask,滑点偏移点数,Ask-SL*Point,0,"",Magic,0,0);
if(Ticket<0)
{
Print("多单反手建仓失败"+GetLastError());
return(0);
}
}
}else //判断移动止损
{
if (Bid<StopLost-2*TrailingStop*Point)
{
OrderModify(Tick,OrderOpenPrice(),StopLost-TrailingStop*Point,0,0,CLR_NONE);
return;
}
}
break;
}
return;
}
return(-1);
}
//=================自定义函数部分======================================
int GetOrderTypeHolding()//从最近持仓单提取订单类型,如果没有持仓单,则认为是止赢出场或程序刚开始运行返回-1
{int Type=-1;
//int temptime=0;
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic )
{
Type=OrderType();
Tick=OrderTicket();
StopLost=OrderStopLoss();
}
}
return(Type);
}
//======================================================
bool TradeOrNo(int Type)//判断当前指定方向的入场条件是否成立
{
double NHigh=High[iHighest(Symbol(),0,MODE_HIGH,N,2)];
double NLow=Low[iLowest(Symbol(),0,MODE_LOW,N,2)];
switch(Type)
{
case 1://判断多单入场条件是否成立
if (Close[1]>NHigh)//做多条件成立
{
return(true);
}
break;
case 2:
if (Close[1]<NLow)//做空条件成立
{
return(true);
}
break;
}
return(false);
页:
[1]