我如何以总利润为单位关闭所有订单? - 页 2

 
khasan kayumov:

你如何以点数计算利润?

在你删除之前

                    for(pos = 0; pos < 100500; pos++) 
                    {
                        if(OrderSelect(pos, SELECT_BY_POS))
                        if(OrderType() == OP_BUY)
                        {
                            buy_profit_USD = buy_profit_USD + OrderProfit() + OrderSwap() + OrderCommission();

                            buy_profit_Point = buy_profit_Point+ ((Bid - OrderOpenPrice()) / Point);

                                
                        }
                    }

 
Evgeny Belyaev:

哦,是吗?

我下了一个订单,但被服务器拒绝了,我得到错误130

我应该怎么做,没有位置,没有什么可以关闭。我只能删除。我应该怎么做,或者我做错了什么?

你真的想让我回答你吗?
 
Dmitry Fedoseev:
你真的想让我回答你吗?

不,我不希望这个话题变成一哄而上。

 
Evgeny Belyaev:

不,我不希望这个话题演变成忽悠。


那么就不要蓬头垢面了。

 
Evgeny Belyaev:

我在市场上交易,而不是在MT上,MT只是一个应用程序,它没有正确定义功能的名称。位置 - 买入,设置,后卫,前锋...

订单 - 订单放置,购买,出售,后卫,前锋,中场...

交易...


我们现在是在MT4的论坛上。而这个问题是专门关于MQL4的。所以在这里,使用MT4和MQL4中介绍的术语是非常合适的。毕竟,即使是被称为交易(组成头寸)的会计功能也是以 "订单 "一词开始的:OrderSend(), OrderClose(), OrderModify()。

 
Ihor Herasko:

毕竟,即使是交易所中被称为交易(成分头寸)的函数也是以 "订单 "一词开始的:OrderSend(), OrderClose(), OrderModify()。

毋庸置疑,这些函数是这样称呼的。 在MT4中,函数的名称并不正确。终端机已经过期,所以名称不正确。

那么,我们如何才能理解对方呢?

我们说的是同一件事。如果你称其为买入订单,我就称其为头寸。

我们如何理解对方?

 
Evgeny Belyaev:

毋庸置疑,这些函数是这样称呼的。 在MT4中,函数的名称并不十分正确。终端机已经过时了,这就是为什么名字不正确。

那么,我们如何理解对方呢?

我们说的是同一件事。如果你称它为买单,我就称它为头寸。

我们如何理解对方?


我习惯于使用终端的术语。这可能是错误的,但它在阅读文档时对我有帮助。在MT4中:市场订单和待定订单。在MT5中:交易、头寸和订单。在其他平台上:交易、头寸、交易、订单。

 
Mikhail Sergeev:

                    for(pos = 0; pos < 100500; pos++) 
                    {
                        if(OrderSelect(pos, SELECT_BY_POS))
                        if(OrderType() == OP_BUY)
                        {
                            buy_profit_USD = buy_profit_USD + OrderProfit() + OrderSwap() + OrderCommission();

                            buy_profit_Point = buy_profit_Point+ ((Bid - OrderOpenPrice()) / Point);

                                
                        }
                    }

为什么是100500这个数字,而不是OrdersTotal() 呢?

 
khasan kayumov:

你如何以点计算利润?

在你删除之前

//+------------------------------------------------------------------+
void OnStart()
  {
  double p;
   int i,pr=0;

   for(i=0; i<OrdersTotal(); i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
        p=MarketInfo(OrderSymbol(), MODE_POINT);
         if(OrderType()==OP_BUY)
           {
            pr+=int((MarketInfo(OrderSymbol(), MODE_BID)-OrderOpenPrice())/p);
           }
         if(OrderType()==OP_SELL)
           {
            pr+=int((OrderOpenPrice()-MarketInfo(OrderSymbol(), MODE_ASK))/p);
           }
        }
     }   
   Alert( "суммарный профит открытых позиций в пунктах = ",pr); 
  }
//+------------------------------------------------------------------+

它是这样的。

 
Ihor Herasko:

我习惯于根据终端使用术语。这可能是错误的,但在阅读文档时有很大的帮助。在MT4中:市场订单和待定订单。在MT5中:交易、头寸、订单。在其他平台上:交易、头寸、交易、订单。


如果我没有给出关于终端的提示呢?术语应该是跨平台的。在理解信息方面不会有任何问题。

我理解你的观点,我对它持宽容态度,从职能的名称来看,它是合理的。

如果你遇到5个交易者,一个使用QuickQuick,另一个使用MT4,第三个使用5-Rouble,第四个通过ninja交易,最后一个使用网络终端。

我们如何达成一个共同点,如何确定什么是立场,什么是命令?