如下代码有两个疑问请教:
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运算结果
}
不要A函数 图表混用
https://bbs.tbquant.net/thread/20250617100843270313
图表函数和账户函数除了buy/sell映射过去
可以说是完全不相关
策略尽量写成既可以回溯也可以操作账户
便于调试、观察交易状态
1 关键的第一个账户 序号为0的
2 图表的资金