设为首页收藏本站

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

一点一点消化“海龟” [复制链接]

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
1#
发表于 2007-10-6 20:20:27 |显示全部楼层
1、在30min上有,15min及其他周期好像没有。这应该是公式本身没有信号产生。您可以把样本数设置到500,1000看看,这样就有了。
2、平仓的原因是因为您开了仓以后,保证金出现不足的情况。然后强行平仓了。TB不是按照每日结算,是实时结算,保证金不足就会强行平仓。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
2#
发表于 2007-10-6 20:23:37 |显示全部楼层
3、highest和lowest在这里是没有问题的,因为boLength不会在执行过程中变化。你要改成HHV和LLV也可以,但效率会降低。
4、您的意思不用CrossOver,用>=?
5、您不用<=,那要用==而不是=。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
3#
发表于 2007-10-6 21:19:43 |显示全部楼层
1、有没有讯号和数据多少没有直接关系,条件满足才能出讯号。
2、强行平仓是指持仓保证金不足,海龟一般建议开4次仓,这样基本不会出现强行平仓的情况。您开到6次,只要出现行情波动就可能会出现保证金不足。
4、交叉和大于是不一样的。交叉还需要判断前面的Bar小于。
5、==是判断是否相等,= 是赋值。!=是不等于。建议看看:
http://www.tradeblazer.net/forum/thread-588-1-1.html

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
4#
发表于 2007-10-7 10:35:22 |显示全部楼层
原帖由 东方 于 2007-10-7 08:21 发表
"1、有没有讯号和数据多少没有直接关系,条件满足才能出讯号。"

您的意思我明白,就是无论有多少数据,只要没有满足条件,就没有信号;只有在条件满足时才能出讯号。

但是[我下载过首贴中的中英文资料,但是没有详细读],根据您 ...



回复1:
海龟定义的是20日和55日等参数,当初设计的运行环境是日线上,您把它放在30min上就相当于20根30min K线的突破。而不是20日的突破。

回复2:
1、保证金的处理是在当前Bar结束之后按照当前Bar的最低价(多仓),最高价(空仓)来计算期间最大持仓保证金是否足够。如果不够就会被强行平仓。
2、关于为什么开始连续加5次仓,隔了好一段在又加了一次呢,是因为钱不够了,开第6个仓的是钱都是前面5个仓位的盈利+部分初始资金才凑够的。所以按您的操作就是满仓运行。很容易被强行平仓。
3、从8000-9000不出信号是因为有一个过滤条件LastProfitableTradeFilter,因为前一次交易成功,所以后面的被忽略了。
4、综述。您这里的问题主要出在开仓太多。海龟的系统是环环相扣的,您只要按照基本规则,保持仓位。就会一直把仓位从底拿到顶。

回复4:
还是不一样,您可以看看CrossOver的算法。里面还有循环操作。
如果上一个Bar两条线的值是相等的呢?就需要继续往前推算。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
5#
发表于 2007-10-7 10:43:57 |显示全部楼层
原帖由 东方 于 2007-10-7 09:02 发表

在允许最大连续建仓次数那里设为4次,可以达到目的。

本着学习TB语言的目的,我习惯于在[一个没有增减仓的]指令里用类似于
buy (IntPart(0.8*CurrentCapital()/(close*300*0.10)),nextopen);的方式表示,当然0。8可以以 ...


这里的4并非不可更改,要根据商品的属性以及趋势是否确定进行调整。
引用一段原文:
最大头寸限制为:
级别                类型                       最大单位
1                   单一市场                   4个单位
2                   高度相关市场             6个单位
3                   低度相关市场             10个单位
4                  单向交易—多头或空头  12个单位

单一市场——每个市场最大为4个单位。
高度相关市场——对于高度相关的市场,在一个特定方向上最大可以有6个单位(即,6个多头单位或6个空头单位)。高度相关市场包括:燃油和原油;黄金和白银;瑞士法郎和德国马克;短期国库券和欧洲美元,等等。
低度相关市场——对于低度相关的市场,在一个特定方向上最大可以有10个单位。低度相关市场包括:黄金和铜;白银和铜,以及很多因头寸限制而海龟不能进行交易的谷物组合。
单一方向——在一个多头方向或一个空头方向上全部单位的最大数目为12。因此,理论上你可以同时持有12个单位的多头头寸和12个单位的空头头寸。

海龟用满仓(loaded)这个词表示在特定的风险级别下持有所允许的最大数目的单位。因此,“满仓日圆”就表示持有最大4个单位的日圆合约。完全满仓表示持有12个单位,等等。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
6#
发表于 2007-10-9 20:41:21 |显示全部楼层
原帖由 东方 于 2007-10-9 18:56 发表
系列疑问求助
6、


在海龟代码中:
Numeric TurtleUnits;                    // 交易单位

TurtleUnits = (TotalEquity*RiskRatio/100) /(N * ContractUnit()*BigPointValue());
TurtleUnits = IntPart(TurtleUnits) ...


这不是两个变量,是先执行上一行代码,把turtleunits的值算出来。但是为一个带小数点的数字。
第二行就在第一行的基础上,进行取整,然后把取整后的值赋给turtleUnits。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
7#
发表于 2007-10-10 11:25:14 |显示全部楼层

回复 #21 东方 的帖子

1、注释不一致,是因为保存的值性质不一样。但用处是一样的。
保存的值都是用来进行止损控制的。需要的是最后的开仓价格。

2、while循环阿。。break 退出循环。建议看帮助文件,一下说不清楚的

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
8#
发表于 2007-11-26 21:43:45 |显示全部楼层
1、另外一种止损的方式有减仓的操作,但我们这个系统并没有采取这种止损方式。

2、您可以用类似的全局变量处理方式来保存首次开仓数量,主要索引值要用另外的,不要和其它变量重复了

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
9#
发表于 2007-12-4 10:08:58 |显示全部楼层
交易指令设置是外部的范围,不管您在公式里面怎么写,都不能超过这个范围。
这个设置主要用来简单的进行仓位控制。对于公式编写不是很熟悉的人可以使用这写设置来控制。
对公式比较了解的用户可以自己在公式里面通过函数进行仓位,头寸等的控制。

使用道具 举报

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

bottom

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

GMT+8, 2024-5-17 12:28

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部