初学者的问题 MQL4 MT4 MetaTrader 4 - 页 88

 
Gregory Kovalenko:

你好。我如何获得当前未平仓订单的当前利润/亏损?

试图

- 只返回正数、利润,如果头寸目前处于亏损状态,则不显示损失。

P.S. 在订单历史 中,OrderProfit()也显示为负 值。

你是如何试图获得利润的,请展示所有的代码
 

关于订单的当前利润(没有找到帖子的发起人)。

double profit=OrderProfit()+OrderSwap()+OrderCommission();
 
Renat Akhtyamov:

关于订单的当前利润(没有找到帖子的发起人)。


谢谢你,在代码的逻辑中确实有一个错误,这就是为什么
double profit=OrderProfit()+OrderSwap()+OrderCommission();

没能成功。

现在出现了一个有趣的问题。

我看了看历史上的最后一个订单,我看到了一个损失。我想减少TP,增加lot。

MarketInfo(Symbol(),MODE_STOPLEVEL)

我如何计算出需要的手数,知道当前的开盘价 和新的价位--平仓的损失?

 
Gregory Kovalenko:

谢谢,代码的逻辑中确实有一个错误。

没能成功。

现在有这样一个有趣的问题。

我看了看历史上的最后一笔订单,发现是亏损的。我想减少tp,增加lot。tp--如何计算需要哪个lot。

我如何计算需要多少手,知道当前价格 开仓和新的TP--平仓的损失?

这个问题很有意思,但它与战略发展有关。就个人而言,我将会通过。
 
Gregory Kovalenko: 你如何计算需要哪一手,知道当前的开盘价 和新的价位--平仓的损失?

计算手数等于OrderLots()的订单将弥补多少损失。打开一个订单,其手数等于OrderLots(),除以获得的值。

换句话说,如果OrderLots()关闭了0.5的损失,你就开一个手数为OrderLots()/0.5=OrderLots()*2的订单。

如果OrderLots()关闭了两次损失,则使用OrderLots() / 2

 
LRA:

计算手数等于OrderLots()的订单将弥补多少损失。打开一个订单,其手数等于OrderLots(),除以获得的值。

计算手数=1的订单能弥补多少损失是比较容易的。打开一个手数=1的订单,除以结果值。
 

我有一个四重的问题。

每个人在图表设置 中都有3000点的限制,或者有谁有任何垂直缩放的工作?

这里有一个屏幕截图sjfhakslljas


 

"循环方案 "的应用

请解释一下其中的利弊。这是否比从start()开始等待一个新的tick要好?它是否提高了对新勾股的反应速度?

start()
   {
   while(!IsStopped())
      {
      RefreshRates();
      //...
      Sleep(5);
      }
   return;
   }

 
smart_man:

"循环方案 "的应用

请解释一下其中的利弊。这是否比从start()开始等待一个新的tick要好?它是否提高了对新勾股的反应速度?

start()
   {
   while(!IsStopped())
      {
      RefreshRates();
      //...
      Sleep(5);
      }
   return;
   }

你不应该这样做。它将消耗大量的资源。而不循环的反应速度有什么问题?
 
smart_man 解释利与弊。这是否比从start()开始等待一个新的tick要好?它是否提高了对新勾股的反应速度?

   while(!IsStopped())
      {
      RefreshRates();
      //...
      Sleep(5);
      }

Tick是来自服务器的新数据。而且在到达后必须立即进行处理。如果你用5毫秒的延迟进行循环操作,那么大多数刻度将在这个延迟期间到达。因此,处理将被延迟0 ...5毫秒。