//+------------------------------------------------------------------+//| Profit for the period |//+------------------------------------------------------------------+void LastProfitForPeriod(double &profit_last_day,double &profit_last_deal)
{
datetime from_date=iTime(Symbol(),PERIOD_D1,0);
if(from_date==D'1970.01.01 00:00')
return;datetime to_date=TimeCurrent()+60*60*24;
long last_time=0;
我正确地理解了last_time和result变量是我们要找的值。其结果决定了该线将被转移(重绘)到未来多少时间。然后,代码块 "本期利润 "应放在 "移动垂直线 "块之前,以便在考虑到从最后一笔交易获得的数据的情况下移动该线。
这是否正确,还是我混淆了什么?
这些是LastProfitForPeriod函数的内部变量。
我们想得到最后一笔交易的利润 值,对吗?这里LastProfitForPeriod()给了我们最后一笔交易的利润。只剩下根据这些利润来移动垂直线。
因此,最后的触摸是根据所获利润来移动线。
你还记得搬家的规则是什么吗?
oops, sorry - 只是为了澄清。
- 如果最后一笔交易的结果是负的,而且当天的结果是负的,那么就在未来24小时(24小时)的距离上画出垂直线。
- 如果最后一笔交易的结果是负的,而当天的结果是正的,则在未来2小时的距离上画出垂直线。
- 如果最后一笔交易的结果是正数,则在未来1小时的距离内画出垂直线。
这里解释一下为什么 "之前 "的参数需要在未来进行。
谢谢你!
这些条款要求最后一笔交易的当天的结果(如果当天有几笔交易)。
哦,对不起--只是想澄清一下。
- 如果最后一笔交易的结果是负的,而且当天的结果是负的,那么垂直线 就会画到未来24小时(一天)。
- 如果最后一笔交易的结果是负的,而当天的结果是正的,则在未来2小时的距离上画出垂直线。
- 如果最后一笔交易的结果是正数,则在未来1小时的距离内画出垂直线。
啊,所以我们还需要单独获得当日的利润。
为了对LastProfitForPeriod()进行修正--我们删除输入的时间参数 "from "和 "to",并在函数中形成这些参数:形成一天的开始时间(它将是 "from"),而 "to "我们得到当前时间+天。
因此,我们将通过引用向LastProfitForPeriod()传递两个参数:当天的利润和最后一笔交易的利润。
一天的开始是用iTime 获得的
- 即,它是当前日线的开盘时间。
汇编--伟大的!
只有几个问题。
1) 在实施指标时,利润最后一天的变量值不是分配给最后一笔交易的最后一天,而是分配给一般账户的最终利润。然而,当重新计算指标时(大约1-2分钟),数值会变为正确的数值(最后一笔交易当天的总利润)。我只是根据今天最后一笔交易的账户进行判断。
2) 当从图表中删除指标时,左上角 的注释不会被删除。当清除对象的列表时,它们也不会被删除。我重新启动终端,使这些数值消失,当然,这并不方便。如何让它更容易 - 我不知道 :)
也许,在最后一笔交易(本期利润)的计算区块之后,放置创建线、移动线和删除线的代码(创建垂直线、移动垂直线和删除垂直线)会更合理。在考虑到未来n小时的转变的情况下画线,在利润_最后一天和利润_最后交易的基础上计算。
喜欢
如果(profit_last_day<=0 and profit_last_deal<=0){n=24;}。
else (profit_last_day>0 and profit_last_deal<=0){n=2;}。
否则 {n=1;}
//---
time = last_time + n;
//---
然后用计算出的时间值画出相对于最后一笔交易的时间转移线......
1.002版本引入了保护措施:如果日线的开盘时间 返回 "0"--那么就是没有命运,我们退出。
现在,在交易账户的有效期内,不会有任何要求。
我将尝试自己做代码,这样我就不会因为良心和实践而生病 :) 如果有结果,我将报告。
弗拉基米尔,再次非常感谢你的工作!
我将尝试自己做代码,这样我就不会因为良心和实践而生病 :) 如果有结果,我将报告。
很好。