5.20 Window functions窗口函数

5.20  Window functions窗口函数

关于当前图表窗日的一组函数。

5.20.1  HideTestlndicators隐藏指标

void HideTestlndicators(bool hide)

设置使用A能交易隐藏指标。在交易被测试以后打开相应的图表,标出的指标将不会出现在测试图表中。查看每个指标需应用当前隐藏的标记和第一个标记。

注意:必须注明只有这些指标才可以在测试图表中画出。

【参量】

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);

HideTestlndicators ( false );

5.20.2  Period使用周期

int Period)

返回使用周期(图表周期)的分钟总数。

【示例】

Print”时间周期”,Period ( ) ) ;

5.20.3  RefreshRates刷新预定义变量和系列数组的数据

bool RefreshRates()

刷新预定义变量和系列数组的数据。在智能交易计算时间过长时,这个功能可以自动更新数据。如果数据刷新,返回到TRUE;否则,返回到FALSE。只有在客户端内的数据不被更新。如果数据已经更新,接下来输人的行情也一样被更新。

智能交易和脚本只管理本身历史数据的复制本。在智能交易和脚本第一次开启的时候,当前的商品数据已经复制。每次开启智能或脚本时,最初的复制本会更新。智能和脚本运作时,数据可能已经过期。

【示例】

}

}

5.20.4  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 I OrderSymbol)!=Symbol))continue;

//执行过程…

}

5.20.5  Windowi3arsPerChart可见柱总数

int WindowBarsPerChart()

在图表上,函数返回可见柱总数。

【示例】

//对于可见柱工作。

int bars_ count=WindowBarsPerChart);

int bar=WindowFirstVisibleBar();

for( int i=0;i<bars_  count; i++,bar一)

 {

 //...

}

5.20.6  WindowExpertName智能交易系统名称

string WindowExpertName()

返回MQIA程序中独立执行智能交易、脚本、客户指标和数据库的名称。

【示例】

string name=WindowExpertN ame);

GlobalVariablesDeleteAll( name );

5.20.7  WindowFind 返回名称

int WindowFind( string name)

如果发现指标名称,函数返回包含特殊指标的窗口索引;否则返回

注意:当init()函数运行时,客户指标搜索到本身,则WindowFind)函数返回一1。

【参量】

name—指标简称。

【示例】

 int win_idx=W indowFind”MACD( 12,26,9)”);

5.20.8  WindowFirstVisibIeBar第一个可见柱

int WindowFirstVisibleBar()

在当前图表窗口函数返回第一个可见柱。必须考虑到价格柱的逆序编号,即最后一个价格数组中的最后一个指示为零。最老的柱被索引为柱-1。如果第一个柱的编码为2或少于图表中可见柱的总数,意味着图表窗口没有被完整填充。

【示例】

//可见柱的工作

int bars  count = WindowBarsPerChart();

int bar=W indowFirstVisibleBar();

for( int i=0;i<bars_ count; i++,bar一)

}

//...

}

5.20.9  WindowHandle窗口编号

int WindowHandle(  string symbol,int timeframe)

返回包含特定图表的系统窗口。如果货币对和时间周期的图表暂时还没有开启,则显示为零。

【参量】

symbol—货币对名称。

timeframe—时间周期。可以是时间周期列举的任意值。零表示当前图表的时间周期。

【示例】

ant

if(win  handle=win_handle!

W indowHandle”IjSDX",PERIOD_ H1);=0)

Pri nt ( ',发现带有USDX,H1的窗口。数组将会被立即复制。”

5.20.10  WindowlsVisible图表在子窗口中可见

bool WindowIsVisible(  int index)

如果图表在子窗口中可见,返回’fRUE;否则,返回FALSE。子图表窗口可以隐藏于指标的可见属性位置。

【参量】

index一

【示例】

图表自窗口索引。

int maywin=WindowFind(”MyM.ACD");

if( maywin>一1&&WindowIsVisible( maywin )==true

Print( " MyMACD窗口可见”)

eISE'

Print( " MyMACD窗口未发现或不可见”);

5.20.11  WindowOnDropped取消窗口编号

int WindowOnDropped()

返回EA、指标、脚本被取消的窗口编号。当鼠标点击时生效。

注意:自定义指标在初始化过程中被取消,返回无效。

返回编号中,"0”为主窗口,从“1”开始都是指标窗口。加载一个窗口会

自动顺序分配一个编号。

参见WindowXOnDropped()、W indowYOnDropped)。

【示例】

if( WindowOnDropped()!=0)

}

Print(”指标’Mylndicator’必须被主图表窗口接受!”

return( false)

}

5.20.12  WindowPriceMax窗口中最大值

double WindowPriceMax(  void index)

返回当前图表指定子窗口的最大垂直标度的值("0”为主菜单图表,指标子窗口的开始数字为“1" )。如果子窗口没有指定,最大价格标度的值将返回图表窗口。

参见WindowPriceMin(),WindowFirstVisibleBar()和W indowBarsPerChart

()。

【参量】

index—图表子窗口索引(0—主图表窗口)。

【示例】

 double   top=WindowPriceMax);

 double   bottom=WindowPriceMin);

datetime left=Time WindowFirstVisibleBar();

int       right_bound=WindowFirsIVisibleBar()一R'indowBarsPerChart);

 if( right_bound<0)right_ bound=0;

datetime right=Time right_bound〕+Period)*fi0;

//一一一一

ObjectCreate”Padding_ rect" ,OBJ_ RECTANGLE,O,left,top,right,bottom);

ObjectSet(Padding_rect"

ObjectSet(Padding_rect"

OBJPROP_COLOR,Blue);W indowRedraw)

5.20.13  WindowPriceMin窗口中最小值

double WindowPriceMin( void index)

返回当前图表指定子窗口的最小垂直标度的价格值("0”为主菜单图表,指标子窗口的开始数字为“1")。如果子窗口没有指定,最小价格标度的价格值将返回图表窗口。

参见WindowPriceMax ( ) , WindowFirstVisibleBar)和WindowBarsPer-Chart()。

【参量】

index—图表子窗日索引(0—主图表窗口)。

【示例】

double   top=WindowYriceMax();

double   bottom=W inflow-PriceMin);

datetime left=Time[ WindowFirstVisibleBar();

int       right_f>ound=}G'indowFirstVisillr Bar()一}t indowBarsPerChart();

if( right_bound<0)right_ bound=0;

datetime right='fime} right_bound}+Period)*60;

 //一一__

OhjectCreate(”Padding_ rect",OBJ_l3EC'TANGLE,0,1}"ft,top,right,bottom);

ObjectSet(”1'adding_rect", OBJPROP_BACK,true );

OhjectSet(”I'adding_rect",OBJPROP_(=()LOR,BIue);

W indowRedraw);

5.20.14  WindowPriceOnDropped窗口价格位移

double WindowPriceOnDropped()

返回窗口移动的价格区间。当鼠标拖动时生效。

注意:指标不适用。

【示例】

doubledatetimeWindowTimeOnDropped();

drop_priceW indowPriceOnDropped);

//一一一一

可能未指定(>0)zero)

if( drop_timeObjectCreate

ObjectCreate

,,价格下滑水平”,OBJ_HLINE ,0 , drop_price ) ;

”下滑时间”,OBJ_VLINE,O,drop_time) ;

5.20.15  WindowRedraw窗口刷新

void WindowRedraw()

重新画出当前图表。在货币对属性改变之后应用。

【示例】

//---一为货币对设置新属性

ObjectMove ( object_name 1 , 0 , Time } index },price );

ObjectSet( object_namel,OBJPROP_ANGLE,angle*2);

ObjectSet( object_namel,OBJPROP_FON'fSIZE,fontsize);

ObjectSet( line_nameOB-TPROP  ANGLE

ObjectSet( line_nameOBJPROP_ TIME2,time2);

line_ angle

//

现在重画W in<IowRedraw

5.20.16  WindowScreenShot抓图

bool WindowScreenShot(  string filename,int size_x,int size_y,void startbar,void chart_  scale,void chart_  mode)

以GIF文件形式保存当前图像。如果失败,返回FALSE。要了解详细错误信息,请查看GetLastError()函数。

图像被储存在terminal_dir,experts,files (terminal_dir,tester,files测试情况下)日录中或子目录中。

【参量】

filename——屏幕映像文件名称。

size  x—size_y屏幕宽度映像点

start_ bar—第一个可见柱的屏幕映像。如果价格值设定为零,当前的第一个可见柱将被除去;如果价格值为负值,结束图的映像将会产生。

chart_ scale—屏幕映像水平的图标度。范围可以在0一5之间。如果没有值或者为负值,当前图表将被应用。

chart_ mode—图表显示模式。可以是以下价格值:

ICHART_BAR ( 是柱的次序);

CHART_CANDLE ( 是蜡烛柱的次序);

CHART_LINE (2是收盘价格线)。如果没有价格值或者为负值,图表会以当前模式显示。

【示例】

int lasterror=0;

//一一一一测试者平仓或多个仓

if( IsTestin}()&&ExtTradesCounter<TradesTotal())

{

// - --一检测WindowScreenShot

if!WindowScreenShot(”shots \tester"+ExtShotsCounter+”.gif" ,640,480))

lasterror=GetLastError();

else ExtShotsCounter++;

ExtTradesCounter=TradesTotal);

}

5.20.17  WindowTimeOnDropped窗口时间位移

datetime WindowTimeOnDropped()

返回窗口移动的时间区间。当鼠标拖动时生效。

注意:指标不适用。

【示例】

double drop-price=W indowPriceOnDropped);

datetime drop_time=W indowPriceOnDropped);

5.20.18  WindowsTotal指标窗口数

int WindowsTotal()

返回在图表中的指标窗口数(包括主图表)。

【示例】

Print”窗口数=”,WindowsTotal( ) ) ;

5.20.19  WindowXOnDropped窗ox轴位移

int WindowXOnDropped()

返回窗口X轴移动的像素。

注意:指标不适用。

参见WindowYOnDropped( )

【示例】

Print( "智能交易下滑点x =”   

当鼠标拖动时生效。、WindowOnDropped)。

WindowXOnDropped(),“

Y=WindowYOnDropped

5.20.20  WindowYOnDropped窗p Y轴位移

int WindowYOnDropped()

返回窗口Y轴移动的像素。当鼠标拖动时生效。

注意:指标无效。

参见WindowXOnDropped ( ) , WindowPriceOnDropped)和WindowOn-Dropped()。

【示例】

Print”被获取智能交易到窗口的点、_”  , WindowXOnDropped( ) ," y =”  , WindowY-OnDropped));

WindowTimeOnDropped();