如何每10个点画一条参考线 - 页 2

 

当然了!这只是时间而已。而我们要做的就是把时间加到Time[0]上,使矩形延伸到未来(离开图表的右侧)。谢谢。顺便说一下,我发现左侧通过简单地使用Bars

datetime timeGap = (Time[0] - Time[1]); // get the amount of time between bars
ObjectSet("tensRec"+ix,OBJPROP_TIME2,Time[0] + (timeGap*150)); // multiplying timeGap by 150 seems to extend the rectangle off the right-hand window edge

我使用的颜色是非常微妙的。你几乎必须寻找矩形才能看到它们。

ObjectSet("tensRec"+ix,OBJPROP_COLOR,0x080808) 
 
MisterDog:

当然了!这只是时间而已。而我们要做的就是在Time[0]中加入时间,使矩形延伸到未来(偏离图表的右侧)。谢谢。顺便说一下,我发现左侧通过简单地使用Bars

我使用的颜色是非常微妙的。你几乎必须寻找矩形才能看到它们。

嗨,MisterDog。

我们可以看看照片吗?

在星期一,时间[0]是在星期一,而时间[1]是在星期六--这就是星期一的差距;)。

:D

 

我猜想,由于我运行的是一分钟的图表,你所说的情况将在一分钟内自行解决。我想我们可以看看周末会发生什么。

这是照片。

 
onewithzachy:

嗨,MisterDog。

很简单。

1.1.获得一个条形图与另一个条形图之间的时间距离。我们可以通过用当前条形时间减去前条形时间或用60秒乘以周期来获得,选择后一种,因为周一有时间差。

在周一 没有时间差,我这周的第一个条形图在周日开始;-)

为什么不把PERIOD_W1 * 60加到结束时间上呢?这应该可以覆盖所有的间隙。)

 
MisterDog:

我使用的颜色是非常微妙的。你几乎必须寻找矩形才能看到它们。

现在我 "明白 "你的意思了。

RaptorUK

我在周一没有时间差,我一周的第一根柱子是从周日开始的;-)

为什么不在结束时间上加上PERIOD_W1 * 60呢?这应该正好涵盖了任何空隙...;-)

那么你在周日就有间隙了;)。

 
  1. MisterDog:
    告诉我,是否有办法对ObjectDelete这样的东西使用某种 "通配符"?我想做这样的事情,ObjectDelete("tensLines "*);换句话说,删除任何以 "tensLines "开头的东西。
    #define ONDA_BEGINS   0
    #define ONDA_CONTAINS 1
    void ObjectNameDeleteAll(string name, int where=ONDA_BEGINS, int type=EMPTY){
        for(int iObj=ObjectsTotal()-1; iObj >= 0; iObj--){
            string on   = ObjectName(iObj);
            int    iPos = StringFind(on, name);
            if (iPos < 0)                         continue;
            if (iPos > 0 && where == ONDA_BEGINS) continue;
            if      (type == EMPTY))         ObjectDelete(on);
            else if (type == ObjectType(on)) ObjectDelete(on);
        }
    }
    
    没有编译,没有测试。

  2. 也没有理由删除它们,只是把它们移到新的位置。从我的代码 来看
    void Rect(string name, datetime T0,double P0, datetime T1,double P1, color clr){
        if (!Show.Objects)  return;                         #define WINDOW_MAIN 0
        if      (ObjectMove( name, 0, T0, P0 ))     ObjectMove(name, 1, T1, P1);
        else if (!ObjectCreate( name, OBJ_RECTANGLE, WINDOW_MAIN, T0, P0, T1, P1 ))
            Alert("ObjectCreate(",name,",RECT) failed: ", GetLastError() );
        if (!ObjectSet(name, OBJPROP_COLOR, clr )) // Allow color change
            Alert("ObjectSet(", name, ",Color) [3] failed: ", GetLastError());
        string  P0t = PriceToStr(P0);           if (MathAbs(P0 - P1) >= Point)
                P0t = StringConcatenate(P0t, " to ", PriceToStr(P1));
        if (!ObjectSetText(name, P0t, 10))
            Alert("ObjectSetText(",name,") [1] failed: ", GetLastError());
    }
    

  3. RaptorUK:
    为什么不在结束时间上加上PERIOD_W1 * 60呢?这应该正好可以弥补任何空白...;-)
    为什么不直接将矩形一直投射到未来?
    #define INF 0x6FFFFFFF // Not quite infinite, Jul 2029, or 1,879,048,191
    ObjectSet("tensRec"+ix,OBJPROP_TIME2,INF);
 
WHRoeder:
为什么不把这个矩形一直投射到未来?

非常感谢你,WHRoeder。我会接受的 :D

[编辑:所以,无论如何,许多感谢ssssssssss]

 
WHRoeder:
  1. RaptorUK:
    为什么不在结束时间上加上PERIOD_W1 * 60呢? 这应该可以弥补任何差距 ... ;-)
    为什么不把这个矩形一直投射到未来?
我不想太贪心;-)
 
RaptorUK:
我不想太贪婪;-)
贪婪是好事,你知道;)
 
onewithzachy:
贪婪是好的,你知道;)
我已经知道了贪婪是非常、非常糟糕的事情。)