×

MQL5 快速获取持仓数据手数盈亏函数

MQL5 快速获取持仓数据手数盈亏函数

myfxdata myfxdata 发表于2021-11-29 00:39:08 浏览827 评论0

抢沙发发表评论

函数说明:

用void传递变量的方式,快速获取持仓手数 盈亏等相关信息,非常方便。欢迎参考,可灵活使用;


void For_Orders_Data_All 

(int &b_deal,double &b_lot,double &b_profit,int &s_deal,double &s_lot,double &s_profit,int &a_deal,double &a_lot,double &a_profit,int MaMa )

{

b_deal=0;

b_lot=0;

b_profit=0;


s_deal=0;

s_lot=0;

s_profit=0;


a_deal=0;

a_lot=0;

a_profit=0;


int pt=PositionsTotal();

   for(int i=0;i<pt;i++)

   {

       if(PositionGetTicket(i)>0)

         {

                  if( PositionGetInteger(POSITION_MAGIC)==MaMa )

                     {

       //===============================================================================【本货币】

                          if( PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY && PositionGetString(POSITION_SYMBOL)==Symbol() )

                              {

                              b_deal++;

                              b_lot+=PositionGetDouble(POSITION_VOLUME);

                              b_profit+=PositionGetDouble(POSITION_PROFIT)+PositionGetDouble(POSITION_SWAP);; //多盈亏                       

                              }   

                             

                          if( PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL && PositionGetString(POSITION_SYMBOL)==Symbol() )

                              {

                              s_deal++;

                              s_lot+=PositionGetDouble(POSITION_VOLUME);

                              s_profit+=PositionGetDouble(POSITION_PROFIT)+PositionGetDouble(POSITION_SWAP);; //多盈亏                       

                              }  

                      } 

           }

     }       

a_deal=b_deal+s_deal;

a_lot=b_lot+s_lot;

a_profit=b_profit+s_profit;

//---------------------------------                                 

}//END


群贤毕至

访客