统计交易手数脚本

楼主  收藏   举报   帖子创建时间:  2019-05-05 11:40 回复:0 关注量:54
  1. #property copyright "Copyright 下载更多外汇EA"
  2. #property link      "http://www.eazhijia.com"
  3. #property show_inputs
  4. extern datetime startTime=D'2013.01.01 00:00:00',//开始时间
  5. endTime=D'2037.12.31 00:00:00';//结束时间
  6. int init(){return(0);}
  7. int deinit(){return(0);}//盈利值OrderProfit()
  8. int start()
  9.   {int i, 平仓次=0, 平多次=0, 平空次=0, 平多获利次=0, 平多亏损次=0, 平空获利次=0, 平空亏损次=0,
  10.           持仓次=0, 持多次=0, 持空次=0, 持多浮利次=0, 持多浮亏次=0, 持空浮利次=0, 持空浮亏次=0;
  11.    double 平仓手=0, 平多手=0, 平空手=0, 平多获利总额=0, 平多亏损总额=0, 平空获利总额=0, 平空亏损总额=0,
  12.           持仓手=0, 持多手=0, 持空手=0, 持多浮利总额=0, 持多浮亏总额=0, 持空浮利总额=0, 持空浮亏总额=0;
  13.   for(i=OrdersHistoryTotal()-1;i>=0;i--)//分别计算平仓数,平多手,平空手
  14.      {if( OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true
  15.         //&& OrderSymbol()=Symbol()  
  16.           && startTime<=OrderOpenTime() && endTime  >=OrderOpenTime() )
  17.           {if( OrderType()==OP_BUY) {平多次++;平多手+=OrderLots(); if(OrderProfit()>=0){平多获利次++;平多获利总额+=OrderProfit();}
  18.                                                                    else                {平多亏损次++;平多亏损总额+=OrderProfit();} }//只统计平多手
  19.            if( OrderType()==OP_SELL){平空次++;平空手+=OrderLots(); if(OrderProfit()>=0){平空获利次++;平空获利总额+=OrderProfit(); }
  20.                                                                    else                {平空亏损次++;平空亏损总额+=OrderProfit(); }}//只统计平空手
  21.           } }
  22.   平仓次=平多次+平空次;平仓手=平多手+平空手;
  23.   for(i=OrdersTotal()-1;i>=0;i--)//分别计算持仓手,持多手,持空手
  24.      {if( OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true
  25.      //&& OrderSymbol()=Symbol()
  26.        && startTime<=OrderOpenTime() && endTime  >=OrderOpenTime()  )
  27.         {if( OrderType()==OP_BUY) {持多次++;持多手+=OrderLots(); if(OrderProfit()>=0){持多浮利次++;持多浮利总额+=OrderProfit();}
  28.                                                                  else                {持多浮亏次++;持多浮亏总额+=OrderProfit();}}//只统计持仓多单数
  29.          if( OrderType()==OP_SELL){持空次++;持空手+=OrderLots(); if(OrderProfit()>=0){持空浮利次++;持空浮利总额+=OrderProfit(); }
  30.                                                                  else                {持空浮亏次++;持空浮亏总额+=OrderProfit();}}//只统计持仓空单数
  31.       } }
  32.   持仓次=持多次+持空次;持仓手=持多手+持空手;
  33.   
  34.   alert("   账名:  ",AccountName()
  35.   +"  账号: "+AccountNumber()+"n在  "
  36.   +TimeToStr(startTime,TIME_DATE)+" 至  "+TimeToStr(endTime,TIME_DATE)+" 这段时间内"
  37.   +"n持仓  次/手="+持仓次+"/"+持仓手+"  其中包括"
  38.   
  39.   +"nn持仓次  多/空="+持多次+"/"+ 持空次
  40.   +"n持仓手  多/空="+持多手+"/"+持空手
  41.   
  42.   +"nn持仓浮利次 多/空="+持多浮利次+"/"+持空浮利次
  43.   +"n持仓浮利额  多/空="+持多浮利总额+"/"+持空浮利总额
  44.   
  45.   +"nn持仓浮亏次  多/空="+持多浮亏次+"/"+持空浮亏次
  46.   +"n持仓浮亏额  多/空="+持多浮亏总额+"/"+持空浮亏总额
  47.   
  48.   +"nn平仓  次/手="+平仓次+"/"+平仓手+" 其中包括"
  49.   
  50.   +"nn平仓次  多/空="+平多次+"/"+平空次
  51.   +"n平仓手  多/空="+平多手+"/"+平空手
  52.   +"nn平仓获利次  多/空="+平多获利次+"/"+平空获利次
  53.   +"n平仓获利额  多/空="+平多获利总额+"/"+平空获利总额
  54.    
  55.   +"nn平仓亏损次  多/空="+平多亏损次+"/"+平空亏损次
  56.   +"n平仓亏损额  多/空="+平多亏损总额+"/"+平空亏损总额
  57.    
  58.   ); return(0); }
打赏