设为首页收藏本站

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

开仓后的最高价和最低价 [复制链接]

Rank: 5Rank: 5

精华
0
UID
7277
积分
938
帖子
207
主题
44
阅读权限
60
注册时间
2010-3-11
最后登录
2016-5-4
跳转到指定楼层
1#
发表于 2012-8-21 11:14:12 |只看该作者 |倒序浏览
请版主指导开仓后的最高价和最低价的写法。
这个是进阶当中的写法
    If(BarsSinceentry == 0)
    {
        HighestAfterEntry = Close;
        LowestAfterEntry = Close;
        If(MarketPosition <> 0)
        {
            HighestAfterEntry = Max(HighestAfterEntry,AvgEntryPrice);   // 开仓的Bar,将开仓价和当时的收盘价的较大值保留到HighestAfterEntry
            LowestAfterEntry = Min(LowestAfterEntry,AvgEntryPrice);     // 开仓的Bar,将开仓价和当时的收盘价的较小值保留到LowestAfterEntry
        }
    }else
    {
        HighestAfterEntry = Max(HighestAfterEntry,High); // 记录下当前Bar的最高点,用于下一个Bar的跟踪止损判断
        LowestAfterEntry = Min(LowestAfterEntry,Low);    // 记录下当前Bar的最低点,用于下一个Bar的跟踪止损判断
    }
以下是陈总双均线的写法。

        If(BarsSinceEntry>=1)
        {
                HigherAfterEntry=Max(HigherAfterEntry[1],High[1]);
                LowerAfterEntry=Min(LowerAfterEntry[1],Low[1]);
        }
        Else
        {
                HigherAfterEntry=HigherAfterEntry[1];
                LowerAfterEntry=LowerAfterEntry[1];
        }

请教斑竹,这两个有何不同?怎么样写才合适?

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
2#
发表于 2012-8-21 13:56:13 |只看该作者
异曲同工,都是为了记录开仓后的最高最低价。
前者是以当前bar数据来进行判断记录,而后者以上一个bar的数据来进行判断记录的。

使用道具 举报

Rank: 2

精华
0
UID
110938
积分
70
帖子
44
主题
6
阅读权限
30
注册时间
2012-6-13
最后登录
2012-12-10
3#
发表于 2012-10-24 09:51:31 |只看该作者

使用道具 举报

Rank: 1

精华
0
UID
204257
积分
6
帖子
1
主题
0
阅读权限
10
注册时间
2015-3-1
最后登录
2021-10-23
4#
发表于 2015-7-22 22:47:01 |只看该作者
本帖最后由 chenweicn 于 2015-7-23 19:02 编辑

第一种写法有明显的错误(在反手的时候),会出现最低价不在更新的问题

使用道具 举报

Rank: 2

精华
0
UID
213293
积分
97
帖子
85
主题
5
阅读权限
30
注册时间
2015-7-9
最后登录
2017-3-13
5#
发表于 2015-7-30 11:22:46 |只看该作者
小米 发表于 2012-8-21 13:56
异曲同工,都是为了记录开仓后的最高最低价。
前者是以当前bar数据来进行判断记录,而后者以上一个bar的数 ...

小米大大:

我觉得这个程序有问题,因为HighSinceEntry只是局部变量,所以不会在Bar之间传递的。
最终结果是动态纪录每一根Bar的高点,和High没有区别了。
可以加一句Commentary(Text(BarsSinceEntry))来应证一下

我的解决方案是要用全局变量

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
6#
发表于 2015-7-30 11:39:48 |只看该作者
BennyHuang 发表于 2015-7-30 11:22
小米大大:

我觉得这个程序有问题,因为HighSinceEntry只是局部变量,所以不会在Bar之间传递的。

上述二段代码里,highsinceentry都是声明的序列变量,会传递。。而你声明成了普通变量了吧?
楼主是省略了变量声明的部分没有贴出来。你可以去看一下进阶里的全代码。

使用道具 举报

Rank: 2

精华
0
UID
213293
积分
97
帖子
85
主题
5
阅读权限
30
注册时间
2015-7-9
最后登录
2017-3-13
7#
发表于 2015-7-30 11:41:17 |只看该作者
小米 发表于 2015-7-30 11:39
上述二段代码里,highsinceentry都是声明的序列变量,会传递。。而你声明成了普通变量了吧?
楼主是省略 ...

谢谢小米,这样我就明白了,谢谢你!

那我以后编写就更容易了哈哈哈。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
8#
发表于 2015-7-30 12:00:15 |只看该作者
chenweicn 发表于 2015-7-22 22:47
第一种写法有明显的错误(在反手的时候),会出现最低价不在更新的问题

这个写法没有什么问题的。
他的注释有说过,用于下一个bar的跟踪止损判断,说明平仓条件里,是判断上一个bar值,是一个已经固定的值,不会导致问题。
而你所说的会有在反手的时候,最低价不再更新的问题。因为这里完全没有提到过开仓的条件,所以我就没有加以猜想判断了。。
一般来说,也不会在跟踪止损的条件上做反手。。。当然,如果一定要做的话,就必须要由自己来保证公式条件的正确合理性了。

使用道具 举报

Rank: 1

精华
0
UID
215374
积分
5
帖子
4
主题
1
阅读权限
10
注册时间
2015-7-30
最后登录
2015-8-5
9#
发表于 2015-8-3 18:02:10 |只看该作者

使用道具 举报

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

bottom

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

GMT+8, 2024-5-3 21:16

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部