美文网首页
物件函数

物件函数

作者: 牛在汇上飞 | 来源:发表于2018-10-23 12:01 被阅读0次

对象操作函数

bool ObjectCreate( string 物件名, int 类型, int 窗口, datetime 时标1, double 价标1, datetime 时标2=0, double 价标 2=0, datetime 时标3=0, double 价标 3=0) //创建

创建物件
在指定的窗口中用指定的名称、类型和最初的坐标创建对象。根据对象类型与对象有关的坐标个数可以是可以是1到3个。
如果函数成功,返回TRUE,否则,返回FALSE。
OBJ_LABEL类型的对象忽略坐标。使用 ObjectSet() 设定 OBJPROP_XDISTANCE 和 OBJPROP_YDISTANCE 属性。
注:图表主窗口总是存在的,索引为0。 图表子窗口(如果子窗口图表中带有指标)编号从1开始。
坐标必须成对传递:时间坐标和价格坐标。例如,OBJ_VLINE对象只需要时间,但价格(任意值)也必须同时传递。

:: 输入参数
name - 物件名称
type - 物件类型. 可以是 对象类型列表 的任意值。
window - 物件所在窗口的索引值。 窗口索引必须大于或等于0,并且小于 WindowsTotal()。
time1 - 时间点1
price1 - 价格点1
time2 - 时间点2
price2 - 价格点2
time3 - 时间点3
price3 - 价格点3

示例:
//------ 附图指标在主图K线上绘箭头 -------+
//-------------反初始化------------+
int deinit()
{
ObjectsDeleteAll(-1, OBJ_ARROW);
return(0);
}
主图绘箭头子(Time[i+1], Close[i+1], Blue);
....
主图绘箭头子(Time[i+1], Close[i+1], Red);
....

//------------主图价格上绘箭头---------------+
void 主图绘箭头子(datetime 时标, double 价标,color 箭头色, int 箭码=1)
{
if(箭色==Red)
箭码= 234; //238
if(箭色==Blue)
箭码= 233; //236
string 物件名= "箭头 "+DoubleToStr(时标, 0);
ObjectDelete(物件名);
ObjectCreate(物件名, OBJ_ARROW, 0, 时标, 价标);
ObjectSet(物件名, OBJPROP_ARROWCODE, 1);
ObjectSet(物件名, OBJPROP_ARROWCODE, 箭码);
ObjectSet(物件名, OBJPROP_COLOR, 箭头色);
}

bool ObjectDelete( string 物件名) //删除

删除指定物件
:: 输入参数
name - 指定的物件名称
示例1:
//--无已成单时,归位
if(订单数<1){
删除物件子(OBJ_ARROW);
}

//-----------删除指定类型物件--------------+
void 删除物件子(int 物件类型=24)
{
if(ObjectsTotal()>0){
for(int n=ObjectsTotal(); n>0; n--){
//--删除指定物件
if(ObjectType(ObjectName(n))==物件类型){
ObjectDelete(ObjectName(n));
}
}
}
}
//----------------------------------+

示例2:
int 历史单总数= OrdersHistoryTotal();
for(int i=0; i<历史单总数; i++){
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
break;
if(OrderSymbol()==Symbol() && OrderMagicNumber()==魔术号){
//--卸载已消单的箭头 (试编)
for(int m=0; m<ObjectsTotal(OBJ_ARROW); m++){
string 物件名= ObjectName(m);
if(StringFind(ObjectName(m), "deleted", 0)>=0){
string 已消箭名= ObjectName(物件名);
ObjectDelete(已消箭名);
}
}
}
}

string ObjectDescription( string 物件名) //描述

返回物件描述
针对于OBJ_TEXT和OBJ_LABEL类型对象,这些对象设置的文本将返回。
:: 输入参数
name - 物件名称
示例:
//--将图表对象列表写入文件
int 句柄, 物件总数;
string 物件名, 文件名;

文件名= "objlist_"+Symbol();
句柄= FileOpen(文件名,FILE_CSV|FILE_WRITE);

if(句柄!=false){
物件总数= ObjectsTotal();
for(int i=-1; i<物件总数; i++){
物件名= ObjectName(i);
FileWrite(句柄, "物件名: "+物件名+" 描述说明= "+ObjectDescription(物件名));
}
FileClose(句柄);
}
ObjectSetFiboDescription("MyFiboObject, 2, "第二条线");

int ObjectFind( string 物件名) //查找

查找指定物件,
返回物件所在窗口的索引值
:: 输入参数
name - 要查找的指定物件名称
示例:
if(ObjectFind("line_object2") !=win_idx)
return(0);

double ObjectGet( string 物件名, int 属性索引) //获得值

获取指定对象的属性值
:: 输入参数
name - 物件名称
index - 物件属性的索引。 可以是 对象属性枚举值 的任意值。
示例:
color 原物件色= ObjectGet("hline12", OBJPROP_COLOR);

//-----------获得物件值子------------+
double 获得物件值子(string 物件名)
{
return(NormalizeDouble(ObjectGet(物件名, OBJPROP_PRICE1), Digits));
}

//-----------获得物件shift子---------+
int 获得物件shift子(string 物件名)
{
return(iBarShift(Symbol(), 0, NormalizeDouble(ObjectGet(物件名, OBJPROP_TIME1), 0)));
}

//------------------------------------+

bool ObjectSet( string 物件名, int 属性索引, double 新属性值) //设置

修改指定物件的属性值
:: 输入参数
name - 物件的名称
index - 物件属性的索引值。 可以是 对象属性枚举值 的任意值。
value - 新的属性值
示例:
//--移动首个第1个坐标到最后K线时间上
ObjectSet("MyTrend", OBJPROP_TIME1, Time[0]);
//--设置第二条菲波那切水平线
ObjectSet("MyFibo", OBJPROP_FIRSTLEVEL+1, 1.234);
//--设置物件的可视性,.物件将只能在15分钟和一小时的图表上显示
ObjectSet("MyObject", OBJPROP_TIMEFRAMES, OBJ_PERIOD_M15 | OBJ_PERIOD_H1);

//-----------绘趋势 线 段 ------------+
int 绘趋线子(string 物件名, int x1, int x2, double Y, color 色, int 类型)
{
ObjectCreate(物件名, OBJ_TREND, 0, x1, Y, x2, Y) ;
ObjectSet(物件名, OBJPROP_RAY, 0);
ObjectSet(物件名, OBJPROP_COLOR, 色);
ObjectSet(物件名, OBJPROP_STYLE, 类型);
return(0);
}

string ObjectGetFiboDescription( string 物件名, int 斐索引) //获斐

返回斐波纳契对象的水平线说明。
斐波纳契水平线的数量取决于对象类型。斐波纳契水平线个数最大为32(0到31)。
:: 输入参数
name - 物件名称
index - 斐波纳契水平线的索引
示例:
.#include
...
string text;
for(int i=0; i<32; i++){
text= ObjectGetFiboDescription(MyObjectName, i);
//--检查物件是否少于32条水平线
if(GetLastError()!=ERR_NO_ERROR)
break;
Print(MyObjectName, "水平线: ", i, " description: ", text);
}

bool ObjectSetFiboDescription( string 物件名, int 斐索引, string 新描述) //设斐

为斐波纳契数列物件设置一个新的描述
斐波纳契水平线数量最大为32(0到31)。
:: 输入参数
name - 物件的名称
index - 物件斐波纳契数列的索引值
text - 新的描述
示例:
ObjectSetFiboDescription("MyFiboObject, 2, "第二条线");

int ObjectGetShiftByValue( string 物件名, double 指定价) //价物距

计算并返回已给出价格的K线到当前K线的偏移量。
K线索引由第一坐标和第二坐标应用线性方程计算出来,
主要适用于趋势线及类似的物件。
:: 输入参数
name - 物件名称
value - 价格
示例:
int shift= ObjectGetShiftByValue("MyTrendLine#123", 1.34);

double ObjectGetValueByShift( string 物件名 , int shift) //时物距

计算并返回基于指定K线(相对于当前柱体的偏移量)的价格值。
K线索引由第一坐标和第二坐标应用线性方程计算出来,
适用于趋势线及类似的物件。
:: 输入参数
name - 物件名称
shift - 位移数
示例:
double price= ObjectGetValueByShift("MyTrendLine#123", 11);

bool ObjectMove( string 物件名 , int 坐标索引, datetime 新时标, double 新价标 ) //移动

在图表中可以移动一个物件的坐标。
物件可能按其类型有一个到三个坐标。
物件坐标从0开始。
:: 输入参数
name - 物件名称
point - 坐标索引 (0-2)
time1 - 新的时间坐标
price1 - 新的价格坐标
示例:
ObjectMove("MyTrend", 1, D'2005.02.25 12:30', 1.2345);

string ObjectName( int 列表索引) //取物件名

据物件列表中物件索引返回其物件名称。
:: 输入参数
index - 物件列表中的索引。 物件索引必须大于等于0,小于 ObjectsTotal() 值。
示例:
int 物件总数= ObjectsTotal();
string 物件名;
for(int i=0; i<物件总数; i++){
物件名= ObjectName(i);
Print("第",i, "个物件名称为 " + 物件名);
}

int ObjectsDeleteAll( void 窗口索引, void 指定类型=EMPTY) //全删

在指定的图表子窗口中删除指定类型的全部物件。
本函数返回已删除的物件个数。
注:图表子窗口(如果子窗口图表带有指标)编号从1开始。主窗口总是存在且索引为零。
如果窗口索引错误或值为-1,将从全部图表中删除物件。
如果type值等于-1或者这个参数丢失,全部物件将从指定的子窗口中删除。
:: 输入参数
window - 可选参。要删除的物件所在的窗口索引。须大于等于-1(EMPTY为默认值)且小于WindowsTotal()值。
type - 可选参。被删除的物件类型。它可以是 物件类型 的任意枚举值或用EMPTY常量表示删除所有任意类型的全部物件。
示例:
ObjectsDeleteAll(2, OBJ_HLINE); // 从第二子窗口删除全部水平线。
ObjectsDeleteAll(2); // 从第二子窗口删除全部物件。
ObjectsDeleteAll(); // 从图表中删除全部物件。
//-----------信号垂线子 ------------+
//--------反初始化---------+
int deinit()
{
ObjectsDeleteAll(0, OBJ_VLINE);
return(0);
}
。。。。
for(i=最少计; i>0; i--){
if(绿正涨柱[i+1]!=EMPTY_VALUE && 绿正跌柱[i]!=EMPTY_VALUE)
信号垂线子("转跌"+i, i, Red);
if(红负跌柱[i+1]!=EMPTY_VALUE && 红负涨柱[i]!=EMPTY_VALUE)
信号垂线子("转涨"+i, i, Blue);
}
。。。。
//--------信号垂线---------+
void 信号垂线子(string 名段, int 时标, color 线色=Silver, int 线宽=1)
{
ObjectCreate("垂线"+名段, OBJ_VLINE, 0, 0, 0);
ObjectSet("垂线"+名段, OBJPROP_TIME1, Time[时标]);
ObjectSet("垂线"+名段, OBJPROP_COLOR, 线色);
ObjectSet("垂线"+名段, OBJPROP_STYLE, STYLE_DOT);
ObjectSet("垂线"+名段, OBJPROP_WIDTH, 线宽);
}

bool ObjectSetText( string 物件名, string 内容, int 字号, string 字体=NULL, color 字色=CLR_NONE) //写文

设置文本物件的描述
字号,字体和字色参数只能用于OBJ_TEXT和OBJ_LABEL物件。对于其它类型物件无效。
:: 输入参数
name - 物件的名称
text - 文本
font_size - 字体大小
font - 字体名称
text_color - 字体颜色
示例:
ObjectSetText("text_object", "Hello world!", 10, "Times New Roman", Green);

int ObjectsTotal(void type)//总数

返回图表中指定类型物件总数。
参数:
type - 可选参数。要统计的物件类型,它可以是任意 物件类型 枚举值,
或用EMPTY常量表示统计任意类型的全部物件个数。
示例:
int 物件总数= ObjectsTotal();
string 物件名;
for(int i=0; i<物件总数;i++)
{
物件名= ObjectName(i);
Print(i,"#的物件名称是 " + 物件名);
}

int ObjectType(string 物件名)//类型

获取物件类型。
参数:
name - 物件名称
示例:
if(ObjectType("line_object2")!=OBJ_HLINE)
return(0);

void ObjectsRedraw() //重绘

重绘所有物件
示例:
ObjectsRedraw();

相关文章

  • 物件函数

    对象操作函数 bool ObjectCreate( string 物件名, int 类型, int 窗口, dat...

  • 二十三物件函数

    物件函数 该组函数用于处理与任何指定图表相关的图形物件。在处理当前图表上的物件时,直接使用访问。即在函数调用期间预...

  • 二十三(六)ObjectGetTimeByValue获得物件值

    ObjectGetTimeByValue ObjectGetTimeByValue函数返回指定物件的指定价格值。d...

  • 二(二)1 物件类型

    物件类型当使用ObjectCreate()函数创建图形对象时,需要指定要创建的物件的类型,该类型可以是ENUM_O...

  • 二十三(八)ObjectMove移动物件

    ObjectMove该函数用于改变指定图表中物件的指定锚点的坐标。该函数现有两个版本: bool ObjectM...

  • 老物件,乡下淘!

    老物件,乡下淘! 老物件,乡下淘! 老物件,乡下淘! 老物件,乡下淘!

  • 物件

    对于许多被时间遗忘了的在某些时刻陪伴过我的人,从来不会有太多的不舍,分别过后就把它舍弃在过往中,继续前行。离别是常...

  • 物件

  • 物件

  • 物件

    物件,是相对于人而存在的,没有人,便失去了它们存在的意义。 人直立行走之时,借助树叶兽皮蔽体,选取相应的石器和木器...

网友评论

      本文标题:物件函数

      本文链接:https://www.haomeiwen.com/subject/beetzftx.html