liuzizai 发表于 2020-8-9 19:23:45

仓位管理,最小下0.1手,根据保证金占比来计算下单手数

仓位管理,最小下0.1手,根据保证金占比来计算下单手数
double LotsOptimized()
{
   double lot=Lots;//0.1
   int    orders=HistoryTotal();   // history orders total
   int    losses=0;                  // number of losses orders without a break
//--- select lot size
   lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//--- calcuulate number of losses orders without a break
   if(DecreaseFactor>0)
   {
      for(int i=orders-1;i>=0;i--)
      {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
         {
            Print("Error in history!");
            break;
         }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL)
            continue;
         //---
         if(OrderProfit()>0) break;
         if(OrderProfit()<0) losses++;
      }
      if(losses>1)
         lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
   }
//--- return lot size
   if(lot<0.1) lot=0.1;
   return(lot);
}


sk678 发表于 2020-8-9 20:26:02

感谢分享,学习了

摩羯羽人 发表于 2020-8-9 20:44:39

感谢分享!MaximumRisk一般设置为多大合适呢?

liuzizai 发表于 2020-8-9 21:32:50

摩羯羽人 发表于 2020-8-9 20:44
感谢分享!MaximumRisk一般设置为多大合适呢?

原始设定是10000保证金每次下0.1手,MaximumRisk为0.01,可以自行调整。

ljl1212004 发表于 2020-8-10 13:07:24

谢谢分享

zhzhp666 发表于 2021-9-22 07:56:30

不不错的工具

yifu0821 发表于 2021-9-22 08:17:23

感謝分享

alonestar 发表于 2021-9-22 12:41:31

感謝分享

手艺人 发表于 2022-1-10 10:02:39

谢谢分享,学习了

aa39981143 发表于 2022-3-7 16:15:12

感谢分享,学习了

anson1979 发表于 2022-3-7 17:24:51

感谢分享

daerbushen 发表于 2022-3-7 18:24:01

谢谢分享

daerwushen 发表于 2022-3-7 18:31:37

谢谢分享

new87241 发表于 2022-3-8 12:46:09

感谢分享,学习了

hqin212 发表于 2022-3-23 07:50:04

路过看看

gjhgxc 发表于 2022-3-23 10:15:38

谢谢,希望用到

freeboy321 发表于 2022-3-28 03:08:22

完全看不懂

277699692 发表于 2022-3-31 14:52:55

看起来不错 试试

nanaliu 发表于 2022-3-31 16:19:20

这个很有用处

Jerryxia0826 发表于 2022-3-31 16:42:47

感谢分享
页: [1] 2
查看完整版本: 仓位管理,最小下0.1手,根据保证金占比来计算下单手数