根据账户持仓情况来判断是否交易及数量

如下代码有两个疑问请教:

1、因A_buyPosition不支持回测,我在编写策略代码时没用过类似代码。我的策略经过回测并锁定相关参数了。在进行图表策略交易时,我想插入如下程序片段来控制我的多平仓。是否可行?A_buyPosition的括号留空的话是默认当前策略商品下对应的账户么?插入这段代码还有什么需要注意的?

2、Portfolio_CurrentCapital  帮助里的说明是:获得按当前Bar开盘价计算的可用资金。请问这个资金是指图标交易里设置的“策略初始资金”运行到当前bar的可用资金,还是我实际账户的可用资金?

谢谢!


Params

   Numeric P(0.5);                     // 所用资金比例(买入)  

Vars

   Integer a;                              // 当前账户持仓数量

   Integer X;                        // 买入手数

Events

OnBar(ArrayRef<Integer> indexs)

{

   a = A_buyPosition();

   X = IntPart((Portfolio_CurrentCapital() * P) / (ContractUnit *MarginRatio * Close));        

// 计算最大可开手数。

   if(a == 0 && buyok ) Buy(X, open + MinMove * PriceScale);                                        

// buyok为经过回测的bool运算结果

   if(a > 0 && sellok ) Sell(a, 0);                                                                                            

// sellok为经过回测的bool运算结果

}


请教如何在启动自动交易时,获得之前账户的持仓数量、持仓成本等数据
如何判断是否有委托单来防止信号闪烁
根据盈利亏损情况 控制是否清仓 以及当天是否开仓
TBQ如何获取当前账户的持仓情况?
获取账户持仓
根据上一笔交易盈亏决定是否加减仓
K线数量及信号数量问题
如何判断持仓的合约是否为主力合约?
交易账户的持仓统计没有上日的商品持仓信息
判断上一周是否存在交易

不要A函数 图表混用

https://bbs.tbquant.net/thread/20250617100843270313


图表函数和账户函数除了buy/sell映射过去

可以说是完全不相关


策略尽量写成既可以回溯也可以操作账户

便于调试、观察交易状态

1 关键的第一个账户 序号为0的

2 图表的资金