MQL4 Reference MQL4命令手册(完整版)
OrderType
int OrderType( )
对于当前选择定单返回定单类型。可以是以下的任意值:
OP_BUY -买进,
OP_SELL - 卖出,
OP_BUYLIMIT - 挂单买入限定,
OP_BUYSTOP - 挂单停止限定,
OP_SELLLIMIT - 挂单卖出限定,
OP_SELLSTOP - 挂单停止限定。
注解: 定单必须由OrderSelect()函数选择。
示例:
int order_type;
if(OrderSelect(12, SELECT_BY_POS)==true)
{
order_type=OrderType();
// ...
}
else
Print("OrderSelect() 返回错误 - ",GetLastError());
|
|
|
|
|
Window functions窗口函数
当前图表窗口的一组函数。
HideTestIndicators隐藏指标
void HideTestIndicators( bool hide)
函数设置使用智能交易隐藏指标。在交易被测试以后打开相应的图表,标出的指标将不会出现在测试图表中。 查看每个指标需应用当前隐藏的标记和第一个标记。
必须注明只有这些指标才可以在测试图表中画出。
参量:
hide - 如果需要隐藏指标为TRUE,否则为FALSE。
示例:
HideTestIndicators(true);
MaCurrent=iMA(NULL,0,56,0,MODE_EMA,PRICE_CLOSE,0);
MaPrevious=iMA(NULL,0,56,0,MODE_EMA,PRICE_CLOSE,1);
HideTestIndicators(false);
|
|
|
|
|
Period使用周期
int Period( )
返回使用 周期 (图表周期)的分钟总数。
示例:
Print("时间周期 ", Period());
RefreshRates刷新预定义变量和系列数组的数据
bool RefreshRates( )
刷新预定义变量和系列数组的数据。在智能交易计算时间过长时,这个功能可以自动更新数据。如果数据刷新,返回到TRUE, 否则返回到FALSE。只有在客户端内的数据不被更新。如果数据已经更新,接下来输入的行情也一样被更新。
智能交易和脚本只管理本身历史数据的复制本。在智能交易和脚本第一次开启 的时候,当前的商品数据已经复制。 每次智能或脚本开启时,最初的复制本会更新。智能和脚本运作时,数据可能已经过期。
示例:
int ticket;
while(true)
{
ticket=OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,0,"expert comment",255,0,CLR_NONE);
if(ticket<=0)
{
int error=GetLastError();
//---- 资金不足
if(error==134) break;
//---- 10 秒钟等待
Sleep(10000);
//---- 刷新价格数据
RefreshRates();
break;
}
else
{
OrderSelect(ticket,SELECT_BY_TICKET);
OrderPrint();
break;
}
}
|
|
|
|
|
Symbol当前货币对
string Symbol( )
带有当前货币对名称返回字串符文本。
示例:
int total=OrdersTotal();
for(int pos=0;pos<total;pos++)
{
// 因为此时可能平单或删除定单,检测选择结果!
if(OrderSelect(pos, SELECT_BY_POS)==false) continue;
if(OrderType()>OP_SELL || OrderSymbol()!=Symbol()) continue;
// 执行过程...
}
|
|
|
|
|
WindowBarsPerChart可见柱总数
int WindowBarsPerChart( )
在图表上函数返回可见柱总数。
示例:
// 对于可见柱工作。
int bars_count=WindowBarsPerChart();
int bar=WindowFirstVisibleBar();
for(int i=0; i<bars_count; i++,bar--)
{
// ...
}
|
|
|
|
|
WindowExpertName智能交易系统名称
string WindowExpertName( )
从调用函数返回MQL4程序中独立执行智能交易,脚本,客户指标和数据库的名称。
示例:
string name=WindowExpertName();
GlobalVariablesDeleteAll(name);
|
|
|
|
|
WindowFind返回名称
int WindowFind( string name)
如果发现指标 名称,函数返回包含特殊指标的窗口索引,否则返回 -1。
注解: 如果当init()函数运行时,客户指标搜索到本身,则WindowFind()函数返回 -1 。
参量:
name - 指标简称。
示例:
int win_idx=WindowFind("MACD(12,26,9)");
|
|
|
|
|
WindowFirstVisibleBar第一个可见柱
int WindowFirstVisibleBar( )
在当前图表窗口函数返回第一个可见柱。必须考虑到价格柱的逆序编号,即从最后一 价格数组中的最后一个指示为0。最老得柱被索引为柱-1。如果第一个柱的编码为2 或少于图表中可见柱的总数,意味着图表窗口没有被完整填充。
示例:
// 可见柱的工作
int bars_count=WindowBarsPerChart();
int bar=WindowFirstVisibleBar();
for(int i=0; i<bars_count; i++,bar--)
{
// ...
}
|
|
|
|
|
WindowHandle
int WindowHandle( string symbol, int timeframe)
返回包含特定图表的系统窗口。 如果货币对和 时间周期的图表暂时还没有开启,显示为0。
参量:
symbol - 货币对名称。
timeframe - 时间周期。可以是时间周期列举的任意值。 0意味着当前图表的时间周期。
示例:
int win_handle=WindowHandle("USDX",PERIOD_H1);
if(win_handle!=0)
Print("发现带有USDX,H1 的窗口。数组将会被立即复制。");
|
|
|
|
|
WindowIsVisible图表在子窗口中可见
bool WindowIsVisible( int index)
如果图表在子窗口中可见,返回TRUE,否则返回FALSE。 子图表窗口可以隐藏于指标的可见属性位置。
参量:
index - 图表自窗口索引。
示例:
int maywin=WindowFind("MyMACD");
if(maywin>-1 && WindowIsVisible(maywin)==true)
Print("MyMACD窗口可见");
else
Print(" MyMACD窗口未发现或不可见");
|
|
|
|
|