设为首页收藏本站

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

麻烦给看下这个写法哪里有问题 [复制链接]

Rank: 4

精华
0
UID
110114
积分
380
帖子
314
主题
16
阅读权限
50
注册时间
2012-4-20
最后登录
2021-12-29
11#
发表于 2021-8-5 09:39:51 |只看该作者
使用MarketPosition == 0的条件在当根开仓K线不起作用,会造成当根K线的重复开仓,只有在开仓后的下一根K线MarketPosition的值才会变为1。这段程序不完整,不知道是否其它部分会导致你说的问题。

使用道具 举报

Rank: 1

精华
0
UID
1335224
积分
15
帖子
13
主题
2
阅读权限
10
注册时间
2021-7-16
最后登录
2021-8-22
12#
发表于 2021-8-5 23:09:49 |只看该作者
Yuen_Lee 发表于 2021-8-5 09:39
使用MarketPosition == 0的条件在当根开仓K线不起作用,会造成当根K线的重复开仓,只有在开仓后的下一根K线 ...

您好,感谢回复。这段代码是我的程序里的开头的部分,只是执行buy部分不一样,但是效果是一样的。 我贴出来的是可以完整执行的程序,直接复制到TB里就可以编译执行,运行结果就是如我所说的,所以不可能是其他部分导致的,只能是这小段程序的原因。
你说”使用MarketPosition == 0的条件在当根开仓K线不起作用,会造成当根K线的重复开仓“,但是加载到模拟账户的时候,满足条件的当根k线是实际开仓的,而且也只开一仓,只是后面k线陆续还会开仓。
我已经弃用这个函数了,使唤不了。
我一直在用文华的wh8。现在有个新的策略,文华的麦语言比较死板,实现起来有点困难,于是就转战TB了。在这里我再咨询您个新的问题,希望能得到您的帮助:我的这个是趋势模型,不是短舱,而且会一直持续持仓,但是问题来了,如果中途电脑关机,系统更新之类的,程序会重新运行,那我的持仓以及各个参数会被重新归零,这该怎么办呢?我想延续我之前的数据以及持仓,在这个基础上继续执行我的程序,而不是重新开始。因为我的这个模型是根据当前的k线走势开仓的,重新运行的开仓结果跟之前是完全不一样。我在尝试用SetTBProfileString这个函数,把数据读回程序,但是我发现重新运行程序后marketposition==0,而sell 以及buytocover只能在marketposition!=0下才起作用,这就意味着程序不能执行平老仓的动作。可能我对TB还不够了解,希望能得到您的帮助,就是重启后如何能让程序延续持仓,并能产生平仓动作。谢谢!

使用道具 举报

Rank: 4

精华
0
UID
110114
积分
380
帖子
314
主题
16
阅读权限
50
注册时间
2012-4-20
最后登录
2021-12-29
13#
发表于 2021-8-6 08:45:44 |只看该作者
首先,如果不是日内短线交易,可以不用BarStatus == 2的条件,避免重启程序后没有之前的开仓信号,也就无法自动平仓。TB里的A函数可以帮你查到现有持仓(帮助文件里点“索引”栏,开头部分都是A函数)和手数等,比如A_BuyPosition会返回现有多单的持仓状态,用这些A函数代替MarketPosition可以解决你说的关机重启的问题。帮助文件里有注释,TB的论坛里也能查到一些好的用法。

使用道具 举报

Rank: 1

精华
0
UID
1335224
积分
15
帖子
13
主题
2
阅读权限
10
注册时间
2021-7-16
最后登录
2021-8-22
14#
发表于 2021-8-6 10:11:10 |只看该作者
Yuen_Lee 发表于 2021-8-6 08:45
首先,如果不是日内短线交易,可以不用BarStatus == 2的条件,避免重启程序后没有之前的开仓信号,也就无法 ...

好的,非常非常感谢!

使用道具 举报

Rank: 1

精华
0
UID
1335224
积分
15
帖子
13
主题
2
阅读权限
10
注册时间
2021-7-16
最后登录
2021-8-22
15#
发表于 2021-8-9 13:34:05 |只看该作者
本帖最后由 tbmorning 于 2021-8-9 13:35 编辑
Yuen_Lee 发表于 2021-8-6 08:45
首先,如果不是日内短线交易,可以不用BarStatus == 2的条件,避免重启程序后没有之前的开仓信号,也就无法 ...


您好!又遇到新问题了,麻烦咨询您一下:
我浏览过其他的帖子,A_SendOrder函数是可以用在模拟盘的,可是我测试的 A_SendOrder为什么不发单呢?
Params
Vars
BoolSeries    BL(True);
Begin
If(BL) //
{
If(Close[1]<Close[2])
A_SendOrder(Enum_Sell,Enum_Entry,1,Open);
}
End
这段很简单的代码,编译加载图形后不发单,这又是咋回事呢?我已经开启全自动交易,图表右上角的笑脸符号是绿色笑脸。

使用道具 举报

Rank: 4

精华
0
UID
110114
积分
380
帖子
314
主题
16
阅读权限
50
注册时间
2012-4-20
最后登录
2021-12-29
16#
发表于 2021-8-9 15:23:17 |只看该作者
可以在论坛里搜一下关于“A_SendOrder不发单”的问题,这个我也不是很清楚。

使用道具 举报

Rank: 1

精华
0
UID
1335224
积分
15
帖子
13
主题
2
阅读权限
10
注册时间
2021-7-16
最后登录
2021-8-22
17#
发表于 2021-8-9 17:11:15 |只看该作者
Yuen_Lee 发表于 2021-8-9 15:23
可以在论坛里搜一下关于“A_SendOrder不发单”的问题,这个我也不是很清楚。 ...

好的,非常感谢!
实际上我发现问题的时候第一时间搜索过论坛,但是很遗憾关键字不准确,没找到具体答案。

使用道具 举报

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

bottom

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

GMT+8, 2024-4-27 12:38

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部