设为首页收藏本站

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

自带海龟系统min和IIF区别 [复制链接]

Rank: 1

精华
0
UID
223187
积分
15
帖子
7
主题
4
阅读权限
10
注册时间
2015-11-15
最后登录
2017-1-11
跳转到指定楼层
1#
发表于 2016-1-19 10:30:41 |只看该作者 |正序浏览
请教版本和各位大神,TB自带海龟系统这里为什么既用min,又用iif,这里用的这两者有什么区别吗?
myEntryPrice = min(high,fsDonchianHi + MinPoint);
myEntryPrice = IIF(myEntryPrice < Open, Open,myEntryPrice);

min是求两者中的较小值,
iif(A<B,A,B)也是求两者中的较小值,
不太明白为什么不统一用一个,而要用两个函数。
请指教,谢谢!

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
11#
发表于 2016-1-22 13:57:15 |只看该作者
fang_kai 发表于 2016-1-21 19:07
还是不大明白,  单纯的这一句  myEntryPrice = IIF(myEntryPrice < Open, Open,myEntryPrice);    逻辑 意 ...



在海龟里myentryprice多空都同用的一个变量。
以上图为例来看向下的跳空时,蓝色横线是myentypricer的价格,第二个K线的一开盘是已经向下跳空小于是myentryprice的。若在第这二个K线上就满足了信号条件。
此时的不满足myentryprice<open, 取myentrypricer的值做为委托价。。合理吗?

这个其实也不用纠结的。。如果您个人认为这个用法是多余的,没有必要的,那么自己的公式里不去使用就好了。按自己的思路来写公式就行。
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Rank: 1

精华
0
UID
211313
积分
2
帖子
2
主题
0
阅读权限
10
注册时间
2015-6-16
最后登录
2016-2-1
10#
发表于 2016-1-21 19:07:08 |只看该作者
还是不大明白,  单纯的这一句  myEntryPrice = IIF(myEntryPrice < Open, Open,myEntryPrice);    逻辑 意思不是 如果myEntryPrice<open为true  ,则myEntryPrice=open  反之等于myEntryPrice?      与向上跳空,向下跳空有什么关系呢?                  难道向上跳空,和向下跳空  这句代码会有不同的理解?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
9#
发表于 2016-1-21 14:22:08 |只看该作者
fang_kai 发表于 2016-1-21 11:37
myEntryPrice = IIF(myEntryPrice < Open, Open,myEntryPrice);     应该是等同   myEntryPrice=max(myEntr ...

当然不等同了。。。
向上的跳空时,您或许可以用max来简单替换一下。但如果是向下跳空的处理呢??

使用道具 举报

Rank: 1

精华
0
UID
211313
积分
2
帖子
2
主题
0
阅读权限
10
注册时间
2015-6-16
最后登录
2016-2-1
8#
发表于 2016-1-21 11:37:26 |只看该作者
myEntryPrice = IIF(myEntryPrice < Open, Open,myEntryPrice);     应该是等同   myEntryPrice=max(myEntryPrice, Open)  吧?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
7#
发表于 2016-1-21 10:23:35 |只看该作者
kyrthas 发表于 2016-1-20 23:21
myEntryPrice = min(high,fsDonchianHi + MinPoint);
myEntryPrice = IIF(myEntryPrice < Open, Open,myE ...

以自带海龟交易系统的69,70这二行代码为例。。。

69的myEntryPrice = min(high,fsDonchianHi + MinPoint);这句很好理解的对吧?如注释里说明的,得到一个更真实更易成交价格。
70行的myEntryPrice = IIF(myEntryPrice < Open, Open,myEntryPrice);  是为了处理跳空而存在的。。
如果有一开盘就是向上的大跳空,开盘价本身就大于myentryprice了,那此时用myentryprice去做委托价就不合理,得用open方可。
如果没有上述的大跳空,自然还是使用myentryprice做为委托价。
但,若改为你在1)里写的min(open,myentryprice);则是不看有没有跳空,都在open与myentryprice取小的那个值来买入。合理吗?不合理啊。

若是按2)的改写法,将69行写为myEntryPrice = IIF(high<fsDonchianHi + MinPoint, high, fsDonchianHi + MinPoint);也可以,结果没有区别。。但有一个更简单的函数min比大小取小的值就完了,何必使用这个复杂函数呢。

使用道具 举报

Rank: 1

精华
0
UID
223187
积分
15
帖子
7
主题
4
阅读权限
10
注册时间
2015-11-15
最后登录
2017-1-11
6#
发表于 2016-1-20 23:21:12 |只看该作者
小米 发表于 2016-1-19 13:19
您觉得这里哪一个函数就能满足二种需求了呢?

myEntryPrice = min(high,fsDonchianHi + MinPoint);
myEntryPrice = IIF(myEntryPrice < Open, Open,myEntryPrice);

1)改成这样:
myEntryPrice = min(high,fsDonchianHi + MinPoint);
myEntryPrice = min(Open,myEntryPrice);

或者
2)改成这样:
myEntryPrice = IIF(high<fsDonchianHi + MinPoint, high, fsDonchianHi + MinPoint);
myEntryPrice = IIF(myEntryPrice < Open, Open,myEntryPrice);


我的疑问就在为啥用两个函数,一个函数完全能实现吧?

使用道具 举报

Rank: 1

精华
0
UID
212983
积分
49
帖子
34
主题
15
阅读权限
10
注册时间
2015-7-6
最后登录
2023-4-19
5#
发表于 2016-1-19 14:43:10 |只看该作者
主要是为了防止开盘跳空的情况,使得报价更加合理

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
4#
发表于 2016-1-19 13:19:16 |只看该作者
kyrthas 发表于 2016-1-19 12:07
你说的我知道,但是这里为啥要用两个函数?一个函数能满足目的吧?

您觉得这里哪一个函数就能满足二种需求了呢?

使用道具 举报

Rank: 1

精华
0
UID
223187
积分
15
帖子
7
主题
4
阅读权限
10
注册时间
2015-11-15
最后登录
2017-1-11
3#
发表于 2016-1-19 12:07:10 |只看该作者
小米 发表于 2016-1-19 11:27
二者是不同的用法哟。。
min() 只是简单地比较二个值的大小,并取小的那一个。。
而iif() 则是要判断一个条 ...

你说的我知道,但是这里为啥要用两个函数?一个函数能满足目的吧?

使用道具 举报

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

bottom

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

GMT+8, 2024-5-23 16:22

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部