- 精华
- 1
- 在线时间
- 964 小时
- UID
- 727
- 积分
- 3770
- 帖子
- 537
- 阅读权限
- 80
- 注册时间
- 2007-11-11
- 最后登录
- 2015-4-8
- 精华
- 1
- UID
- 727
- 积分
- 3770
- 帖子
- 537
- 主题
- 55
- 阅读权限
- 80
- 注册时间
- 2007-11-11
- 最后登录
- 2015-4-8
|
- if(根据图表产生开仓条件)
- {
- If(barstatus==2)
- {
- oneMargin = Q_Last*ContractUnit()*BigPointValue()*MarginRatio();
- TotalEquity=A_FreeMargin;
- lots = IntPart((TotalEquity*EntryRatio)/oneMargin);
- myEntryprice=Q_AskPrice;
- buy(lots,myEntryprice);
- }Else
- {
- oneMargin = low*ContractUnit()*BigPointValue()*MarginRatio();
- TotalEquity = CurrentCapital()+ Abs(CurrentContracts())*oneMargin;
- lots = IntPart((TotalEquity*EntryRatio)/oneMargin);
- buy(lots,low);
- setglobalvar(0,low);
- commentary("此次开仓价为:"+text(low));
- }
- }
复制代码
根据nopain前面的实例,这段程序只要删掉一些条件内容就和实例差不多了,如上,应该可以了吧.
根据tradeblazer的描述,原来是当真实帐户产生交易时,在最后一个bar会产生开仓讯号并且开仓数量和真实帐户所开仓数一致,当开仓的bar变为倒数第二根bar时,倒数第二根bar会执行一次分枝条件,重新计算测试帐户的价格和开仓数量,并且重画开仓讯号,就是这样理解了. |
|