从保证金的百分比中正确计算出该批次的金额 - 页 2

 
Roger:

当然,我搞错了,真正的是100*100*100/100000=0.1。

啊,对不起,我在看黄金......所以现在不能用你的公式交易黄金?

但是,即使是猕猴桃可能也不会买这么多,如果你拿欧罗巴,甚至还有0.05左右的限制(我们说的是真钱)......

 
如果你不喜欢它,就不要吃它,或者说如果你不知道如何使用它,就不要管它。如果你把它正确地放在公式中,它就会起作用,甚至对黄金也是如此。
 
Roger:
好吧,为什么要扭曲它,如果你不喜欢它,就不要吃它,或者说,如果你不知道如何使用它,就不要麻烦了。如果你把它适当地放在配方中,它就会起作用,即使是在黄金上。

...拉动快门...

你说不喜欢是什么意思? 如果我输入上述参数来开立市场订单,我应该怎么做?

 
keekkenen:

螺栓被抽动......

你的意思是如果你不喜欢它,就不要吃它? 你要怎么做才能用我上面提到的参数开出一个市场订单?


这与幽默有什么关系呢?你是第一个来启动的人--公式是错误的,你为什么要这样做?即使不了解它,凭直觉,如果你先在上面拉屎,它也不会更糟。

如果美元排在第二位,计算公式则不同。

顺便说一句,事实也是扭曲的。

 
Roger:
如果你不喜欢它,就不要吃它,或者更准确地说,如果你不知道如何使用它,就不要麻烦了。如果你把它适当地放在公式中,一切都会成功,即使是在黄金上。

好吧,假设我们以这样的(0.1)手开盘,一个合理的问题出现了,在科利亚叔叔面前,我们还能坚持多久?

但是还有其他的订单,他们在其他的交易对上也不会 "坐以待毙",他们下去和科里亚叔叔--敲,敲,当有真金白银时,我们应该如何处理?

 
那么,什么样的正常会在100%的库房里打开?目标是--我想用5%的闲钱开盘,那会是多少钱一签。没有追究其他的想法。
 

keekkenen:

如果我们有100英镑,100的杠杆和100%的风险,即我们以全额开盘,我们能得到什么?


keekkenen:

好吧,假设我们以这样的(0.1)手开盘,一个合理的问题出现了,留给科利亚大叔的点数还有多少,我们能承受多少?

但还有其他的订单,他们也不会在其他对上 "坐以待毙",他们下跌,科里亚叔叔做了一个敲门砖,当有真金白银时,应该如何处理呢?

你是否经常用全部存款建仓,甚至用真实账户 建仓(和用黄金)?

你是如何看到结果的?

 
wenay:
这个要好得多,没有用另一种方式的杠杆计算。我非常喜欢根据给定的点位距离计算手数,即 "在10点内耗尽20%的存款=你需要手数",这个功能要求并计算出

我没有注意到计算中的任何变化,tikvalue是=1,当你改变杠杆时保持不变,当你改变杠杆时你也可以输。

你可以用脚本检查自己的功能,先开一个杠杆 为1/200的模拟账户,再开一个规模为1/100的账户,手数的变化不会发生,tikvalue仍然是1,在我看来,最简单的方法就是在外部变量中做出初始杠杆,并从它的计算中跳出来,当你在机器中改变杠杆,立即将手数按较小的杠杆计算。

int start()
  {

   double  tic  = MarketInfo( Symbol(), MODE_TICKVALUE ); 

   Comment(
   "AccountLeverage  =  ",AccountLeverage() ,"\n",
   "LotSize =  ",DoubleToStr(LotSize(OP_BUY,20,300),2)," TickValue =  ",DoubleToStr(tic,2) );

   return(0);
  }
//+------------------------------------------------------------------+
double LotSize( int type, double LotRisk, int SL  )
{   //    int znakov_lot=0;
        double  lot_min         = MarketInfo( Symbol(), MODE_MINLOT  ); 
        double  lot_max         = MarketInfo( Symbol(), MODE_MAXLOT  ); 
        double  lot_step        = MarketInfo( Symbol(), MODE_LOTSTEP ); 
        double  lotcost         = MarketInfo( Symbol(), MODE_TICKVALUE );       
                
        double  lot             = 0.0;
        double  dollarsPerPip   = 0.0;
        
        lot = AccountBalance()*LotRisk/100.0;
        dollarsPerPip = lot/SL;
     //   if (lot_min<2) {znakov_lot=0;  if (lot_min<0.2) {znakov_lot=1;  if (lot_min<0.02) {znakov_lot=3;  if (lot_min<0.002) {znakov_lot=4; }}}}      
        lot = NormalizeDouble( dollarsPerPip/lotcost, 2 );      
        
        lot = NormalizeDouble( lot / lot_step, 0 ) * lot_step;
        
        if ( lot < lot_min ) lot = lot_min;
        if ( lot > lot_max ) lot = lot_max;
        
        if ( AccountFreeMarginCheck( Symbol(), type, lot ) < 10 || GetLastError() == 134 ) 
        { 
                Alert ( "Impossible to open position with lot = ", DoubleToStr( lot, 2 ), ". Not enough money." );
                return(-1);
        }

        return( lot );
}
 
在手数计算中,NormalizeDlouble()的作用是什么?
 
wenay:
这个要好得多,这里没有杠杆计算。我真的很喜欢在给定的pps距离内,以存款的%来计算手数,即 "在10个pps内耗尽20%的存款=你需要手数",这个问题和计数的功能。

lot = AccountBalance()*LotRisk/100.0;
但这里肯定应该是AccountBalance,而不是 AccountFreeMargin, 那么也许不是一个专家的一个批次?