开拓者期货期权程序化系统交易论坛
标题:
请教函数问题!
[打印本页]
作者:
dengwenle
时间:
2007-9-8 12:29:57
标题:
请教函数问题!
假如我想满仓做日的 !
Numeric lots(1);
begin
lots = trunc(A_FreeMargin/MaintenanceMargin) ;
// 开多条件
IF(condtion1)
Buy(lots,Close,True);
// 平多条件
if(condtion2)
{Sell(CurrentContracts,Close,True);
end
在这个代码中 我的思路是 用所有的资金/当前商品所需要的保证金 可能结果是小数 !我就用trunc取整数! 不知道这个函数A_FreeMargin 用法是否正确! 因为 A_XXXX的函数只在图上最后一个Bar有效.
请赐教!
[
本帖最后由 dengwenle 于 2007-9-8 13:06 编辑
]
作者:
dengwenle
时间:
2007-9-8 13:07:01
刚才发现!lots = trunc(A_FreeMargin/MaintenanceMargin) ;
这句代码有问题?
不知道到底是什么问题?
作者:
tradeblazer
时间:
2007-9-8 14:12:46
MaintanceMargin是外汇用的,期货里面需要自行计算占用保证金!
需要用If语句进行判断
If(BarStatus == 2)
{
lots = A_FreeMargin/(ContractUnit*BigPointValue*Close*MarginRate);
}else
{
lots = CurrentCapital/(ContractUnit*BigPointValue*Close*MarginRate);
}
复制代码
请先理解公式的运行机制及交易指令的调用机制。
参考公式入门教程!
http://www.tradeblazer.net/forum ... &extra=page%3D1
参考海龟系统的写法:
http://www.tradeblazer.net/forum ... &extra=page%3D1
作者:
dengwenle
时间:
2007-9-8 15:20:58
Params
Numeric lots(3);
、、、、、、、、、、、、、、、、、、、、、、
If(BarStatus == 2)
{
lots = A_FreeMargin/(ContractUnit*BigPointValue*Close*MarginRate);
}else
{
lots = CurrentCapital/(ContractUnit*BigPointValue*Close*MarginRate);
}
报错 !
[
本帖最后由 dengwenle 于 2007-9-8 15:25 编辑
]
作者:
nopain
时间:
2007-9-8 16:14:13
后面的函数MarginRatio写错了。
If(BarStatus == 2)
{
lots = A_FreeMargin/(ContractUnit*BigPointValue*Close*MarginRatio);
}else
{
lots = CurrentCapital/(ContractUnit*BigPointValue*Close*MarginRatio);
}
复制代码
作者:
dengwenle
时间:
2007-9-8 18:44:17
报错跟那个函数 没有关系!
问题关键在 2个 lots 上!
作者:
nopain
时间:
2007-9-8 20:56:07
您应该定义变量来保存lots.参数是不能再被赋值的。
欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/)
Powered by Discuz! X2