计数器问题

公式大概是这样的。我的思路,1·满足(bool_1)并且不是空仓的时候开仓。2·(bool_2)并且不是多仓的时候开仓。这是两个基础指令。现在可以实现。代码是下面的

3·增加计数器分别在多仓的时候i+1并且计数器清零,空仓的时候j+1并且计数器清零。这里看起来是对的,但可能逻辑上有点问题。


4·拿多仓的状态举例,多仓的状态下,求出hiduo-(0.1*chaduo)和hiduo-(0.2*chaduo)。然后当开盘价小于hiduo-(0.1*chaduo)或hiduo-(0.2*chaduo)的时候平仓,大于hiduo-(0.1*chaduo或hiduo-(0.2*chaduo的时候开仓,直到出现空头信号反手。然后hikong,lowkong,chakonng等参数完成和多仓时候一样的功能。但是我现在代码有点问题。请高手帮忙看一下。我没有把这两条的逻辑写出来因为是错的。


OnBar(ArrayRef<Integer> indexs)

{

ma=AverageFC(O, M);

IF(ma<ma[1]) PlotNumeric(\"mared\",Ma,Close,Green);

IF(ma>ma[1]) PlotNumeric(\"mared\",Ma,Close,red);

ma1=AverageFC(O, M/20);

ma2=ma1[1];

if(ma1>ma2) PlotNumeric(\"ma1\",Ma1,Close,White);

if(ma1<ma2) PlotNumeric(\"ma1\",Ma1,Close,blue);

bool_1=O>Ma and Ma1>Ma2 and ma>ma[1];

bool_2=o<Ma and Ma1<Ma2 and ma<ma[1];


   

Numeric n;

If(bool_1)

{

   if (MarketPosition <>1)

   {

       // 如果当前不是多头状态,则买入并重置计数器j

       Buy(1, Open);

       //j = 0;

   }

 

}

If(bool_2)

{

if( MarketPosition<>-1){SellShort(1,Open);}


}



   if (MarketPosition <>- 1) {

       i = i + 1;

       j=0;

   } else if (MarketPosition <> 1) {

       j = j + 1;

       i=0;

   }



  hiduo = HighestFC(Open, i);

   loduo = LowestFC(Open, i);

   hikong = HighestFC(Open, j);

   lokong = LowestFC(Open, j);

   chaduo = hiduo - loduo;

   chakong = hikong - lokong;


}


计数器求教
计数器
tick计数器
请问计数器怎么能不一直叠加?
如何解决多周期策略中,大周期代码被执行多次的问题?
对不在同一图层的变量如何才能正确赋值的问题
请问如何实现当条件首次满足时不开仓,从第二次满足条件时才开仓
问题反馈
新手问题
函数问题