EA狙击手
发表于 2013-7-19 23:35:46
MQL4 运行错误代码
常数 值 描述
ERR_NO_MQLERROR 4000 没有错误。
ERR_WRONG_FUNCTION_POINTER 4001 错误函数指示。
ERR_ARRAY_INDEX_OUT_OF_RANGE 4002 数组索引超出范围。
ERR_NO_MEMORY_FOR_CALL_STACK 4003 对于调用堆栈储存器函数没有足够内存。
ERR_RECURSIVE_STACK_OVERFLOW 4004 循环堆栈储存器溢出。
ERR_NOT_ENOUGH_STACK_FOR_PARAM 4005 对于堆栈储存器参量没有内存。
ERR_NO_MEMORY_FOR_PARAM_STRING 4006 对于字行参量没有足够内存。
ERR_NO_MEMORY_FOR_TEMP_STRING 4007 对于字行没有足够内存。
ERR_NOT_INITIALIZED_STRING 4008 没有初始字行。
ERR_NOT_INITIALIZED_ARRAYSTRING 4009 在数组中没有初始字串符。
ERR_NO_MEMORY_FOR_ARRAYSTRING 4010 对于数组没有内存。
ERR_TOO_LONG_STRING 4011 字行过长。
ERR_REMAINDER_FROM_ZERO_DIVIDE 4012 余数划分为零。
ERR_ZERO_DIVIDE 4013 零划分。
ERR_UNKNOWN_COMMAND 4014 不明命令。
ERR_WRONG_JUMP 4015 错误转换(没有常规错误)。
ERR_NOT_INITIALIZED_ARRAY 4016 没有初始数组。
ERR_DLL_CALLS_NOT_ALLOWED 4017 禁止调用DLL 。
ERR_CANNOT_LOAD_LIBRARY 4018 数据库不能下载。
ERR_CANNOT_CALL_FUNCTION 4019 不能调用函数。
ERR_EXTERNAL_CALLS_NOT_ALLOWED 4020 禁止调用智能交易函数。
ERR_NO_MEMORY_FOR_RETURNED_STR 4021 对于来自函数的字行没有足够内存。
ERR_SYSTEM_BUSY 4022 系统繁忙 (没有常规错误)。
ERR_INVALID_FUNCTION_PARAMSCNT 4050 无效计数参量函数。
ERR_INVALID_FUNCTION_PARAM值 4051 无效参量值函数。
ERR_STRING_FUNCTION_INTERNAL 4052 字行函数内部错误。
ERR_SOME_ARRAY_ERROR 4053 一些数组错误。
ERR_INCORRECT_SERIESARRAY_USING 4054 应用不正确数组。
ERR_CUSTOM_INDICATOR_ERROR 4055 自定义指标错误。
ERR_INCOMPATIBLE_ARRAYS 4056 不协调数组。
ERR_GLOBAL_VARIABLES_PROCESSING 4057 整体变量过程错误。
ERR_GLOBAL_VARIABLE_NOT_FOUND 4058 整体变量未找到。
ERR_FUNC_NOT_ALLOWED_IN_TESTING 4059 测试模式函数禁止。
ERR_FUNCTION_NOT_CONFIRMED 4060 没有确认函数
ERR_SEND_MAIL_ERROR 4061 发送邮件错误。
ERR_STRING_PARAMETER_EXPECTED 4062 字行预计参量。
ERR_INTEGER_PARAMETER_EXPECTED 4063 整数预计参量。
ERR_DOUBLE_PARAMETER_EXPECTED 4064 双预计参量。
ERR_ARRAY_AS_PARAMETER_EXPECTED 4065 数组作为预计参量。
ERR_HISTORY_WILL_UPDATED 4066 刷新状态请求历史数据。
ERR_TRADE_ERROR 4067 交易函数错误。
ERR_END_OF_FILE 4099 文件结束。
ERR_SOME_FILE_ERROR 4100 一些文件错误。
ERR_WRONG_FILE_NAME 4101 错误文件名称。
ERR_TOO_MANY_OPENED_FILES 4102 打开文件过多。
ERR_CANNOT_OPEN_FILE 4103 不能打开文件。
ERR_INCOMPATIBLE_FILEACCESS 4104 不协调文件。
ERR_NO_ORDER_SELECTED 4105 没有选择定单。
ERR_UNKNOWN_SYMBOL 4106 不明货币对。
ERR_INVALID_PRICE_PARAM 4107 无效价格。
ERR_INVALID_TICKET 4108 无效定单编码。
ERR_TRADE_NOT_ALLOWED 4109 不允许交易。
ERR_LONGS_NOT_ALLOWED 4110 不允许长期。
ERR_SHORTS_NOT_ALLOWED 4111 不允许短期。
ERR_OBJECT_ALREADY_EXISTS 4200 定单已经存在。
ERR_UNKNOWN_OBJECT_PROPERTY 4201 不明定单属性。
ERR_OBJECT_DOES_NOT_EXIST 4202 定单不存在。
ERR_UNKNOWN_OBJECT_TYPE 4203 不明定单类型。
ERR_NO_OBJECT_NAME 4204 没有定单名称。
ERR_OBJECT_COORDINATES_ERROR 4205 定单坐标错误。
ERR_NO_SPECIFIED_SUBWINDOW 4206 没有指定子窗口。
ERR_SOME_OBJECT_ERROR 4207 定单一些函数错误。
EA狙击手
发表于 2013-7-19 23:36:05
Predefined variables预定义变量
对于每个执行的MQL4程序,一定数量的变量设定可以轻松应对图表中的价格状态:智能交易,脚本或者是客户指标。.
资料应用到可变量的模型中来。
可以由预定义的变量分开处理。 这些数据会在开启后应用 RefreshRates()函数更新。
Ask最新卖价
double Ask
对于当前货币对的最新卖价格。使用RefreshRates()函数更新。
参见 MarketInfo().
示例:
if(iRSI(NULL,0,14,PRICE_CLOSE,0)<25)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point,Ask+TakeProfit*Point,
"My order #2",3,D'2005.10.10 12:30',Red);
return;
}
Bars柱数
int Bars
返回图表中的柱数。
参见 iBars().
示例:
int counter=1;
for(int i=1; i<=Bars; i++)
{
Print(关闭);
}
Bid最新买价
double Bid
对于当前货币对的最新买价格。使用RefreshRates()函数更新。
参见 MarketInfo().
示例:
if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
{
OrderSend("EURUSD",OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point,
"My Order #2",3,D'2005.10.10 12:30',Red);
return(0);
}
EA狙击手
发表于 2013-7-19 23:36:16
Close[]收盘价
double Close[]
系列数组包含当前图表每个柱的收盘价格。
系列数组元素被索引入倒序的定单,即从最后一个到第一个。. 当前最后一个柱在数组中的索引为0。图表中的第一个柱的索引为Bars-1.
参见 iClose().
示例:
int handle = FileOpen("file.csv", FILE_CSV|FILE_WRITE, ";");
if(handle>0)
{
// 表格栏标题记录
FileWrite(handle, "Time;Open;High;Low;Close;Volume");
// 数据记录
for(int i=0; i<Bars; i++)
FileWrite(handle, Time, Open, High, Low, Close, Volume);
FileClose(handle);
}
EA狙击手
发表于 2013-7-19 23:36:24
Digits汇率小数位
int Digits
返回当前货币对的汇率小数位
参见 MarketInfo().
示例:
Print(DoubleToStr(Close, 小数位));
EA狙击手
发表于 2013-7-19 23:36:33
High[]最高价
double High[]
系列数组包含当前图表每个柱的最高价格。
系列数组元素被索引入倒序的定单,即从最后一个到第一个。. 当前最后一个柱在数组中的索引为0。图表中的第一个柱的索引为 Bars-1.
参见 iHigh().
示例:
//---- 最大值
i=Bars-KPeriod;
if(counted_bars>KPeriod) i=Bars-counted_bars-1;
while(i>=0)
{
double max=-1000000;
k = i + KPeriod-1;
while(k>=i)
{
price=High;
if(max<price) max=price;
k--;
}
HighesBuffer=max;
i--;
}
//----
EA狙击手
发表于 2013-7-19 23:36:43
Low[]最低价
double Low[]
系列数组包含当前图表每个柱的最低价格。
系列数组元素被索引入倒序的定单,即从最后一个到第一个。. 当前最后一个柱在数组中的索引为0。图表中的第一个柱的索引为 Bars-1.
参见 iLow().
示例:
//---- 最小值
i=Bars-KPeriod;
if(counted_bars>KPeriod) i=Bars-counted_bars-1;
while(i>=0)
{
double min=1000000;
k = i + KPeriod-1;
while(k>=i)
{
price=Low;
if(min>price) min=price;
k--;
}
LowesBuffer=min;
i--;
}
//----
EA狙击手
发表于 2013-7-19 23:36:55
Open[]开盘价
double Open[]
系列数组包含当前图表每个柱的开盘价格。
系列数组元素被索引入倒序的定单,即从最后一个到第一个。. 当前最后一个柱在数组中的索引为0。图表中的第一个柱的索引为Bars-1.
参见 iOpen().
示例:
i = Bars - counted_bars - 1;
while(i>=0)
{
double high= High;
double low = Low;
double open= Open;
double close = Close;
AccumulationBuffer = (close-low) - (high-close);
if(AccumulationBuffer != 0)
{
double diff = high - low;
if(0==diff)
AccumulationBuffer = 0;
else
{
AccumulationBuffer /= diff;
AccumulationBuffer *= Volume;
}
}
if(i<Bars-1) AccumulationBuffer += AccumulationBuffer;
i--;
}
EA狙击手
发表于 2013-7-19 23:37:04
Point点值
double Point
返回当前图表的点值
参见 MarketInfo().
示例:
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point);
EA狙击手
发表于 2013-7-19 23:37:13
Time[]开盘时间
datetime Time[]
系列数组包含当前图表的每个柱开盘时间。数据像日期时间一样呈现时间,从1979年1月1日零点开始以秒计算。
系列数组元素被索引入倒序的定单,即从最后一个到第一个。当前最后一个柱在数组中的索引为0。图表中的第一个柱的索引为 Bars-1.
参见 iTime().
示例:
for(i=Bars-2; i>=0; i--)
{
if(High > LastHigh) LastHigh = High;
if(Low < LastLow) LastLow= Low;
//----
if(TimeDay(Time) != TimeDay(Time))
{
P = (LastHigh + LastLow + Close)/3;
R1 = P*2 - LastLow;
S1 = P*2 - LastHigh;
R2 = P + LastHigh - LastLow;
S2 = P - (LastHigh - LastLow);
R3 = P*2 + LastHigh - LastLow*2;
S3 = P*2 - (LastHigh*2 - LastLow);
LastLow= Open;
LastHigh = Open;
}
//----
PBuffer= P;
S1Buffer = S1;
R1Buffer = R1;
S2Buffer = S2;
R2Buffer = R2;
S3Buffer = S3;
R3Buffer = R3;
}
EA狙击手
发表于 2013-7-19 23:37:28
Volume[]成交量
double Volume[]
系列数组包含当前图表每个柱价格变动成交量。
系列数组元素被索引入倒序的定单,即从最后一个到第一个。. 当前最后一个柱在数组中的索引为0。图表中的第一个柱的索引为 Bars-1.
参见 iVolume().
示例:
if(i==0 && time0<i_time+periodseconds)
{
d_volume += Volume;
if(Low<d_low) d_low = Low;
if(High>d_high) d_high = High;
d_close = Close;
}
last_fpos = FileTell(ExtHandle);
last_volume = Volume;
FileWriteInteger(ExtHandle, i_time, LONG_VALUE);
FileWriteDouble(ExtHandle, d_open, DOUBLE_VALUE);
FileWriteDouble(ExtHandle, d_low, DOUBLE_VALUE);
FileWriteDouble(ExtHandle, d_high, DOUBLE_VALUE);
FileWriteDouble(ExtHandle, d_close, DOUBLE_VALUE);
FileWriteDouble(ExtHandle, d_volume, DOUBLE_VALUE);
页:
1
2
3
4
5
[6]
7
8
9
10
11
12
13
14
15