设为首页收藏本站

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

请教版主关于自动交易的问题 [复制链接]

Rank: 2

精华
0
UID
543
积分
73
帖子
17
主题
4
阅读权限
30
注册时间
2007-10-15
最后登录
2019-4-5
跳转到指定楼层
1#
发表于 2007-10-15 12:21:05 |只看该作者 |倒序浏览
1自动交易是否需要开盘前登陆,打开所有工作区,如网络出现问题交易指令会如何,断线期间的交易指令如何处理?
2交易系统如果是以日线为单位的,是否在工作区内打开日k线图,然后插入交易代码即可?如果系统是按5分钟线为单位的,是否新开工作区,然后打开5分钟线?如果同一交易系统应用于所有交易品种,是否要打开所有品种的k线图?
3如果系统是日k线系统,收盘平仓的话,想在14.50分平仓可以吗?,如何操作?

Rank: 3Rank: 3

精华
0
UID
434
积分
120
帖子
7
主题
2
阅读权限
40
注册时间
2007-9-27
最后登录
2017-1-9
2#
发表于 2007-10-15 12:31:12 |只看该作者
我也有想请教此类问题.等回复.

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
3#
发表于 2007-10-15 14:14:26 |只看该作者
原帖由 hugingco 于 2007-10-15 12:21 发表
1自动交易是否需要开盘前登陆,打开所有工作区,如网络出现问题交易指令会如何,断线期间的交易指令如何处理?
2交易系统如果是以日线为单位的,是否在工作区内打开日k线图,然后插入交易代码即可?如果系统是按5分钟线为单位的,是 ...


回复1:
并不需要开盘之前做好准备,您随时登陆都可操作,只需要打开工作区,设置交易指令,选择帐号,启动自动交易。
需要注意的问题就是,您真实帐户的持仓状态和资金状态和交易指令刚插入图中计算出的最新状态要一致。否则就会出现持仓不足,不能平仓或者资金不足,不能开仓等提示。只要您协调好真实账户和测试帐户的对应关系,随时都可以启动自动交易。
至于断线的问题,如果网络断了,等网络恢复之后,系统会自动重连,然后最新的行情会推送过来,将中间的数据补上。可能的问题就是延误了期间的交易时机。

回复2:
您的理解完全正确,TB的自动交易以图表为驱动的,所以每个自动交易的指令都必须附加在图表上。

回复3:
这个问题分为两种情况,您希望在14:50或之后平仓的话,如果您的数据周期为5分钟,1分钟或更小的周期,直接通过以下代码就可以实现
  1. If(Time>0.1450)
  2. {
  3.     // 我的交易代码...
  4. }
复制代码

如果您的周期为15分钟,或者更大的周期,就需要另行处理,因为最后一个15分钟的K线时间是14:45,通过Time取到的值是0.1445。所以不能按上面的方式进行处理。
此时,您可以选择一种处理方式,把时间提前到14:45来平仓,或者用当前系统时间来代替K线时间判断。但用系统时间判断之后第二天这个信号就会消失,您就不能顺利的接着做后续的操作了。对于日内系统倒没什么影响,但是较长周期的系统会存在问题。
  1. If(CurrentTime>0.1450)
  2. {
  3.     // 我的交易代码...
  4. }
复制代码

使用道具 举报

Rank: 2

精华
0
UID
543
积分
73
帖子
17
主题
4
阅读权限
30
注册时间
2007-10-15
最后登录
2019-4-5
4#
发表于 2007-10-15 15:17:14 |只看该作者
谢谢你的回复,如果我是日线指标,想收盘平仓,能否实现?
另外,如果由于某种原因导致开仓指令未发出,那么重联后该指令实效还是会重新执行,开仓指令实效,相应的平仓指令、止损指令是否仍会执行;如果延误的是止损指令,重联后是否会根据条件执行?
序列型变量与一般变量有何区别?如果想将当前bar前10个bar的最高值进行处理(如(high1/1+high2/2+high3/3+...+high10/10)/sum(1,10))),代码如何,请教?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
5#
发表于 2007-10-15 17:43:59 |只看该作者
原帖由 hugingco 于 2007-10-15 15:17 发表
谢谢你的回复,如果我是日线指标,想收盘平仓,能否实现?
另外,如果由于某种原因导致开仓指令未发出,那么重联后该指令实效还是会重新执行,开仓指令实效,相应的平仓指令、止损指令是否仍会执行;如果延误的是止损指令,重联后是否会 ...


1、日线指标上用收盘平仓,是可以的。
第一步您先插入一个ExitOnClose交易指令到现有的图中。
第二步在您的代码中加入以下脚本:
  1. If(CurrentTime > 0.145500)
  2. {
  3.     If(MarketPosition==1)
  4.         sell;
  5.     else if(MarketPosition==-1)
  6.         buytoCover;
  7. }
复制代码


2、重连之后会根据新收到数据重新计算。如果有止损单,也会继续发送!

3、序列变量类似于数组,和图上的K线一一对应。一般变量只在当前执行的Bar有效。
您的这个算法有点类似于加权平均。您看看WAverage函数,应该可以明白其中的算法。

[ 本帖最后由 nopain 于 2007-10-15 17:48 编辑 ]

使用道具 举报

Rank: 2

精华
0
UID
543
积分
73
帖子
17
主题
4
阅读权限
30
注册时间
2007-10-15
最后登录
2019-4-5
6#
发表于 2007-10-15 21:24:14 |只看该作者
//------------------------------------------------------------------------
// 简称: WAverage
// 名称: 求权重平均
// 类别: 用户函数
// 类型: 内建函数
// 输出: 数值型
//------------------------------------------------------------------------
Params
NumericSeries Price(10);
Numeric Length(10);
Vars
Numeric WtdSum(0);
Numeric CumWt;
Numeric i;  
Begin
for i = 0 to Length - 1
{
  WtdSum = WtdSum + ( Length - i ) * Price[i ] ;
}
CumWt = ( Length + 1 ) * Length * 1/2 ;
Return WtdSum / CumWt;
End
//------------------------------------------------------------------------
// 编译版本 GS2004.06.12
// 版权所有 TradeBlazer Software 2003-2008
// 更改声明 TradeBlazer Software保留对TradeBlazer平
//   台每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------

请教公式中Price[i ]是什么含义?在运算中值的变化情况怎样?
如果我要在表达式内使用前10个bar各自的最高价怎样表达,h1,h2。。。?
谢谢

[ 本帖最后由 nopain 于 2007-10-15 21:34 编辑 ]

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
7#
发表于 2007-10-15 21:35:46 |只看该作者
原帖由 hugingco 于 2007-10-15 21:24 发表
//------------------------------------------------------------------------
// 简称: WAverage
// 名称: 求权重平均
// 类别: 用户函数
// 类型: 内建函数
// 输出: 数值型
//--------------------------------- ...


Price[0]是当前的值,Price[1]是指上一个Bar的值,以此类推!
至于怎么来写这个问题,一下说不清楚的,您需要系统的学习一下公式!
http://www.tradeblazer.net/forum/thread-242-1-1.html

[ 本帖最后由 nopain 于 2007-10-15 21:37 编辑 ]

使用道具 举报

Rank: 2

精华
0
UID
543
积分
73
帖子
17
主题
4
阅读权限
30
注册时间
2007-10-15
最后登录
2019-4-5
8#
发表于 2007-10-16 08:38:11 |只看该作者
如果在5分钟系统内,时间为9:08分,那么当前的bar是9:00的那根bar,还是9:05的不完整的bar?如果是9:00的那根bar,那么9:05分的不完整的bar的开盘、最高最低、最新价格能否引用?谢谢。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
9#
发表于 2007-10-16 09:19:14 |只看该作者
原帖由 hugingco 于 2007-10-16 08:38 发表
如果在5分钟系统内,时间为9:08分,那么当前的bar是9:00的那根bar,还是9:05的不完整的bar?如果是9:00的那根bar,那么9:05分的不完整的bar的开盘、最高最低、最新价格能否引用?谢谢。 ...


9:08分的数据被划到9:05的K线上,您在9:05分引用9:00的数据直接用Close[1]就可以取到上一个K线的收盘价,其他数据类似。
9:00不能引用9:05的数据,这样属于引用未来数据!

使用道具 举报

Rank: 2

精华
0
UID
543
积分
73
帖子
17
主题
4
阅读权限
30
注册时间
2007-10-15
最后登录
2019-4-5
10#
发表于 2007-10-16 09:58:06 |只看该作者
9:00-9:05 1000,1050,1000,1030
9:05-9:08 1030,1060,1020,1040
以上为例,第一根bar为完整的,如果现在是9:08分,那当前的bar是第一根bar的数据,还是第二根bar的数据?如close值是1040,还是1030?

使用道具 举报

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

bottom

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

GMT+8, 2024-5-6 19:23

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部