MT4
自己设计了一段代码,有错误,求解决(已解决)
回复:0  浏览:905
  • 楼主admin 圈主
  • 2019-05-05 05:55
我编了一段代码,想用此计算交易量,但有错误,请帮忙解决。其思想是根据以前的盈利情况,如没有亏损,则以本金一定比例开仓。如果有亏损,则将亏损部分再加到其上。而如果亏损超过一定值时(30%),则从新计算亏损和本金。
  就是亏损小时,以一定比例加仓;亏损大时,承认此次亏损,再从头开始。
  但测试时显示错误4051,不知为什么
  代码如下

  • double LotsOptimized()
  • {
  • double j=0,k=0,l=0,kuisun,xianjin,lot;
  • for(int i=OrdersHistoryTotal()-1;i>=0;i--)
  • {
  •     OrderSelect(i, SELECT_BY_POS, MODE_HISTORY);
  •     if(OrderSymbol()==Symbol() )
  •     {
  •      j=j+OrderProfit();
  •      k=k+OrderProfit();
  •      if(j>=l) l=j;  //l为盈利最大值
  •      kuisun=l-j;//计算亏损     
  •      xianjin=k+10000+kuisun;//目前应该的本金额,其中10000为初始本金额
  •      if(kuisun>0.3*xianjin) j=0;l=0;  //如果亏损大于本金额的30%,重新计算交易单盈利情况
  •     }
  •     lot=xianjin*1%/500+kuisun/500;
  • }   
  • return(lot);}

复制代码