首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CreateObject OnTick

CreateObject OnTick
EN

Stack Overflow用户
提问于 2017-05-24 03:18:29
回答 1查看 315关注 0票数 0

我设法将一些对象放在了策略测试图表上,如下所示:

代码语言:javascript
复制
void OnTick() {

ObjectCreate(0,"test9999",OBJ_ARROW_LEFT_PRICE,0,TimeCurrent(),SymbolInfoDouble(_Symbol,SYMBOL_BID)-0,03);
ObjectCreate(0,"test9991",OBJ_ARROW_RIGHT_PRICE,0,TimeCurrent(),SymbolInfoDouble(_Symbol,SYMBOL_BID)-0,03);
ObjectCreate(0,"test9992",OBJ_ARROW_SELL,0,TimeCurrent(),SymbolInfoDouble(_Symbol,SYMBOL_BID)+0,1);
ObjectCreate(0,"test9993",OBJ_VLINE,0,TimeCurrent(),SymbolInfoDouble(_Symbol,SYMBOL_BID)+0,1);

Print(TimeCurrent());
Print(SymbolInfoDouble(_Symbol,SYMBOL_BID));

}

但是,创建的对象不会随当前时间和投标价移动。可以看到,我还打印了当前时间和出价,当我开始反向测试时,我在打印输出中看到了当前时间和出价的变化。你知道为什么这些物体不会随着当前时间和出价而移动吗?

EN

回答 1

Stack Overflow用户

发布于 2017-05-24 04:44:19

仅当可以创建新对象时,ObjectCreate()才返回TRUE of FALSE.True,然后绘制该对象并将其属性设置为in参数。如果不可能创建一个新的对象(如果它的名称不被允许,对象已经存在等等),它将返回false。

我认为应该在OnInit()中创建对象,并在OnTick()函数中更改OBJPROP_TIME1 and OBJPROP_PRICE1。或者使用布尔参数控制对象以某种其他方式存在。

使用ObjectSetInteger(0,"test9999",OBJPROP_TIME1,TimeCurrent());移动其时间参数,但请记住,更新每个刻度没有太大意义,至少这不会导致移动对象,每个条形移动一次就足够了。ObjectSetDouble(0,"test9999",OBJPROP_PRICE1,Bid-0.03); -用于沿价格范围移动对象。

如果你有OBJ_HLINE -它的参数OBJPROP_TIME1没有多大意义,只有价格重要。如果您有一个具有两个价格或时间参数的对象,例如OBJ_TREND (趋势线)-更新两个OBJPROP_PRICE1 & OBJPROP_PRICE2

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44143309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档