老周 发表于 2017-6-23 14:57:37

统计交易手数脚本

#property copyright "Copyright 下载更多外汇ea"
#property link      "http://www.eazhijia.com"
#property show_inputs
extern datetime startTime=D'2013.01.01 00:00:00',//开始时间
endTime=D'2037.12.31 00:00:00';//结束时间
int init(){return(0);}
int deinit(){return(0);}//盈利值OrderProfit()
int start()
{int i, 平仓次=0, 平多次=0, 平空次=0, 平多获利次=0, 平多亏损次=0, 平空获利次=0, 平空亏损次=0,
          持仓次=0, 持多次=0, 持空次=0, 持多浮利次=0, 持多浮亏次=0, 持空浮利次=0, 持空浮亏次=0;
   double 平仓手=0, 平多手=0, 平空手=0, 平多获利总额=0, 平多亏损总额=0, 平空获利总额=0, 平空亏损总额=0,
          持仓手=0, 持多手=0, 持空手=0, 持多浮利总额=0, 持多浮亏总额=0, 持空浮利总额=0, 持空浮亏总额=0;
for(i=OrdersHistoryTotal()-1;i>=0;i--)//分别计算平仓数,平多手,平空手
   {if( OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==true
      //&& OrderSymbol()=Symbol()
          && startTime<=OrderOpenTime() && endTime>=OrderOpenTime() )
          {if( OrderType()==OP_BUY) {平多次++;平多手+=OrderLots(); if(OrderProfit()>=0){平多获利次++;平多获利总额+=OrderProfit();}
                                                                   else                {平多亏损次++;平多亏损总额+=OrderProfit();} }//只统计平多手
         if( OrderType()==OP_SELL){平空次++;平空手+=OrderLots(); if(OrderProfit()>=0){平空获利次++;平空获利总额+=OrderProfit(); }
                                                                   else                {平空亏损次++;平空亏损总额+=OrderProfit(); }}//只统计平空手
          } }
平仓次=平多次+平空次;平仓手=平多手+平空手;
for(i=OrdersTotal()-1;i>=0;i--)//分别计算持仓手,持多手,持空手
   {if( OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true
   //&& OrderSymbol()=Symbol()
       && startTime<=OrderOpenTime() && endTime>=OrderOpenTime())
      {if( OrderType()==OP_BUY) {持多次++;持多手+=OrderLots(); if(OrderProfit()>=0){持多浮利次++;持多浮利总额+=OrderProfit();}
                                                               else                {持多浮亏次++;持多浮亏总额+=OrderProfit();}}//只统计持仓多单数
         if( OrderType()==OP_SELL){持空次++;持空手+=OrderLots(); if(OrderProfit()>=0){持空浮利次++;持空浮利总额+=OrderProfit(); }
                                                               else                {持空浮亏次++;持空浮亏总额+=OrderProfit();}}//只统计持仓空单数
      } }
持仓次=持多次+持空次;持仓手=持多手+持空手;

Alert("   账名:",AccountName()
+"账号: "+AccountNumber()+"\n在"
+TimeToStr(startTime,TIME_DATE)+" 至"+TimeToStr(endTime,TIME_DATE)+" 这段时间内"
+"\n持仓次/手="+持仓次+"/"+持仓手+"其中包括"

+"\n\n持仓次多/空="+持多次+"/"+ 持空次
+"\n持仓手多/空="+持多手+"/"+持空手

+"\n\n持仓浮利次 多/空="+持多浮利次+"/"+持空浮利次
+"\n持仓浮利额多/空="+持多浮利总额+"/"+持空浮利总额

+"\n\n持仓浮亏次多/空="+持多浮亏次+"/"+持空浮亏次
+"\n持仓浮亏额多/空="+持多浮亏总额+"/"+持空浮亏总额

+"\n\n平仓次/手="+平仓次+"/"+平仓手+" 其中包括"

+"\n\n平仓次多/空="+平多次+"/"+平空次
+"\n平仓手多/空="+平多手+"/"+平空手
+"\n\n平仓获利次多/空="+平多获利次+"/"+平空获利次
+"\n平仓获利额多/空="+平多获利总额+"/"+平空获利总额
   
+"\n\n平仓亏损次多/空="+平多亏损次+"/"+平空亏损次
+"\n平仓亏损额多/空="+平多亏损总额+"/"+平空亏损总额
   
); return(0); }

vivi 发表于 2018-8-25 11:50:52

我是个凑数的。。。
页: [1]
查看完整版本: 统计交易手数脚本