全部 智大领峰 TBQuant功能 TBL语言 TB开户 问答专区 高手圈 其他
模拟盘交易不发单,请老师帮忙,谢谢
inettb 分享到
2023-06-08 15:29

OnBar(ArrayRef<Integer> indexs)

{

Print(Text(BarStatus));

if(BarStatus==2 && MarketPosition==0 && Close>0 )

{

Bool ret ;

ret = Buy(1,Close);

ret = FileAppend(D:\\\\log, Text(SystemDateTime()) + + Close: + Text(Close) + );

}

}

data-href=


data-href=

kyover

看不i出来有什么问题 应该是其他部分操作设置的问题

2023-06-09 09:26
inettb
@kyover

是啊,这么简单的一个下单测试,好几天没弄出来,太浪费时间了。 我看到遇到这种问题的人很多很多,建议在“帮助文档”-“交易函数”-“buy、sell等函数”的介绍中( https://www.tbquant.net/helper?navigate=tbfn&cid=1832 )把运行机制详细描述一下吗? 做为一个新人,通过提问、论坛搜索等方式把所谓的图表函数弄清楚,花了很多时间。

\"\"

再说一遍,逻辑顺序是,1执行代码,2图上标记信号,3系统根据图上信号报送委托单。

不会重复发单这个机制,是在顺序3这里执行的,而信号闪烁是由顺序1处发生问题导致的,怎么可能是后来发生的事影响之前发生的事?因果颠倒了?

如果计算算法上不存在变动,那考虑是否是跨周期导致的问题

我在《深入浅出学习TBL语言》中找到一段话:“buy、sellshort 在图表上标识买卖信号,与 k 线、行情数据有关,可用于历史回测及实时交易, 该函数同一个 bar 不会重复发单(   TB 底层保证)


因为在盘中的最新bar上,每一次tick驱动都会跑一遍公式。

第一遍,全局变量满足条件,buy语句执行,在图上标上记号。全局变量修改值。

第二遍运行,首先重置上一次运行的所有结果,当前bar所有信号,画线抹除。由于全局变量被修改,不满足条件,buy语句不执行,图上没有信号,图表上就没有信号。

Portfolio_CurrentEquity这个动态权益是以当前BAR的收盘价(盘中最新价)来计算的,所以在盘中是变化的,根据这个计算交易手数会闪,所以,也应该回溯1再使用。可以把它赋值给一个序列类型的变量,然后序列变量回溯1来读取。

信号闪烁是什么意思 ?  信号闪烁会发单吗?


2023-06-10 10:10
您未登录,请先 登录注册 后发表评论
顶部