设为首页收藏本站

 找回密码
 注册
楼主: gzpony
打印 上一主题 下一主题

关于日内的收市前平仓,A_XXX的函数是这样用吗? [复制链接]

Rank: 4

精华
0
UID
877
积分
256
帖子
49
主题
8
阅读权限
50
注册时间
2007-12-4
最后登录
2019-4-1
21#
发表于 2007-12-30 21:07:22 |只看该作者
请问在没有开始模拟交易之前,在回溯过去数据的时候,除了marketposition 外,有什么办法得知该公式对应商品的持仓量?

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
377
积分
1827
帖子
222
主题
29
阅读权限
70
注册时间
2007-9-19
最后登录
2021-12-9
22#
发表于 2007-12-31 15:11:35 |只看该作者
有什么办法得知该公式对应商品的持仓量?

marketposition  这个只能得到是持仓性质:多仓、空仓、无仓。 不能知道持仓量。

下面这些是帐户函数,在非交易时段时运行会没有结果。
A_TodayBuyPosition
说明 返回当前公式应用的帐户下当前商品的当日买入持仓。
A_TodaySellPosition
说明 返回当前公式应用的帐户下当前商品的当日卖出持仓。
A_TotalPosition
说明 返回当前公式应用的帐户下当前商品的总持仓。

这个是交易指令
CurrentContracts
说明 获得当前持仓的持仓合约数。
语法 Numeric CurrentContracts()
参数 无
备注 获得当前持仓的持仓合约数,返回值为整型,该函数仅支持交易指令。
只有当MarketPosition != 0时,即有持仓的状况下,该函数才有意义,否则返回0。

你也也可以用全局变量来记录持仓量。
if(开仓条件)
{
buy(手数,价格);
SetGlobalVar(0,手数);
}
如果是多次开仓,那就要把全局变量加起来:
if(开多仓条件)
{
buy(手数,价格);
   if(marketposition !=1 )  //先前无多仓
   {
   SetGlobalVar(0,手数);    //无多仓时,把交易手数存入0号全局变量
   }
    if(marketposition ==1)   //已持有多仓时,才运行下段
    {
    SetGlobalVar(1,手数+GetGlobalVar(0));    //已持有多仓时,现开手数加先前存入0号全局变量
    }
}

使用道具 举报

Rank: 4

精华
0
UID
877
积分
256
帖子
49
主题
8
阅读权限
50
注册时间
2007-12-4
最后登录
2019-4-1
23#
发表于 2007-12-31 18:04:42 |只看该作者
非常感谢, 不然就打算放弃非交易时段的测试了,

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
377
积分
1827
帖子
222
主题
29
阅读权限
70
注册时间
2007-9-19
最后登录
2021-12-9
24#
发表于 2007-12-31 23:17:22 |只看该作者
使用
用户函数和行情函数。 往往容易出现这种情况

呵呵,偶也能帮助别人了。

使用道具 举报

Rank: 4

精华
0
UID
877
积分
256
帖子
49
主题
8
阅读权限
50
注册时间
2007-12-4
最后登录
2019-4-1
25#
发表于 2008-1-1 10:05:32 |只看该作者
当然能,MarketPosition ==0 时是指正在交易 的品种为空仓吧?,因为BUY 等交易指令是先平掉相反的仓位,如果我在一个账户里持有两个相反头寸的仓位,这个函数也只反映在该公式下自己正在交易品种的状况,也就是说 MarketPosition != 0 吧?    好像绝大多数函数都是对应该公式对应的品种的吧,CurrentContracts不知道是不是也属于这种, SetGlobalVar看了不是了,应该是对应账户中所有品种,无论是什么品种,是多头还是空头吧?

使用道具 举报

Rank: 4

精华
0
UID
877
积分
256
帖子
49
主题
8
阅读权限
50
注册时间
2007-12-4
最后登录
2019-4-1
26#
发表于 2008-1-1 10:07:16 |只看该作者
更正

当然能,MarketPosition ==0 时是指正在交易 的品种为空仓吧?,因为BUY 等交易指令是先平掉相反的仓位,如果我在一个账户里持有两个不同品种相反头寸的仓位,这个函数也只反映在该公式下自己正在交易品种的状况,也就是说 MarketPosition != 0 吧?    好像绝大多数函数都是对应该公式对应的品种的吧,CurrentContracts不知道是不是也属于这种, SetGlobalVar看了不是了,应该是对应账户中所有品种,无论是什么品种,是多头还是空头吧?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
11
UID
1
积分
25127
帖子
6291
主题
149
阅读权限
255
注册时间
2007-7-20
最后登录
2024-4-22
27#
发表于 2008-1-1 11:59:34 |只看该作者
MarketPosition ==0 表示没有任何持仓
MarketPosition ==-1 才表示有空仓

CurrentContracts也是一样用正负来表示多空
交易开拓者 - 期货程序化与量化系统自动交易领航者

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

使用道具 举报

Rank: 4

精华
0
UID
877
积分
256
帖子
49
主题
8
阅读权限
50
注册时间
2007-12-4
最后登录
2019-4-1
28#
发表于 2008-1-1 17:40:51 |只看该作者
原帖由 tradeblazer 于 2008-1-1 11:59 发表
MarketPosition ==0 表示没有任何持仓
MarketPosition ==-1 才表示有空仓

CurrentContracts也是一样用正负来表示多空


请允许我再啰嗦一下,为了把事情搞清楚-------如果我的账户里 的 data0 是10 手空单,data1是10手多单,这时候的marketposition 和 CurrentContracts 各返回的是什么呢? 我想问的是返回的值是整个账户的状态,还是某品种的状态。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
11
UID
1
积分
25127
帖子
6291
主题
149
阅读权限
255
注册时间
2007-7-20
最后登录
2024-4-22
29#
发表于 2008-1-1 18:47:58 |只看该作者
1、MarketPosition等其他交易函数都只针对Data0。现在还不支持对Data1的操作。
2、现在可支持Data1.A_SendOrder,Data1.A_GetOrderCount等账户函数。
交易开拓者 - 期货程序化与量化系统自动交易领航者

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

使用道具 举报

Rank: 4

精华
0
UID
877
积分
256
帖子
49
主题
8
阅读权限
50
注册时间
2007-12-4
最后登录
2019-4-1
30#
发表于 2008-1-1 20:13:42 |只看该作者
可不可以这么认为,所有的账户函数都支持 data 1, 所有的交易函数都不支持 data 1 ?

使用道具 举报

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

bottom

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

GMT+8, 2024-5-3 08:50

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部