请帮我处理一下,获取的数据有问题

对比螺纹钢和热卷 两个品种,谁强做谁!

问题是:data0.数据 显示:1;

data1.数据是0

dChange[i] = dj_Change_i(i, Length); // 将每一个品种涨跌幅,存入一个数组当中。 是个函数

   //---------冒泡排序----------

  sortedCount = dj_Bubble_Sort_AT(dChange, dataIndex, rankArray, -1, False);  //是冒泡函数

代码:

Params

   Numeric Length(60); // 通道周期



Vars

   Numeric signalBufferCount(1); // 减小信号缓冲次数

   Numeric dataSourceCount(10); // 手动指定数据源数量

   // 预先声明固定大小的数组

   Array<Numeric> dChange(100);  // 用于排序的涨跌幅数组

   Array<Numeric> dataIndex(100); // 数值中每个数据源的序号

   Numeric sortedCount;     // 排序后的元素数量

   Numeric i;               // 循环变量

   Array<Numeric> rankArray(100); // 排序后的排名数组

   Numeric selectedIndex;   // 排序后选中的数据源序号

   Numeric roundedChange;   // 排序后数据四舍五入保留2位小数

   Numeric totalPosition;   // 叠加品种的所有持仓数量

   //----------

   Numeric tradeId;         // 真实交易的id,用于保存id_变量,保证开平仓动作统一在一个品种上

   Series<Numeric> selectedId; // 记录排序后所要开仓的品种id_

   Series<Numeric> candidateId; // 排序后,筛选出的待触发的品种

   Array<Numeric> upperChannel(100); // 计算唐奇安通道上轨

   Array<Numeric> lowerChannel(100); // 计算唐奇安通道下轨

   Series<Numeric> openSignalCount; // 开仓信号连续满足的次数

   Series<Numeric> closeSignalCount; // 平仓信号连续满足的次数

Series<Numeric> lower1;

Series<Numeric> Upper1;

Events

   onBar(ArrayRef<Integer> indexs)

   {    

       // 初始化持仓数量

       totalPosition = 0;

       //---------计算涨跌幅----------

       

       For i = 0 To DataSourceSize-1    

       {

           dChange[i] = dj_Change_i(i, Length); // 将每一个品种涨跌幅,存入一个数组当中。

           dataIndex[i] = i; // 将品种数据源号,存入数组。这两个数组,用于冒泡排序。

           Commentary("dChange[" + Text(i) + "] = " + Text(dChange[i]));

       }


       //---------冒泡排序----------

       sortedCount = dj_Bubble_Sort_AT(dChange, dataIndex, rankArray, -1, False);

       Commentary("Sorted count: " + Text(sortedCount));

Range[0:DataSourceSize-1]

{

upper1 = Highest(High[1], Length);

           lower1= Lowest(Low[1], Length);

           PlotNumeric("upper1 ",upper1);

           PlotNumeric("lower1 ",lower1);

}

       For i = 0 To sortedCount - 1

       {

           totalPosition = totalPosition + Data[i].MarketPosition;  


           selectedIndex = dataIndex[i];

           roundedChange = Round(dChange[i] * 100, 2);


           //------------计算通道----

           upperChannel[i] = Highest(Data[i].High[1], Length);

           lowerChannel[i] = Lowest(Data[i].Low[1], Length);

           If(i == 0)  

           {

               candidateId = selectedIndex;  

           }  


           Commentary("Rank " + Text(rankArray[i]) + ": Data" + Text(selectedIndex) + " - " + Data[selectedIndex].SymbolName + "," + Text(Length) + "根K线涨跌幅之和为" + Text(roundedChange) + "%");

       }


       if(totalPosition == 0)  

       {

           selectedId = candidateId;

       }

       else

       {

           selectedId = selectedId[1];

       }


       tradeId = selectedId;


       // 开仓信号判断

       If(Data[tradeId].High > upperChannel[tradeId] AND totalPosition == 0)

       {

           openSignalCount = openSignalCount + 1;

            Data[tradeId].Buy(0, Max(Data[tradeId].O, upperChannel[tradeId]));

data1.Commentary("获取价格:" + Text(upperChannel[tradeId]));

data1.Commentary("open价格:" + Text(Data[tradeId].O));

       }

       Else

       {

           openSignalCount = 0;

       }

       

       data1.Commentary("tradeId="+Text(tradeId));

data0.Commentary("tradeId="+Text(tradeId));

       // 开仓条件

       if(openSignalCount >= signalBufferCount)

       {

           //Data[tradeId].Buy(0, Max(Data[tradeId].O, upperChannel[tradeId]));

           openSignalCount = 0;

           Commentary("Buy signal triggered");

       }


       // 平仓信号判断

       If(totalPosition == 1 And Data[tradeId].Low < lowerChannel[tradeId])

       {

           closeSignalCount = closeSignalCount + 1;

           Commentary("Close signal count: " + Text(closeSignalCount));

       }

       Else

       {

           closeSignalCount = 0;

           Commentary("Close signal count reset to 0");

       }


       // 平仓条件

       if(closeSignalCount >= signalBufferCount)

       {

           Data[tradeId].Sell(0, Min(Data[tradeId].O, lowerChannel[tradeId]));

           closeSignalCount = 0;

           Commentary("Sell signal triggered");

       }


       Commentary("id:" + Text(tradeId));

       Commentary("持仓状态:" + Text(totalPosition));

   }


请帮我分析一下这段代码
关于基础数据获取,请帮忙查看一下代码哪里错误?
获取可平多手数,可平空手数
老师,能帮我一下?
实时获取市场涨跌家数
怎么设置交易手数?测试没有回测数据怎么处理,deepseek写的
请教一下,我需要在策略上获取目前账户持仓个数和目前账户现金数,怎么写?
老师,请教一下,我需要在策略上获取目前账户持仓个数和目前账户现金数,怎么写?
BarExistStatus处理夜盘的问题
请大师帮我写个指标

有点没头没尾的,不知道你要干什么,不知道代码想表达什么,不知道问题在哪里

建议要么找收费代编,要么投稿等直播分析。

无论哪种,还是要描述详细一点