HideTestIndicators() – 隐藏测试指标
Period() – 获取图表时段
RefreshRates() – 刷新数据
Symbol() – 获取图表货币对名称
WindowBarsPerChart() – 获取图表中柱体总数
WindowExpertName() – 获取图表上程序名称
WindowFind() – 搜索图表上指标
WindowFirstVisibleBar() – 获取图表上第一个显示的柱体
WindowHandle() – 获取图表句柄
WindowIsVisible() – 图表是否可见
WindowOnDropped() – 获取窗口索引
WindowPriceMax() – 获取窗口纵坐标刻度最大值
WindowPriceMin() – 获取窗口纵坐标刻度最小值
WindowPriceOnDropped() – 获取下滑价格
WindowRedraw() – 重绘当前图表
WindowScreenShot() – 窗口图表快照
WindowTimeOnDropped() – 价格下滑时间
WindowsTotal() – 获取指标窗口数
WindowXOnDropped() – x轴下滑像素值
WindowYOnDropped() – y轴下滑像素值
HideTestIndicators() – 隐藏测试指标
void HideTestIndicators(bool hide)本函数用于设置一个供智能交易调用的隐藏指标标志。在智能交易测试完成后,打开相应图表时,标注过的指标将不会出现在测试图表中。每个被调用的指标会首先使用当前的隐藏标志进行标记。例如,在使用如AvaTrade集团提供的交易平台时,这一功能有助于保持图表的整洁,方便后续分析。
特别要注意,只有那些直接从智能交易调用的指标才可以在测试图表中画出。
参数:
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
int WindowBarsPerChart()返回当前窗口图表可见柱体(K线)总数。
示例:
// 对于可见柱工作。int bars_count=WindowBarsPerChart();int bar=WindowFirstVisibleBar();for(int i=0; i
string WindowExpertName()返回智能交易、脚本、自定义指标和库的名称,具体取决于MQL4程序的调用方式。
示例:
string name=WindowExpertName();GlobalVariablesDeleteAll(name);WindowFind() – 搜索图表上指标
int WindowFind(string name)如果发现指定名称的指标,本函数返回包含该指标的窗口索引,否则返回-1。
参数:
name - 指标名称。示例:
int win_idx=WindowFind("MACD(12,26,9)");WindowFirstVisibleBar() – 获取图表上第一个显示的柱体
int WindowFirstVisibleBar()本函数在当前图表窗口中返回第1个显示的柱体(K线)。需注意价格柱子的逆序编号,即从最后一个价格到第一个价格排列。在价格数组中,当前柱子是最新的,索引为0,最老的柱子索引为Bars-1。如果第一个显示的柱子编号为2或更高,但少于图表中能显示的柱子总数,说明图表窗口没有完全填满,离窗口侧边还有空白。
示例:
// 可见柱的工作 int bars_count=WindowBarsPerChart(); int bar=WindowFirstVisibleBar(); for(int i=0; i
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 win_handle=WindowHandle("USDX",PERIOD_H1); if(win_handle!=0) Print("发现带有USDX,H1 的窗口。数组将会被立即复制。");