mql5 - 自上一次交易后一定时间内的垂直线

 

大家好!

伙计们,谁能帮助/建议如何在MQL5中实现以下想法(我自己刚刚熟悉了Metatrader - 我还没有写任何代码)。

代码算法。
1)最后一笔交易的收盘时间和交易的结果是确定的。

2)确定最后一笔交易结束后当天的总结果。

3)根据指标设置,从最后一笔交易的收盘时间开始,在未来的某个时间段内画出一条垂直线。
设置。
- 如果最后一笔交易的结果是负的,并且当天的结果是负的,那么就在未来24小时(一天)的距离上画一条垂直线。
- 如果最后一笔交易的结果是负的,而当天的结果是正的,那么垂直线就会画到未来2小时。
- 如果最后一笔交易的结果是积极的,那么垂直线就会画到未来1小时。

4) 即使开了一个新的交易,线仍然留在图表上,但根据上述算法,在关闭一个新的交易后,线会移动,因为已经有一个新的交易是最后关闭的。

请注意。
阳性结果就是阳性结果,不管是订单被触发还是手动平仓,都不重要。即在天平上加。
负面结果是指交易的结果为负数或零。

P.S>

对我来说,这个代码的本质是习惯在交易后休息一下,不要太热。我注意到,我的损失是由试图快速赢回不成功的交易造成的。对我来说,可以手动放一条线,并按照这个规则移动它,但我确切地需要一个程序变体,因为将来我想给指标绑定额外的条件/过滤器,也就是使决策的算法复杂化。

提前感谢,并祝你好运!

 

作为一个例子。

void moveVLine(string obj_name, datetime obj_time)
{
   int         tm       = PeriodSeconds(PERIOD_D1);
   datetime    next_day = obj_time + tm;
   MqlDateTime tm_str;
   
   TimeToStruct(next_day,tm_str);
   if(tm_str.day_of_week == 6)
   {
      tm *= 3;
      next_day = obj_time + tm;
   }
   ObjectMove(0,obj_name,0,next_day,0);
   
   return;
}
 
Сергей Таболин:

作为一个例子。

谢尔盖,谢谢你!
当我运行你的例子时,我会让你知道结果如何。
 
Сергей Таболин:

作为一个例子。

这个例子没有编译 :(
根据我的理解--该代码是一个片段,有必要添加一些强制性组件(#属性等)?
 

我发现了一个类似的指标,它只是在某个时间画一条垂直线--我将尝试以它为基础,加入必要的算法,而不是预先确定的静态时间。
https://www.mql5.com/ru/code/18449

Vertical line
Vertical line
  • www.mql5.com
Индикатор рисует, а затем перемещает нарисованную вертикальную линию (OBJ_VLINE) на заданное время (часы и минуты). Входные параметры: Из параметра "Use only Hours and minutes" используются только часы и минуты.  Вертикальная линии рисуется для текущего дня. Если начинается новый день, то нарисованная линия переносится на этот новый день на...
 
愚蠢的行为。
有一个来源(上面的代码)可以在给定的时间在条形图上画一条线。只需要从输入参数中删除时间,并从交易历史中获得时间值。翻阅交易函数的文档,我怀疑真相就在历史组的某个函数中......。到目前为止,我没有看到任何东西 :(
谁能帮助/告诉我如何从历史中获得最后一笔交易的数据(平仓 时间和固定交易的结果)?
 
renatmt5:
这个例子没有编译 :(
根据我的理解--该代码是一个片段,有必要添加一些强制性组件(#属性等)?

这是一个垂直线 转移函数。如果某些条件得到满足,它必须从主代码中调用。此外,这条线路本身必须已经存在。

 
Сергей Таболин:

这是一个垂直线 转移函数。如果某些条件得到满足,它必须从主代码中调用。

好的,再次感谢!
 
renatmt5:

大家好!

伙计们,谁能帮助/建议如何在MQL5中实现以下想法(我自己刚刚熟悉了Metatrader - 我还没有写任何代码)。

算法代码:
1) 确定最后一笔交易的收盘时间和交易结果。

2)确定最后一笔交易结束后当天的总结果。

3) 根据指标的设置,从最后一笔交易的收盘时间开始,在未来的某个时间段内画出一条垂直线。
设置:
- 如果最后一笔交易的结果为负数,并且当天的结果为负数,则在未来24小时(24小时)的距离上画一条垂直线。
- 如果最后一笔交易的结果是负的,而当天的结果是正的,那么垂直线就会画到未来2小时。
- 如果最后一笔交易的结果是正数,则在未来1小时的距离上画一条垂直线。

4)即使在新的交易开盘后,线也会停留在图表上,但在新的交易关闭后,根据上述算法,线会移动,因为新的交易已经成为最后关闭的交易。

请注意。
一个积极的结果是一个加分项,无论订单是否已经触发,或者一个头寸已经被手动关闭。即在天平上加。
负的结果是指交易的结果为负数或零。

P.S>。

对我来说,这个代码的本质是--习惯于在交易后做一个暂停,而不是打破一个热连胜。我注意到,我的损失是由试图迅速赢回不成功的交易造成的。对我来说,可以手动放一条线,并按照这个规则移动它,但我需要的正是一个程序变体,因为将来我想给指标绑定额外的条件/过滤器,也就是使决策的算法复杂化。

提前感谢,祝大家好运

因此,让我们把它称为一个指标。

因此,让我们这样设定。让我们定义一下,我们每分钟审问一次交易历史。那么我们还需要两个参数。

  • 只考虑当前符号(指标运行的符号)的最后交易,还是考虑所有?
  • 和magfic数量核算(只考虑一个或全部)?


我需要你给我一个答复。我将努力在午餐时间之前再次出现在这个主题中。

 
Vladimir Karputov:

一个指标就是一个指标。

所以它是这样的。让我们定义一下,我们每分钟审问一次交易历史。那么我们还需要两个参数。

  • 只考虑当前符号(指标运行的符号)的最后交易,还是考虑所有?
  • 和magfic数量核算(只考虑一个或全部)?


我需要你给我一个答复。我将努力在午餐时间之前再次出现在这个主题中。

弗拉基米尔,谢谢你花时间问我的问题。最初尽可能简单,因为我期望在长期内自己完善它,而不是停止它:)
- 只针对当前符号
- 关于Magfic编号--我不确定它是关于什么的。比如说某种身份证明?说实话,这对我来说并不重要。我只需要最后一笔已结束的交易的数据

 

我想澄清一下 "最后交易 "这个词。

它是当前一天内的最后一笔交易吗?还是在过去的N天里?