从保证金的百分比中正确计算出该批次的金额 - 页 4 12345678910 新评论 GoaL 2014.04.05 15:54 #31 感谢大家的帮助和参与...这是我 "痛苦 "的结果。 double lotSize(double deposSize=1000.0, string currName="USDCHF", double proc=2.0, int pipsLoss=1000) { double currMove=deposSize*proc/100;// расчет процента от величины, предположительно, депозита double lotCount=currMove/(pipsLoss*MarketInfo(currName,MODE_TICKVALUE));//ну а тут и ведеться сам расчет лота if(lotCount<MarketInfo(currName,MODE_MINLOT)) { return MarketInfo(currName,MODE_MINLOT); } return NormalizeDouble(lotCount,2); //return lotCount; } 这看起来并不难,但如果没有建议,我是不可能做到的。 Correct calculation of the 需要编码方面的帮助 新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 keekkenen 2014.04.05 16:31 #32 double lotCount=currMove/(pipsLoss*MarketInfo(currName,MODE_TICKVALUE));//然后进行批量计算本身。 这是最酷的,因为它得到了......而且现在正在计算 double currMove=deposSize*proc/100 = 1*100/100 = 1; 我们有1英镑 currName = "EURUSD" MarketInfo(currName,MODE_TICKVALUE) = 0.1用于五位数报价 pipsLoss = 1000 总的来说,我们有 double lotCount=currMove/(pipsLoss*MarketInfo(currName,MODE_TICKVALUE))= 1 /(1000*0.1) = 0.01 一切似乎都很好(每手保证金为68.53),如果pipsLoss = 100,那么 lotCount = 0.1,但没有足够的保证金 - 对于0.1我们需要6.853,而我们有1英镑... 另一方面,在第一种情况下,有1英镑,以1000点的止损开盘,我们将有0.31英镑的剩余。 我想知道这些钱是否足够让一个有1000点止损的订单在999点的下跌中生存下来,我怀疑这是否会发生。 例如,0.01手的1个点的价格将是0.001,0.31/0.001=310点,也就是说,如果我们损失310点,订单将被止损关闭(这是在止损为0%的情况下,这是错误的,因为它总是更大,这意味着订单将提前关闭),因此所有的计算是没有价值的,因为它们不能帮助我们正确计算给定条件下的正确手数,所以订单将通过止损正确运作。 Correct calculation of the Victor Nikolaev 2014.04.05 17:12 #33 double CalcLotSize(double Lot,double lRisk,int lSL=0) { string lSymbol=Symbol(); double dLotMin = MarketInfo(lSymbol, MODE_MINLOT ); double dLotMax = MarketInfo(lSymbol, MODE_MAXLOT ); double dLotStep = MarketInfo(lSymbol, MODE_LOTSTEP ); double dLot=Lot; if(lRisk>0) { if(lSL>0) { double dLotCost=MarketInfo(lSymbol,MODE_TICKVALUE); dLot=MathRound(AccountFreeMargin()*lRisk*0.01/(lSL*dLotCost*dLotStep))*dLotStep; } else { double dLotMargin=MarketInfo(lSymbol,MODE_MARGINREQUIRED); dLot=MathRound(AccountFreeMargin()*lRisk *0.01/(dLotMargin*dLotStep))*dLotStep; } } if(dLot<dLotMin) dLot=dLotMin; if(dLot>dLotMax) dLot=dLotMax; return(dLot); } keekkenen 2014.04.05 18:14 #34 似乎所有关于计数的想法都来自同一个地方,就像雨后的蘑菇一样相似......(我在批评我自己...) 你最好动动脑筋,想想地段计算功能应该算什么,应该考虑什么,因为提出的方案经不起推敲......。 GoaL 2014.04.05 18:53 #35 让我为那些很有天赋的人解释一下......currMove - 这是通过pipLots点数时损失的百分比的货币价值(在1000点(5位)的行程中,1000英镑的存款的2%将是20美元) ... 这是它的优点......现在计算一下 double currMove=deposSize*proc/100 = 1*100/100 = 1; 我们有1英镑 也就是说,如果有人在这些条件下有1块钱的损失,那么我只能佩服交易员的极端--在这种情况下,他有价值50镑的存款......如果有人在亏损的情况下获得1美元,那么我只能佩服交易员的极端主义--在这种情况下,他有50美元的存款...... 我认为以下对帖子文本的讨论是毫无意义的......因为与巨魔争论是不尊重人的行为,而且像他们那样不专心。 我很荣幸。 Александр 2014.04.05 19:55 #36 gochu: 让我为那些很有天赋的人解释一下......currMove - 这是通过pipLots点数时损失的百分比的货币价值(在1000点(5位)的行程中,1000英镑的存款的2%将是20美元) ... 这是它的优点......现在计算一下 double currMove=deposSize*proc/100 = 1*100/100 = 1; 我们有1英镑 也就是说,如果有人在这些条件下有1块钱的损失,那么我只能佩服交易员的极端--在这种情况下,他有价值50镑的存款......如果有人在亏损的情况下获得1美元,那么我只能佩服交易员的极端主义--在这种情况下,他有50美元的存款...... 我认为以下对帖子文本的讨论是毫无意义的......因为与巨魔争论是不尊重人的行为,而且像他们那样不专心。 荣誉。 double currMove=deposSize*proc/100 = 1*100/100 = 1 一般来说,意味着存款是1美元,而不是50美元(并且有100%的 损失)。 :-) GoaL 2014.04.05 20:00 #37 EverAlex: double currMove=deposSize*proc/100 = 1*100/100 = 1 一般来说,意味着存款是1美元,而不是50美元(而且有100%的 损失)。 well....有了这样的存款,祝你好运! Александр 2014.04.05 20:12 #38 Vinin: double CalcLotSize(double Lot,double lRisk,int lSL=0) 什么是地段? 而iSL 是用什么来衡量的(我想上面说的是交易符号点)? ...(lsl*dLotCost*dLotStep))*dLotStep; 意味着它不是以交易符号的点数(MODE_POINT),而是以LOTSTEP? 还是什么? Victor Nikolaev 2014.04.06 01:39 #39 EverAlex: 什么是地段? 而iSL 是用什么来衡量的(我想上面说的是交易符号点)? ...(lsl*dLotCost*dLotStep))*dLotStep; 意味着它不是以交易符号的点数(MODE_POINT),而是以LOTSTEP? 还是什么? 这就是风险调整地段的计算。触发止损时,你将损失多少存款? Александр 2014.04.06 10:20 #40 Vinin: 这是在考虑到风险的情况下对地段的计算。触发止损时,存款的哪一部分将被损失 因此lSL是指多少个点到SL 点=0.00001(在5位数的报价上) dLotStep = 0.01 公式(LSL*dLotCost*dLotStep))*dLotStep是确定的 它应该是类似于(LSL*dLotCost*Point))*dLotStep 的东西。 12345678910 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
感谢大家的帮助和参与...这是我 "痛苦 "的结果。
double lotSize(double deposSize=1000.0, string currName="USDCHF", double proc=2.0, int pipsLoss=1000)
{
double currMove=deposSize*proc/100;// расчет процента от величины, предположительно, депозита
double lotCount=currMove/(pipsLoss*MarketInfo(currName,MODE_TICKVALUE));//ну а тут и ведеться сам расчет лота
if(lotCount<MarketInfo(currName,MODE_MINLOT))
{
return MarketInfo(currName,MODE_MINLOT);
}
return NormalizeDouble(lotCount,2);
//return lotCount;
}
这看起来并不难,但如果没有建议,我是不可能做到的。
double lotCount=currMove/(pipsLoss*MarketInfo(currName,MODE_TICKVALUE));//然后进行批量计算本身。
这是最酷的,因为它得到了......而且现在正在计算
double currMove=deposSize*proc/100 = 1*100/100 = 1; 我们有1英镑
currName = "EURUSD"
MarketInfo(currName,MODE_TICKVALUE) = 0.1用于五位数报价
pipsLoss = 1000
总的来说,我们有
double lotCount=currMove/(pipsLoss*MarketInfo(currName,MODE_TICKVALUE))= 1 /(1000*0.1) = 0.01
一切似乎都很好(每手保证金为68.53),如果pipsLoss = 100,那么 lotCount = 0.1,但没有足够的保证金 - 对于0.1我们需要6.853,而我们有1英镑...
另一方面,在第一种情况下,有1英镑,以1000点的止损开盘,我们将有0.31英镑的剩余。
我想知道这些钱是否足够让一个有1000点止损的订单在999点的下跌中生存下来,我怀疑这是否会发生。
例如,0.01手的1个点的价格将是0.001,0.31/0.001=310点,也就是说,如果我们损失310点,订单将被止损关闭(这是在止损为0%的情况下,这是错误的,因为它总是更大,这意味着订单将提前关闭),因此所有的计算是没有价值的,因为它们不能帮助我们正确计算给定条件下的正确手数,所以订单将通过止损正确运作。
似乎所有关于计数的想法都来自同一个地方,就像雨后的蘑菇一样相似......(我在批评我自己...)
你最好动动脑筋,想想地段计算功能应该算什么,应该考虑什么,因为提出的方案经不起推敲......。
让我为那些很有天赋的人解释一下......currMove - 这是通过pipLots点数时损失的百分比的货币价值(在1000点(5位)的行程中,1000英镑的存款的2%将是20美元) ...
这是它的优点......现在计算一下
double currMove=deposSize*proc/100 = 1*100/100 = 1; 我们有1英镑
也就是说,如果有人在这些条件下有1块钱的损失,那么我只能佩服交易员的极端--在这种情况下,他有价值50镑的存款......如果有人在亏损的情况下获得1美元,那么我只能佩服交易员的极端主义--在这种情况下,他有50美元的存款......
我认为以下对帖子文本的讨论是毫无意义的......因为与巨魔争论是不尊重人的行为,而且像他们那样不专心。
我很荣幸。
让我为那些很有天赋的人解释一下......currMove - 这是通过pipLots点数时损失的百分比的货币价值(在1000点(5位)的行程中,1000英镑的存款的2%将是20美元) ...
这是它的优点......现在计算一下
double currMove=deposSize*proc/100 = 1*100/100 = 1; 我们有1英镑
也就是说,如果有人在这些条件下有1块钱的损失,那么我只能佩服交易员的极端--在这种情况下,他有价值50镑的存款......如果有人在亏损的情况下获得1美元,那么我只能佩服交易员的极端主义--在这种情况下,他有50美元的存款......
我认为以下对帖子文本的讨论是毫无意义的......因为与巨魔争论是不尊重人的行为,而且像他们那样不专心。
荣誉。
double currMove=deposSize*proc/100 = 1*100/100 = 1 一般来说,意味着存款是1美元,而不是50美元(并且有100%的 损失)。
:-)
double currMove=deposSize*proc/100 = 1*100/100 = 1 一般来说,意味着存款是1美元,而不是50美元(而且有100%的 损失)。
well....有了这样的存款,祝你好运!
Vinin:
什么是地段?
而iSL 是用什么来衡量的(我想上面说的是交易符号点)?
...(lsl*dLotCost*dLotStep))*dLotStep; 意味着它不是以交易符号的点数(MODE_POINT),而是以LOTSTEP?
还是什么?什么是地段?
而iSL 是用什么来衡量的(我想上面说的是交易符号点)?
...(lsl*dLotCost*dLotStep))*dLotStep; 意味着它不是以交易符号的点数(MODE_POINT),而是以LOTSTEP?
还是什么?这就是风险调整地段的计算。触发止损时,你将损失多少存款?
这是在考虑到风险的情况下对地段的计算。触发止损时,存款的哪一部分将被损失
因此lSL是指多少个点到SL
点=0.00001(在5位数的报价上)
dLotStep = 0.01
公式(LSL*dLotCost*dLotStep))*dLotStep是确定的
它应该是类似于(LSL*dLotCost*Point))*dLotStep 的东西。