设为首页收藏本站

 找回密码
 注册
查看: 5057|回复: 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
2#
发表于 2016-1-19 11:27:39 |只看该作者
二者是不同的用法哟。。
min() 只是简单地比较二个值的大小,并取小的那一个。。
而iif() 则是要判断一个条件式,当条件式为真时,取第二个参数的值 ,当条件式为假时,取第三个参数的值 。

使用道具 举报

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() 则是要判断一个条 ...

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

使用道具 举报

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

使用道具 举报

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: 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
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
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
10#
发表于 2016-1-21 19:07:08 |只看该作者
还是不大明白,  单纯的这一句  myEntryPrice = IIF(myEntryPrice < Open, Open,myEntryPrice);    逻辑 意思不是 如果myEntryPrice<open为true  ,则myEntryPrice=open  反之等于myEntryPrice?      与向上跳空,向下跳空有什么关系呢?                  难道向上跳空,和向下跳空  这句代码会有不同的理解?

使用道具 举报

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

bottom

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

GMT+8, 2024-5-12 03:51

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部