 
等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
- FireScript
|
本帖最后由 技术009 于 2023-12-11 10:35 编辑
1. 要控制仓位,只能计算保证金。
以多头为例:
marginratio:=taccount(41);//多头保证金比率. 这个要把合约信息设置里面的费率设置正确,否则函数取到的值可能是不对的。
bzj:=c*multiplier*marginratio;//一手保证金占用
开仓前 算下当前最新价格和按照当前手数下单后保证金占用,是否达到总权益asset的20% ,超过就不开 或者是直接用百分比参数来开仓,这样可以直接按照20% n能开的手数开仓。
buy(开仓条件 and holding=0,20%,market);
如果是加仓,那你就需要使用全局变量 累加保证金占用,如果还有减仓,还需要考虑资金的释放。这种情况计算就比较复杂,建议可以了解下全局变量的使用。
2.“单笔交易亏损控制在本金的5%以内” 直接用 浮动盈亏(OPENPROFIT函数)/保证金占用<=-0.05 . 保证金的计算前面已经提供了。
3. 期初的资产:
和当前资产做一个比值。
期初资产:valuewhen(barpos=1,asset);
较期初资产的盈亏:asset/期初资产;
4.
昨日收盘时的资产:valuewhen(todaybar=1,ref(asset,1));
较昨日资产的盈亏:asset/期初资产;
剩下的就是利用这些条件 来限制开仓 或者作为平仓条件了。
|
|