我的资金管理办法

Discussion in 'Risk and Uncertainty' started by univetsity, Jun 13, 2011.

  1. 本人还是MQL方面的新人,现将自己的资金管理部分代码帖出来,望前辈指点。
    double LotsOptimized()
    {
    double b,lot;
    int orders=HistoryTotal();
    int losses=0,wins=0;
    int c,e,f,d;
    b=iATR(NULL,0,60,0);
    c=AccountLeverage();

    d=AccountFreeMargin();//初始本金 不清楚如何表示初始本金,请前辈指点!
    if(orders>=1)
    {e=AccountFreeMargin(); } 交易后的保证金
    //---- select lot size
    Print(MarketInfo(Symbol(), MODE_LOTSIZE));
    Print(MarketInfo(Symbol(), MODE_LOTSTEP));
    Print(MarketInfo(Symbol(), MODE_MAXLOT));
    Print("this accountleverage is",c);
    if(b!=0&&d!=0)
    lot=NormalizeDouble((e*MaximumRisk/2000)*(1+3*(e/d-1)),2);
    if(lot<0.01) lot=0.01;

    return(lot);
    }
    /*我是想通过与初始本金大小比较下,来确实后面的仓位大小,如果盈利后,就放大仓位,亏损后就会加倍缩小。总体风险水平保持在总仓位0.02(maximumRisk)的上下浮动。但在这个情况下,e/d 似乎一直为1,主要是初始本金不知如何表述。分母可以为 10*b*100.00*c 这是另外一种思路,但在测试时总是显示分母太小 所得到的手数超出MM平台的上限。不知何故?*/
    :)这也是坛里前辈以前讨论过的问题:http://www.hylt.net/vb/showthread.php?t=18824
     
  2. 是问题太简单了么 没人回啊?第一个办法是等比例控仓,赚钱后加倍放大,亏钱后加倍缩小,第二个办法是海龟们用的办法 但代码方面,我确实有很多不明白了,请前辈指点一下啊:)
     
  3. 第一个方法风险很大,因为有可能是错误的;第二个方法可以参考开拓者的代码