你的算式跟行情沒有交集 重新設計一下算法 才能滿足你預留30點的要求
另外 有部分平台的保證金計算方式不太一樣 你這算法可能會有誤差
有興趣的話 我可以私下跟你交流
小弟刚研究ea,想做一个 最大开仓手数的显示
double iFundsToHands(string symbol,double priceFunds) priceFunds是账户可用预付款,也就是可用资金
{
double openLots=priceFunds/MarketInfo(symbol,MODE_MARGINREQUIRED);
}
我现在只能算出,最大开仓手数。
而我想要的是 预留30个点的可用资金,用于行情波动,然后计算最大开仓手数 不会写这个代码了。
希望高手帮帮忙,谢谢
请问我这么写了行吗?
openLots=priceFunds/(300 * MarketInfo(symbol,MODE_TICKVALUE) + MarketInfo(symbol,MODE_MARGINREQUIRED));
但是不确定这里涉及没涉及杠杆比例, MODE_MARGINREQUIRED 是指标准的保证金,这个标准保证金算没算平台的杠杆
请高手帮忙讲解一下。谢谢
请问我这么写了行吗?
openLots=priceFunds/(300 * MarketInfo(symbol,MODE_TICKVALUE) + MarketInfo(symbol,MODE_MARGINREQUIRED));
但是不确定这里涉及没涉及杠杆比例, MODE_MARGINREQUIRED 是指标准的保证金,这个标准保证金算没算平台的杠杆
请高手帮忙讲解一下。谢谢
你把两个概念搞混了。
MODE_MARGINREQUIRED :这个是1手需要多少保证金,与点值无关。可以用于简单的计算手数,即风险金额除以1手需要的保证金。
MODE_TICKVALUE: 这个是点值。可以用来计算手数,需要风险金额和止损点数,止损点数乘以点值就是止损金额,用风险金额除以止损金额就是手数。这里边还有个细节就是止损点数应该先转换成包含TICKSIZE的个数,因为TICKVALUE是与TICKSIZE对应的,而不是与POINT对应。
小弟刚研究ea,想做一个 最大开仓手数的显示
double iFundsToHands(string symbol,double priceFunds) priceFunds是账户可用预付款,也就是可用资金
{
double openLots=priceFunds/MarketInfo(symbol,MODE_MARGINREQUIRED);
}
我现在只能算出,最大开仓手数。
而我想要的是 预留30个点的可用资金,用于行情波动,然后计算最大开仓手数 不会写这个代码了。
希望高手帮帮忙,谢谢