数组应用的问题
//------------------------------------------------------------------------
// 简称: ZS_12_2
// 名称: 数组测试_交易统计
// 类别: 公式应用
// 类型: 用户应用
// 输出: 学习理解数组应用,建立交易统计表格
//------------------------------------------------------------------------
Params 
    Integer Lots(1);//交易手数 
Vars  
	Global Numeric ReadDateTime;//准备就绪的日期时间 
	Global Array<Numeric> TradeRecord;//分次交易记录 
	Global Array<Array<Numeric>> TradeStats;//交易统计
	
Defs//此处添加公式函数
    Integer Df_LogFile(StringRef str)//日志函数 /将字符串str附加到日志文件
	{  
		IF (StrategyMode==1)
		    FileAppend("D:\\11策略测试\\"+FormulaName()+"\\"+Symbol()+"\\"+TEXT(ReadDateTime)+".txt","["+Text(SystemDateTime())+"] "+ str+"/"+StrategyModeName);
		Return 0; 
	}  
Events//此处实现事件函数 
	OnReady()
	{ 
		ReadDateTime=SystemDateTime; 
	}
	OnBar(ArrayRef<Integer> indexs)
	{
	  Range[0:0]
	  {  
	  	IF (CurrentBar()==0)
	  	{
	  		SetArraySize(TradeRecord,4,0);//设置一维数组(每次交易记录)
		    //建仓时间/建仓成本/平仓时间/平仓价格
		    SetArraySize(TradeStats,1,10,0);//设置二维数组(交易统计)
		    //0建仓时间/1建仓成本/2平仓时间/3平仓价格/4平仓利润/5盈利总额/6亏损总额/7盈利次数/8亏损次数/9累计盈亏总额
	  	}
	  	IF (CurrentBar()<10) Return; 
	  	If (MarketPosition<1 AND O>C[1])
        	    {
        	    	Buy(Lots, OPEN,Enum_Signal_NotSend);
        	       	TradeRecord[0]=DATE+TIME;//建仓时间
        	    	TradeRecord[1]=Round( EntryPrice,2);//建仓成本 
        	    }
	  	IF (MarketPosition==1 And BarsSinceEntry>0 AND O<C[1])
		       {
		       	    Sell(Lots, Open,Enum_Signal_NotSend); 
		       	    TradeRecord[2]=DATE+TIME;//平仓时间
        	    	TradeRecord[3]=ROUND(EXITPrice,2);//平仓价格 
        	    	ArrayPushBack(TradeStats,TradeRecord);//将交易记录追加至交易统计表格0-3列  
		       }  	
	  	IF (BarStatus()==2)//最后1根BAR
        { 
        	Integer Size = GetArraySize(TradeStats);//数组行数=累计交易次数 
        	Df_LogFile("累计交易次数"+Text(Size));
        	Integer I=0;//行 
            For I=0 To Size-1//计算追加统计表格的4-9列
            {     
            	Numeric RealizedProfit=(TradeStats[I][3]-TradeStats[I][1])*Lots *contractUnit;//平仓利润=点数*倍数
            	ArrayInsert(TradeStats, I, 4, RealizedProfit);//平仓利润
            	IF (RealizedProfit>0)
            	{
            		ArrayInsert(TradeStats, I, 5, TradeStats[I-1][5]+RealizedProfit);//盈利总额
            		ArrayInsert(TradeStats, I, 7, TradeStats[I-1][7]+1);//盈利次数
            		ArrayInsert(TradeStats, I, 6, TradeStats[I-1][6]);//亏损总额
            		ArrayInsert(TradeStats, I, 8, TradeStats[I-1][8]);//亏损次数
            	}
            	//4平仓利润/5盈利总额/6亏损总额/7盈利次数/8亏损次数/9累计盈亏总额 
            	Else  IF (RealizedProfit<0)
            	{
            		ArrayInsert(TradeStats, I, 6, TradeStats[I-1][6]+RealizedProfit);//亏损总额
            		ArrayInsert(TradeStats, I, 8, TradeStats[I-1][8]+1);//亏损次数
            		ArrayInsert(TradeStats, I, 5, TradeStats[I-1][5]);//盈利总额
            		ArrayInsert(TradeStats, I, 7, TradeStats[I-1][7]);//盈利次数
            	}
            	ArrayInsert(TradeStats, I, 9, TradeStats[I-1][9]+RealizedProfit);//累计盈亏总额
            	//0建仓时间/1建仓成本/2平仓时间/3平仓价格/4平仓利润/5盈利总额/6亏损总额/7盈利次数/8亏损次数/9累计盈亏总额
            	Df_LogFile("序号"+TEXT(I)+"/建仓时间"+TEXT(TradeStats[I][0],6)+"/建仓成本"+TEXT(TradeStats[I][1],2)+"/平仓时间"+TEXT(TradeStats[I][2],6)+"/平仓价格"+TEXT(TradeStats[I][3],2)+"/平仓利润"+TEXT(TradeStats[I][4],2)+"/盈利总额"+TEXT(TradeStats[I][5],2)+"/亏损总额"+TEXT(TradeStats[I][6],2)+"/盈利次数"+TEXT(TradeStats[I][7],0)+"/亏损次数"+TEXT(TradeStats[I][8],0)+"/累计盈亏总额"+TEXT(TradeStats[I][9],2));
            	
            } 
        }//最后1根BAR 
	  }//Range[0]
	}//ONBAR


上述代码,学习理解数组应用,建立交易统计表格。应用在AU888后,日志表格如下, 问题是“/6亏损总额/7盈利次数/8亏损次数”三列数据错误,我不知错误原因,请大神指导








数组应用
一维数组的应用
跨周期全局数组变量应用
一维数组的使用问题
数组问题
请教TBQ内建公式应用的问题
关于数组的语句问题
A函数的应用问题
因子权重问题or数组权重问题
序列型数组存储问题