设为首页收藏本站

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

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

Rank: 5Rank: 5

精华
0
UID
594
积分
1315
帖子
77
主题
25
阅读权限
60
注册时间
2007-10-23
最后登录
2019-4-27
11#
发表于 2007-12-28 11:18:07 |只看该作者
经过实时模拟交易的实验,发现平仓的时候A_xxx 的函数还是不起作用

下面是实验的代码,只是在上面版主的例子上稍修改了一下。为了对比是用了A_xxx 的条件还是用MarketPosition ,把A_xxx 加上了空头的交易。

Begin

If(BarStatus == 2)
{
      If((Mod(Minute,4)==0 ) && A_BuyPosition ==0)
      {
             Buy(1,Q_AskPrice);
       }
      
       If((Mod(Minute,4)==1 ) && A_BuyPosition > 0)
       {
              Sell(1,Q_BidPrice);
        }

      If((Mod(Minute,4)==2 ) && A_sellPosition ==0)
      {
             SellShort(1,Q_BidPrice);
       }
      
       If((Mod(Minute,4)==3 ) && A_sellPosition > 0)
       {
              BuyToCover(1,Q_AskPrice);
        }
}else
{
       If((Mod(Minute,2)==0 ) && MarketPosition != 1)
       {
             Buy(1,Close);// Close可根据您的情况修改为其他值
       }

       If((Mod(Minute,2)==1) && MarketPosition == 1)
       {
             Sell(1,Close); // Close可根据您的情况修改为其他值
       }
}

end

实验结果

1。上面代码运行中多头的建仓平仓皆顺利进行,然而空头只建仓不能平仓。
2。把else 中MarketPosition 的部分代码注释掉,只保留A_xxx部分,也是只能建仓而不能平仓。建仓后的仓位手工平掉,程序又可以自动建仓,但还是不能平仓。
3。确实观察到A_xxx部分建仓的时候,在图表出现过标志,然而一闪就消失了,也许这就是原因所在。MarketPosition 的部分起效的时候图表的标志都是一直保留的。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
12#
发表于 2007-12-28 11:28:24 |只看该作者
老兄。BarStatus!=2时,您只处理了多头,没有处理空头啊。

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
594
积分
1315
帖子
77
主题
25
阅读权限
60
注册时间
2007-10-23
最后登录
2019-4-27
13#
发表于 2007-12-28 11:36:03 |只看该作者
原帖由 nopain 于 2007-12-28 11:28 发表
老兄。BarStatus!=2时,您只处理了多头,没有处理空头啊。



那是故意的啊,看程序是上面起作用还是下面起作用。

想了一下,难道版主的意思是说,程序每一分钟运行的时候,程序把整个价格序列都遍历一遍运算一遍,历史的bar都由下面的来运算,包括那个消失了的指示也靠它来生成,到了最后一个bar才由上面的A_xxx来执行?  因为下面的把指示生成出来了,所以上面的A_xxx才能明白这个有持仓?

我一直以为最后一个bar的时候,用A_xxx就直接的去帐户查询真正的持仓情况,这个真正持仓和历史无关. 版主你看我哪种理解对?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
14#
发表于 2007-12-28 11:40:20 |只看该作者
想了一下,难道版主的意思是说,程序每一分钟运行的时候,程序把整个价格序列都遍历一遍运算一遍,历史的bar都由下面的来运算,包括那个消失了的指示也靠它来生成,到了最后一个bar才由上面的A_xxx来执行?  因为下面的把指示生成出来了,所以上面的A_xxx才能明白这个有持仓?


就是这样

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
594
积分
1315
帖子
77
主题
25
阅读权限
60
注册时间
2007-10-23
最后登录
2019-4-27
15#
发表于 2007-12-28 11:47:06 |只看该作者
原帖由 nopain 于 2007-12-28 11:40 发表


就是这样



呵呵,那这样的话,MarketPosition 和A_BuyPosition 需要配对使用了.  不过既然这样,A_BuyPosition 返回的可以保证是真实帐户中的持仓?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
16#
发表于 2007-12-28 12:34:26 |只看该作者
只能保证是当前本地收到的最新持仓信息,因为数据传输的时间,有可能出现和柜台不一致的情况。

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
377
积分
1827
帖子
222
主题
29
阅读权限
70
注册时间
2007-9-19
最后登录
2021-12-9
17#
发表于 2007-12-29 13:38:44 |只看该作者
终于。弄明白了。
原来问题在于:
图表运算的状态和  帐户内的状态。
可以二套处理。

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
377
积分
1827
帖子
222
主题
29
阅读权限
70
注册时间
2007-9-19
最后登录
2021-12-9
18#
发表于 2007-12-29 13:45:17 |只看该作者
不知理解的对否?
如果这样的话
当用MarketPosition来判断持仓时, 实际上是从图表上的过去行情运算出来判断。
而非真到帐户去取出的数据,

只要保证交易时间都是开着软件,收盘之后才关机。
图表上所显示的每一笔交易,在真实帐户中都有过真实的发生
就能保证二者结果是一致的。

请老师 和大侠指点

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
1
UID
727
积分
3770
帖子
537
主题
55
阅读权限
80
注册时间
2007-11-11
最后登录
2015-4-8
19#
发表于 2007-12-29 17:25:58 |只看该作者
"当用MarketPosition来判断持仓时, 实际上是从图表上的过去行情运算出来判断。"
这个理解基本上是正确的,前提是barstatus<2时才是你所理解的,这个过去行情运算是指隐含在系统中的回测帐户的持仓状态;当然如果不想用真实帐户时,在任何bar都可以读取回测帐户中的持仓状态的.如果要进行真实帐户自动化交易要把最后bar(barstatus==2)让给真实帐户,即使用帐户函数.
"只要保证交易时间都是开着软件,收盘之后才关机。
图表上所显示的每一笔交易,在真实帐户中都有过真实的发生
就能保证二者结果是一致的。"这个理解是不正确的,不一定要总是开着机,随时开机显示出来的都是回测帐户走过的行情;无论何时,关联了真实帐户,在有交易的情况下,只要在batstatus==2时满足条件,真实帐户就开始进行自动化交易(当然如果回测帐户中已有持仓时,真实帐户不可能马上有持仓,回测帐户平仓时,真实帐户会产生持仓不足的提示,但下一次交易开始就正常操作了).
TradeBlazer交流群33647992。

使用道具 举报

Rank: 6Rank: 6

精华
0
UID
377
积分
1827
帖子
222
主题
29
阅读权限
70
注册时间
2007-9-19
最后登录
2021-12-9
20#
发表于 2007-12-30 10:19:11 |只看该作者
谢谢您的指点

使用道具 举报

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

bottom

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

GMT+8, 2024-5-3 02:15

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部