2赞

357评论

14收藏

MQL4 Reference MQL4命令手册(完整版)

 

评论|共 357 个

EA狙击手

发表于 2013-7-22 08:24:18 | 显示全部楼层

iOpen
double iOpen( string symbol, int timeframe, int shift)
对于带有时间周期和平移指定货币对 的柱返回 开价格值。如果加载历史为空,函数返回0。
对于当前图表,关于开价格的信息在预定义数组中命名为 Open[].
参量:
symbol   -   需应用到计算指标的货币对数据 NULL 意味当前货币对名称。。
timeframe   -   时间周期。可以是时间周期列举的任意值。0 意味着当前图表的时间周期。
shift   -   从指标缓冲器上获取的价格值指数。
示例:
  Print("对于USDCHF H1当前柱: ",iTime("USDCHF",PERIOD_H1,i),", ",  iOpen("USDCHF",PERIOD_H1,i),", ",
                                      iHigh("USDCHF",PERIOD_H1,i),", ",  iLow("USDCHF",PERIOD_H1,i),", ",
                                      iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));

EA狙击手

发表于 2013-7-22 08:24:29 | 显示全部楼层

iTime
datetime iTime( string symbol, int timeframe, int shift)
对于带有时间周期和平移指定货币对 的柱返回 时间值。如果加载历史为空,函数返回0。
对于当前图表,关于时间的信息在预定义数组中命名Time[].
参量:
symbol   -   需应用到计算指标的货币对数据 NULL 意味当前货币对名称。。
timeframe   -   时间周期。可以是时间周期列举的任意值。0 意味着当前图表的时间周期。
shift   -   从指标缓冲器上获取的价格值指数。
示例:
  Print("对于USDCHF H1当前货币对: ",iTime("USDCHF",PERIOD_H1,i),", ",  iOpen("USDCHF",PERIOD_H1,i),", ",
                                      iHigh("USDCHF",PERIOD_H1,i),", ",  iLow("USDCHF",PERIOD_H1,i),", ",
                                      iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));

EA狙击手

发表于 2013-7-22 08:25:16 | 显示全部楼层

iVolume
double iVolume( string symbol, int timeframe, int shift)
对于带有时间周期和平移指定货币对 的柱返回 价格变动成交量值。如果加载历史为空,函数返回0。
对于当前图表,关于成交量的信息在预定义数组中命名Volume[].
参量:
symbol   -   需应用到计算指标的货币对数据 NULL 意味当前货币对名称。。
timeframe   -   时间周期。可以是时间周期列举的任意值。0 意味着当前图表的时间周期。
shift   -   从指标缓冲器上获取的价格值指数。
示例:
  Print("对于USDCHF H1的当前柱: ",iTime("USDCHF",PERIOD_H1,i),", ",  iOpen("USDCHF",PERIOD_H1,i),", ",
                                      iHigh("USDCHF",PERIOD_H1,i),", ",  iLow("USDCHF",PERIOD_H1,i),", ",
                                      iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));

EA狙击手

发表于 2013-7-22 08:25:30 | 显示全部楼层

Trading functions交易函数
交易管理的一组函数。
从自定义指标中不能调用OrderSend(), OrderClose, OrderCloseBy, OrderDelete和OrderModify 交易函数。
交易函数应用于智能交易和脚本中。如果检验智能交易的“允许实事交易”属性,交易函数不能调用。
来自智能交易和脚本的交易在程序中只能有一个开启。这就是为什么如果交易业务忙,其他交易或脚本在此时不能调用的原因,由于错误 146 (ERR_TRADE_CONTEXT_BUSY)。 使用IsTradeAllowed()函数检测交易或没有交易。 弄清交易访问模式,可以使用改变GlobalVariableSetOnCondition()函数整体变量值。

EA狙击手

发表于 2013-7-22 08:25:40 | 显示全部楼层

Execution errors错误代码
任何交易业务(OrderSend(), OrderClose, OrderCloseBy, OrderDelete 和 OrderModify函数)都会因为一些原因导致失败,并且返回负值票据数 或FALSE。 您可以查看GetLastError()函数得知错误的问题所在。 每一个错误必须以不同的方式加以处理。最常见的建议列举如下:
从交易服务器返回的错误代码
数据 应用RefreshRates 函数重试。

EA狙击手

发表于 2013-7-22 08:25:53 | 显示全部楼层

常数        值        描述
ERR_NO_ERROR        0        交易业务成功。
ERR_NO_RESULT        1        OrderModify 尝试去还原已经设定好的相同值。一个或多个值必须改变,然后修改尝试重复.
ERR_COMMON_ERROR        2        常规错误。直到错误清晰为止,所有交易必须停止运行。 如果需要客户端的交易系统必须重启。
ERR_INVALID_TRADE_参量        3        无效参量, 例如, 货币对错误,未知 交易业务, 不存在票数等等。程序逻辑必须修改。
ERR_SERVER_BUSY        4        交易服务器忙。稍后请重新尝试。
ERR_OLD_VERSION        5        客户端的旧版本。客户端的最新版本必须初始化。
ERR_NO_CONNECTION        6        交易服务器没有联接。需要确认连接没有断开(例如,应用 IsConnected 函数) 在5秒之后重试。
ERR_TOO_FREQUENT_REQUESTS        8        请求过于频繁。过于频繁的请求必须减少,程序逻辑需要改变。
ERR_ACCOUNT_DISABLED        64        账户被禁止。所有运行交易必须停止。
ERR_INVALID_ACCOUNT        65        账号无效。所有运行交易必须停止。
ERR_TRADE_TIMEOUT        128        交易超时。在重试前必须确认交易业务确实没有成功(存在未修改或未删除的定单)
ERR_INVALID_PRICE        129        无效开价格或报价格。稍后必须刷新 数据应用 /RefreshRates.html">RefreshRates函数重试。 如果错误没有消失,尝试停止所有运行交易,改变程序逻辑。
ERR_INVALID_STOPS        130        Stops 太近或是价格计算错误。 需要刷新数据 /RefreshRates.html">RefreshRates 函数重试 如果错误没有消失,尝试停止所有运行交易,改变程序逻辑。
ERR_INVALID_TRADE_VOLUME        131        无效交易值。 尝试停止所有运行交易,改变程序逻辑。
ERR_MARKET_CLOSED        132        市场关闭。稍后重新尝试。
ERR_TRADE_DISABLED        133        交易被禁止。所有运行交易必须停止。
ERR_NOT_ENOUGH_MONEY        134        没有足够的资金。带有相同参量的交易必须重复。稍后用小额的资金重试, 确定没有足够的资金完成交易。
ERR_PRICE_CHANGED        135数据 应用RefreshRates 函数重试。        
ERR_OFF_QUOTES        136        没有报价格 数据 应用RefreshRates 函数重试。
ERR_REQUOTE        138        重新请求报价格。刷新数据 可以应用 RefreshRates 函数重试。 如果错误没有消失,尝试停止所有运行交易,改变程序逻辑。
ERR_ORDER_LOCKED        139        交易定单被锁住。尝试停止所有运行交易,改变程序逻辑。
ERR_LONG_POSITIONS_ONLY_ALLOWED        140        只允许买进。SELL不再重复。
ERR_TOO_MANY_REQUESTS        141        请求过多。 过多的请求必须减少,程序逻辑需要改变。
        142        定单按次序排列。它不是一个错误,而是客户端和服务器交易之间一个代码。当断开或重新连接执行交易时, 这种代码的出现次数非常少。此代码与误差128 一样处理。
        143        定单已经被执行交易商接受。它不是一个错误,而是客户端和服务器交易之间一个代码。当断开或重新连接执行交易时, 这种代码的出现次数非常少。此代码与误差128 一样处理。
        144        在手动确认期间定单已经被客户放弃。它不是一个错误,而是客户端和服务器交易之间一个代码。
ERR_TRADE_MODIFY_DENIED        145        修改被否定。由于太近或被锁定。 数据 应用RefreshRates 函数重试。

ERR_TRADE_CONTEXT_BUSY        146        交易繁忙。只有在IsTradeContextBusy函数错误返回后重试。
ERR_TRADE_EXPIRATION_DENIED        147        否定挂单交易期限。如果期限为零可以重试。
ERR_TRADE_TOO_MANY_ORDERS        148        开仓和挂单交易总数已经达到经纪人设定。 只有在现有仓位关闭或删除之后才可以开新仓位或挂单。

EA狙击手

发表于 2013-7-22 08:26:04 | 显示全部楼层

OrderClose平仓
bool OrderClose(int ticket, double lots, double price, int slippage, void Color)
对定单进行平仓操作。如果函数成功,返回的值是真实的。如果函数失败,返回的值是假的。获得详细错误信息,请查看GetLastError()函数。
参量:
ticket          -          定单编号。
lots          -          手数。
price          -          收盘价格。
slippage          -          最高划点数。
Color          -          图表中标记颜色。如果参量丢失,CLR_NONE值将不会在图表中画出。
示例:
  if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
    {
     OrderClose(order_id,1,Ask,3,Red);
     return(0);
    }

EA狙击手

发表于 2013-7-22 08:26:18 | 显示全部楼层

OrderCloseBy反向定单平仓
bool OrderCloseBy( int ticket, int opposite, void Color)
用相反定单对打开仓位进行平仓操作。如果函数成功,返回的值是真实的。如果函数失败,返回的值是假的。获得详细错误信息,请查看GetLastError()函数。
参量:
ticket          -          定单编号。
opposite          -          相对定单编号
Color          -          图表中标记颜色。如果参量丢失,CLR_NONE值将不会在图表中画出
示例:
  if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
    {
     OrderCloseBy(order_id,opposite_id);
     return(0);
    }

EA狙击手

发表于 2013-7-22 08:26:26 | 显示全部楼层

OrderClosePrice当前订单收盘价
double OrderClosePrice()
对于当前选择定单返回收盘价格。
注解:定单必须用OrderSelect()函数提前选定。
示例:
  if(OrderSelect(ticket,SELECT_BY_POS)==true)
    Print("对于定单 ",定单编号" = ",OrderClosePrice()的收盘价格);
  else
    Print("OrderSelect 失败错误代码是",GetLastError());

EA狙击手

发表于 2013-7-22 09:52:30 | 显示全部楼层

OrderCloseTime当前订单平仓时间
datetime OrderCloseTime()
对于当前选择定单返回平仓时间。如果定单时间不是0,所选定单会从账户历史重新尝试。开仓和挂单交易平仓时间必须等于 0。
注解:定单必须用OrderSelect()函数提前选定。
示例:
  if(OrderSelect(10,SELECT_BY_POS,MODE_HISTORY)==true)
    {
     datetime ctm=OrderOpenTime();
     if(ctm>0) Print("定单10 "开仓时间, ctm);
     ctm=OrderCloseTime();
     if(ctm>0) Print("定单 10 "平仓时间, ctm);
    }
  else
    Print("OrderSelect失败错误代码是",GetLastError());

您需要登录后才可以回帖 登录 | 注册 微信登录

EA之家评论守则