设为首页收藏本站

 找回密码
 注册
查看: 3935|回复: 6
打印 上一主题 下一主题

请教函数问题! [复制链接]

Rank: 4

精华
0
UID
188
积分
597
帖子
91
主题
27
阅读权限
50
注册时间
2007-8-24
最后登录
2019-4-5
跳转到指定楼层
1#
发表于 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 编辑 ]

Rank: 4

精华
0
UID
188
积分
597
帖子
91
主题
27
阅读权限
50
注册时间
2007-8-24
最后登录
2019-4-5
2#
发表于 2007-9-8 13:07:01 |只看该作者
刚才发现!lots = trunc(A_FreeMargin/MaintenanceMargin) ;
这句代码有问题?
不知道到底是什么问题?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
11
UID
1
积分
25127
帖子
6291
主题
149
阅读权限
255
注册时间
2007-7-20
最后登录
2024-4-22
3#
发表于 2007-9-8 14:12:46 |只看该作者
MaintanceMargin是外汇用的,期货里面需要自行计算占用保证金!
需要用If语句进行判断
  1. If(BarStatus == 2)
  2. {
  3.     lots = A_FreeMargin/(ContractUnit*BigPointValue*Close*MarginRate);
  4. }else
  5. {
  6.     lots = CurrentCapital/(ContractUnit*BigPointValue*Close*MarginRate);
  7. }
复制代码

请先理解公式的运行机制及交易指令的调用机制。
参考公式入门教程!
http://www.tradeblazer.net/forum ... &extra=page%3D1
参考海龟系统的写法:
http://www.tradeblazer.net/forum ... &extra=page%3D1
交易开拓者 - 期货程序化与量化系统自动交易领航者

网站已支持在线开通模拟账户功能

使用道具 举报

Rank: 4

精华
0
UID
188
积分
597
帖子
91
主题
27
阅读权限
50
注册时间
2007-8-24
最后登录
2019-4-5
4#
发表于 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 编辑 ]
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
5#
发表于 2007-9-8 16:14:13 |只看该作者
后面的函数MarginRatio写错了。
  1. If(BarStatus == 2)
  2. {
  3.     lots = A_FreeMargin/(ContractUnit*BigPointValue*Close*MarginRatio);
  4. }else
  5. {
  6.     lots = CurrentCapital/(ContractUnit*BigPointValue*Close*MarginRatio);
  7. }
复制代码

使用道具 举报

Rank: 4

精华
0
UID
188
积分
597
帖子
91
主题
27
阅读权限
50
注册时间
2007-8-24
最后登录
2019-4-5
6#
发表于 2007-9-8 18:44:17 |只看该作者
报错跟那个函数 没有关系!
问题关键在 2个 lots 上!

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
7#
发表于 2007-9-8 20:56:07 |只看该作者
您应该定义变量来保存lots.参数是不能再被赋值的。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-1 16:48

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部