struct PointPriceTime
{
double price;
datetime time;
PointPriceTime(double p, datetime t) { price=p; time=t; };
void Set(double p, datetime t){ price=p; time=t;};
PointPriceTime(PointPriceTime &p){ price=p.price; time=p.time; };
PointPriceTime() { price=0.0; time=0; };
};
double Angle(PointPriceTime &p1,PointPriceTime &p2) // возвращает угол в градусах в приведенной системе координат price-price, где по оси X
{ // расстояние между x1 и x2 = N*_Point, где N - количество минутных баров во временном промежутке отрезка. staticint tf[9]= {PERIOD_M1,PERIOD_M5,PERIOD_M15,PERIOD_M30,PERIOD_H1,PERIOD_H4,PERIOD_D1,PERIOD_W1,PERIOD_MN1};
int i=0;
while(i<9 && SeriesInfoInteger(_Symbol,tf[i],SERIES_FIRSTDATE)>p1.time)
i++;
if(i==9)
{
Print("Время левой границы вне диапазона исторических данных");
returnDBL_MAX;
}
int bar1 = iBarShift(_Symbol,tf[i],p1.time);
int bar2 = iBarShift(_Symbol,tf[i],p2.time);
if(bar1==bar2)
return0.0;
returnatan((p2.price-p1.price)/((bar1-bar2)*PeriodSeconds(tf[i])*_Point/60))*180/M_PI;
}
大家好!
1) 编制了EA。
2) 在测试器中运行它。
3)日志中有三个条目。
2020.10.25 20:06:08.484 2020.09.24 00:00:00 OVERLOAD test started
4)视觉化保持原位。
不管可能犯了什么逻辑错误,交易都不会被执行,比如说,测试人员应该开始计算条数。但图表冻结了,静止了。
我已经试过其他几个专家顾问,他们都能工作。
当我运行这个时,一切都停止了。
有人遇到过这样的问题吗?如何解决这个问题?
如果你把计算值写 到日志或文件中,这有什么帮助?
找到错误,形成算法。
那么,你可以用切线来计算角度。而且你并不真的需要一个角度本身,你只需要一个切线。
切线在任何情况下都是每小时一公里或每英里一个点或每天一千点,这就是速度。图形的维度。而其上的切线是与序数和尾数维度相联系的角度。这就是开始的地方。
是的,同样的,速度只有单位:每分钟点数。至于周末和洞,我已经决定:图表上的蜡烛就是时间间隔,没有的(天/小时)就不存在。因为如果我们考虑到周末,而价格在那个时候保持不变,那么速度会毫无理由地明显下降。但话又说回来,那是各取所需。)
为什么害怕速度。这只是一个给类型的惯例。
作为角度定义函数的一个变体。
在MT5之后,MT4的感觉实在是太糟糕了。对历史的访问在某种程度上被阉割了。我甚至不是在说虱子。
请告知是否有可能通过程序管理在图表上显示交易水平描述。是否可以使用MQL4工具禁用它们(同时在图表上保留交易水平)或改变它们?
我需要直观地标记一些交易水平,为它们提供自己的描述。为此,我创建了与交易水平风格相似但颜色不同的水平线。 我为它们设置了一个描述(OBJPROP_TEXT),并启用在图表上显示对象描述(ChartSetInteger(0,CHART_SHOW_OBJECT_DESCR,true))。在这种情况下,我创建的描述被叠加在截图中显示的内容上,结果是两者都无法辨认。
是否可以禁用或改变终端所创建的交易水平的描述?这些描述是否可以从MQL程序中获得?
请告知是否有可能通过程序管理在图表上显示交易水平描述。是否可以使用MQL4工具禁用它们(同时在图表上保留交易水平)或改变它们?
我需要直观地标记一些交易水平,为它们提供自己的描述。为此,我创建了与交易水平风格相似但颜色不同的水平线。 我为它们设置了一个描述(OBJPROP_TEXT),并启用在图表上显示对象描述(ChartSetInteger(0,CHART_SHOW_OBJECT_DESCR,true))。在这种情况下,我创建的描述被叠加在截图中显示的内容上,结果是两者都无法辨认。
是否可以禁用或改变终端所创建的交易水平的描述?这些描述是否可以从MQL程序中获得?
是的,有。
取消复选框。
你可以,
,取消勾选。
如果你不勾选这个框,那么交易水平(线)本身和它们的描述一起从图表中消失。
通过提出这个问题,我想强调的是,我不想删除这些线条,我只需要改变或删除图表中的描述(截图中的箭头所示)。
如果你不勾选这个框,那么 交易水平(线)就会和它们的描述一起从图表中消失。
通过提出这个问题,我想强调的是,我不想删除这些线条,我只需要改变或删除图表中的描述(截图中的箭头所示)。
你不需要它们,你在这些地方创造你的线条。
你不需要它们,你在这些地方创造你的线条。
我只想突出现有的一些层次(对于截图中所示的例子, 最上面的那个),而让其他的层次保持原样。
如果无法以编程方式访问这些级别的描述,那么我们可能必须禁用这些级别本身,然后在每次打勾时,通过用另一种颜色突出适当的级别并为它们提供不同的描述,来对终端进行独立绘制。而且,不仅有开放 水平,还有止损和止盈,也必须要画出来。
也许有一个更琐碎的方法来禁用交易水平的描述(只留下线条)或改变它们?
能否请你用通俗易懂的语言解释一下这些功能之间有什么区别?