设为首页收藏本站

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

延迟反手中的这一句 [复制链接]

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
6#
发表于 2018-5-9 16:07:30 |只看该作者
masterhdd 发表于 2018-5-9 16:02
看下面的场景,难道是这个意思?
比如:刚打开超级图表,此时实时行情已经走到底六根BAR了,但当公式 ...

对,当前场景下,执行的就是这个barstatus!=2条件下的buy

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
257171
积分
133
帖子
99
主题
32
阅读权限
40
注册时间
2017-9-28
最后登录
2019-11-16
5#
发表于 2018-5-9 16:02:50 |只看该作者
小米 发表于 2018-5-8 08:59
在非最后K线时直接按信号标识开仓信号,是为了与最后K线的是实时处理区别开。必竟历史里不需要反手延迟。 ...

看下面的场景,难道是这个意思?
比如:刚打开超级图表,此时实时行情已经走到底六根BAR了,但当公式初始化并计算到第五根BAR时,发现MarketPosition <>1 && AvgValue1[1] > AvgValue2[1]的条件,且此时MarketPosition==-1,然后此时满足BarStatus!=2的条件,所以,就Buy(1,Open)。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
4#
发表于 2018-5-9 16:00:05 |只看该作者
masterhdd 发表于 2018-5-9 15:33
还是不明白。比如:一直没有持有多头仓位MarketPosition 1,在第四根BAR出现了AvgValue1 > AvgValue2 ...

marketposition<>1有两种情况,没有持仓或是持有空头。
你在3楼复制的这段代码是没有持仓的情况下,就直接buy开多就好。
如果是有空头持仓的情况下且当前barstatus==2,所以自然是执行这段代码后面那个else后的内容啊。干嘛要等到第六根bar.

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
257171
积分
133
帖子
99
主题
32
阅读权限
40
注册时间
2017-9-28
最后登录
2019-11-16
3#
发表于 2018-5-9 15:33:46 |只看该作者
本帖最后由 masterhdd 于 2018-5-9 15:54 编辑
小米 发表于 2018-5-8 08:59
在非最后K线时直接按信号标识开仓信号,是为了与最后K线的是实时处理区别开。必竟历史里不需要反手延迟。 ...


还是不明白。比如:一直没有持有多头仓位MarketPosition <>1,在第四根BAR出现了AvgValue1 > AvgValue2,然后到了第五根BAR就会满足MarketPosition <>1 && AvgValue1[1] > AvgValue2[1]的条件,然后就会执行下一句If(MarketPosition==0 || BarStatus!=2),此时只要MarketPosition==0就可以执行Buy(1,Open)了。或者在MarketPosition==-1的情况下且BarStatus!=2就Buy(1,Open)开多仓,但显然此时是BarStatus==2的,也就无法执行Buy(1,Open)开多仓,等到了下一根BAR也就是第六根BAR再运行的时候,BarStatus还是等于2的,这.......怎么可能执行Buy(1,Open)开多仓呢?请指出我的理解错在了哪里?看不懂太痛苦了。

我们假设一直持有空头仓位MarketPosition==-1,所以也就满足MarketPosition <>1的条件,在第四根BAR出现了AvgValue1 > AvgValue2,然后到了第五根BAR就会满足MarketPosition <>1 && AvgValue1[1] > AvgValue2[1]的条件,然后就会执行下一句If(MarketPosition==0 || BarStatus!=2),由于MarketPosition==-1所以MarketPosition==0这一项就放弃了,此时就只有依靠BarStatus!=2的条件来Buy(1,Open)了,但面临的每根BAR都是BarStatus==2的,难道还能回头向后运行程序吗?

     If(MarketPosition <>1 && AvgValue1[1] > AvgValue2[1])
        {
                If(MarketPosition==0 || BarStatus!=2)
                {
                        Buy(1,Open);
                }

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
2#
发表于 2018-5-8 08:59:22 |只看该作者
在非最后K线时直接按信号标识开仓信号,是为了与最后K线的是实时处理区别开。必竟历史里不需要反手延迟。

使用道具 举报

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

bottom

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

GMT+8, 2024-5-19 03:52

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部