关于动态权益百分比计算开仓手数的问题

在实盘中,以动态权益的百分比来确定首次开仓的手数,首次开仓的手数记为lot1,后续的第二次或者第三次第N次加仓或平仓都以lot1这个手数为基础进行计算的,怎么才能让这个lot1在持仓过程中成为一个定值,不再变化呢。实盘过程中发现,动态权益是变化的,所以这个lot1也是变化的,在后续加仓诃平仓过程中信号持仓手数和实际持仓手数就不一致了,想请教一下怎么能让lot1在该品种有持仓过程中成为一个定值,另外这个动态权益是用哪一个比较合适1.dynamicAmount 2.Portfolio_CurrentEquity,谢谢。

如何用ATR和实盘权益计算开仓手数
关于自动计算开仓手数
关于计算开仓手数问题
Tbquant动态权益
请问老师个关于自动计算账户资金最大可开仓手数的问题
期权交易时对【虚拟账户】和【真实账户】中动态权益的计算问题
TBQ自动计算开仓手数的问题?
读取账户资金计算手数
[纠错重发]期货交易时对【虚拟账户】和【真实账户】中动态权益的计算问题
请教关于公式中用ATR计算开仓手数时,后复权价格与真实价格的问题

你给定条件满足时再赋值

而不是每次都赋值

现在是这样写的,你方便的时候帮忙看一下怎么弄合适一些,谢谢


OnBar(ArrayRef<Integer> indexs)

   {

       //一个品种最多占有总资金的60%保证金----------Begin

       if( ATRDate <> Date*100 + Hour + Minute*0.01)

       {

           MarginRate mRate;//获取账户对应合约的保证金率

           Bool ret = A_GetMarginRate(tmpMSyms2, mRate);    

           Numeric ValueSZ=( C[1] / Rollover())*ContractUnit*BigPointValue; //当前下一手的市值

           Numeric bond = ValueSZ*mRate.longMarginRatio; //1手所需保证金(元)

           

           Commentary("1手所需保证金(元):"+text(bond));

           

           

           

           //单品能开总手数的上限

           if(longCurrentContracts == 0)

           {

               Account acc;

               Bool ret2 = A_GetAccount(acc, 0);

               if(ret2)

               {

                   if(1 == 1)

                   {

                       lots_tmp1 = max(1,RoundDown(acc.dynamicAmount * risk * 0.01 / bond,0));

                       lot_x = max(1,RoundDown(acc.dynamicAmount * 3 * 0.01 / bond,0));   //初始开单手数需小于资金总量的3%

                   }

               }Else

               {

                   if(1 == 1)

                   {

                       lots_tmp1 = max(1,RoundDown(Portfolio_CurrentEquity() * risk * 0.01 / bond,0));

                       lot_x = max(1,RoundDown(Portfolio_CurrentEquity() * 3 * 0.01 / bond,0));   //初始开单手数需小于资金总量的3%

                   }

               }

           }

       }

这个初始开仓手数能在持仓过程中固定下来吗,完成平仓后,随着权益的变化,下次开仓的时候重新计算初始的开仓手数,根据当前的权益增加或者减少初始开仓手数,一但有持仓,就固定下来,这个理论上可以实现吗,怎么一个逻辑呢?请解答一下谢谢

可以只在每次开第一仓的时候,用当时的权益计算后,保存到一个序列变量中,就可以达到您说的固定。动态权益,应该用portfolio_CurrentEquity,这个是对应图表信号的权益。