关于开仓手数计算求助

weisong5908  

小弟刚研究ea,想做一个 最大开仓手数的显示


double iFundsToHands(string symbol,double priceFunds)      priceFunds是账户可用预付款,也就是可用资金

  {

   double openLots=priceFunds/MarketInfo(symbol,MODE_MARGINREQUIRED);

  }


我现在只能算出,最大开仓手数。


而我想要的是 预留30个点的可用资金,用于行情波动,然后计算最大开仓手数  不会写这个代码了。 


希望高手帮帮忙,谢谢 

Hung Wen Lin  

你的算式跟行情沒有交集 重新設計一下算法 才能滿足你預留30點的要求

另外 有部分平台的保證金計算方式不太一樣 你這算法可能會有誤差

有興趣的話 我可以私下跟你交流

hbsbill  
weisong5908:

小弟刚研究ea,想做一个 最大开仓手数的显示


double iFundsToHands(string symbol,double priceFunds)      priceFunds是账户可用预付款,也就是可用资金

  {

   double openLots=priceFunds/MarketInfo(symbol,MODE_MARGINREQUIRED);

  }


我现在只能算出,最大开仓手数。


而我想要的是 预留30个点的可用资金,用于行情波动,然后计算最大开仓手数  不会写这个代码了。 


希望高手帮帮忙,谢谢 

只给开仓最大手数预留30个点的可用资金?!说实在的,你的真金白银在保证金交易市场中存活不到24小时的,所以写这样的代码没有意义,祝你好运。
weisong5908  
hbsbill #:
只给开仓最大手数预留30个点的可用资金?!说实在的,你的真金白银在保证金交易市场中存活不到24小时的,所以写这样的代码没有意义,祝你好运。

我加入一个脚本,就是 可用保证金 为零,就自动平仓。  平仓之后已用保证金还是占了大部分。


这样才能真正以小博大,一个趋势行情收益可观,亏算也只有30个点。

weisong5908  
Hung Wen Lin #:

你的算式跟行情沒有交集 重新設計一下算法 才能滿足你預留30點的要求

另外 有部分平台的保證金計算方式不太一樣 你這算法可能會有誤差

有興趣的話 我可以私下跟你交流

已经私信你了

weisong5908  

请问我这么写了行吗?


openLots=priceFunds/(300 * MarketInfo(symbol,MODE_TICKVALUE) + MarketInfo(symbol,MODE_MARGINREQUIRED));


但是不确定这里涉及没涉及杠杆比例, MODE_MARGINREQUIRED 是指标准的保证金,这个标准保证金算没算平台的杠杆


请高手帮忙讲解一下。谢谢

weiliang Li  
weisong5908 #:

请问我这么写了行吗?


openLots=priceFunds/(300 * MarketInfo(symbol,MODE_TICKVALUE) + MarketInfo(symbol,MODE_MARGINREQUIRED));


但是不确定这里涉及没涉及杠杆比例, MODE_MARGINREQUIRED 是指标准的保证金,这个标准保证金算没算平台的杠杆


请高手帮忙讲解一下。谢谢

我有个算法,可适用于不同的平台,需要的话联系我

Ziheng Zhuang  
weisong5908 #:

请问我这么写了行吗?


openLots=priceFunds/(300 * MarketInfo(symbol,MODE_TICKVALUE) + MarketInfo(symbol,MODE_MARGINREQUIRED));


但是不确定这里涉及没涉及杠杆比例, MODE_MARGINREQUIRED 是指标准的保证金,这个标准保证金算没算平台的杠杆


请高手帮忙讲解一下。谢谢

你把两个概念搞混了。

MODE_MARGINREQUIRED :这个是1手需要多少保证金,与点值无关。可以用于简单的计算手数,即风险金额除以1手需要的保证金。

MODE_TICKVALUE: 这个是点值。可以用来计算手数,需要风险金额和止损点数,止损点数乘以点值就是止损金额,用风险金额除以止损金额就是手数。这里边还有个细节就是止损点数应该先转换成包含TICKSIZE的个数,因为TICKVALUE是与TICKSIZE对应的,而不是与POINT对应。