OrderCalcProfit转化为mt4函数

 
请哪位高手将OrderCalcProfit转化为mt4可以直接使用的函数,谢谢
 

MT4中用这个函数

double margin = MarketInfo(Symbol(),MODE_MARGINREQUIRED)
 
Ziheng Zhuang:

MT4中用这个函数

你好,应该不是这个函数:

OrderCalcProfit

函数为当前账户计算利润,在当前的交易市场条件下,以参量为基础传递。函数使用交易操作的结构进行再评估,值是返回的当前账户的值。

bool  OrderCalcProfit(
   ENUM_ORDER_TYPE       action,           // 订单类型 (ORDER_TYPE_BUY 或者 ORDER_TYPE_SELL)
   string                symbol,           // 交易品种名称
   double                volume,           // 交易量
   double                price_open,       // 开盘价
   double                price_close,      // 收盘价
   double&               profit            // 为获得利润值的变量
   );

参量

action

[in]  订单类型,可以是 ENUM_ORDER_TYPE 项目里ORDER_TYPE_BUY 或 ORDER_TYPE_SELL值中的一个。

symbol

[in]  交易品种名称。

volume

[in]  交易操作成交量。

price_open

[in]  开盘价。

price_close

[in]  收盘价。

profit

[out] 计算利润的变量值在函数成功执行后编写进去,估计利润值依据许多因素,并在不同的市场环境中加以区别。

返回值

如果成功,函数返回true,否则返回false。如果指定无效订单类型,函数返回false,为了获得错误信息,可以调用 GetLastError()

 

哦,这个函数确实很少用,我看成那个计算保证金的函数(那个常用)。

这个是 OrderCalcProfit 估算利润,MT4没有这种对应的函数。

改写个MT4的,依据给定的手数/开仓/平仓以及品种的点值 tick value估算利润。

bool  OrderCalcProfit(string symbol,double volume,double price_open,double price_close,double &profit)
{
   double tickValue = SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_VALUE);
   double point = SymbolInfoDouble(symbol,SYMBOL_POINT);
   if(tickValue<=0||point<=0)return(false);   
   profit = volume*(price_close-price_open)/point*tickValue;
   return(true);
}
 
Ziheng Zhuang:

哦,这个函数确实很少用,我看成那个计算保证金的函数(那个常用)。

这个是 OrderCalcProfit 估算利润,MT4没有这种对应的函数。

改写个MT4的,依据给定的手数/开仓/平仓以及品种的点值 tick value估算利润。

太感谢了,请问你编写的这个函数需要区分买单还是卖单吗

 
Jian Guo Jiang:

太感谢了,请问你编写的这个函数需要区分买单还是卖单吗


不需要。不管是多单还是空单,都是赚的差价,算差价即可。

 
Ziheng Zhuang:


不需要。不管是多单还是空单,都是赚的差价,算差价即可。

大师,请教一个问题 FileWriteArray(handle,历史单,0,n);这个n是什么意思,刚接触mt5

 
Jian Guo Jiang:

大师,请教一个问题 FileWriteArray(handle,历史单,0,n);这个n是什么意思,刚接触mt5


查看帮助文档,n是写入的元素的个数。

uint  FileWriteArray( 
   int          file_handle,         // File handle 
   const void&  array[],             // Array 
   int          start=0,             // Start index in the array 
   int          count=WHOLE_ARRAY    // Number of elements 
   );
原因: