怎样限制,在一根Bar上最多只开一次仓?
怎样限制,在一根Bar上最多只开一次仓? 开仓后直接 return 直接 Return 是后面的代码都不执行了?还是之后价格再变动代码都不再循环执行了?还是??! 直接返回,后面的代码都不执行了 TB的代的执行过程是,有价格变动,就执行一次,那么下次价格变动,带Return的语句,还会执行吗? 会的 晕呢,那样的话不是还是要执行这段代码吗?我看还是用全局变量吧! 每次行情更新都会执行,但是如果当前Bar前面已经发过单了,系统会检测到,然后会过滤该信号 还是不懂也,看来这个Return很复杂呀,我把我的理解整理如下:比如:
if(x=x)
{
Buy(Y,Y);
Return;
}
就是说,在上面这个语句块里用了Return,那么
1,每次行情变动的时候,这个语句块都不会再执行?
2,每次行情变动的时候,这个语句块会执行,但是交易指令会被忽略?
3,每次行情变动的时候,这个语句块会执行,但是已经发生过的同方向的交易指令会被忽略? 上面的理解都不对。
如下面的代码:
if(conEntry)
{
Buy(Y,Y);
Return;
}
If(ConExit)
{
Sell(z,z);
}
Return的意思是如果条件满足的情况下,执行了Buy操作,然后就会直接返回。不会执行下面的3行代码。
关于return的详细信息,请在google上搜索相关内容 恩,那就是说Return和C语言里的Return意思差不多呀,但是,在实际交易中,当价格再次变动的时候,还会执行前面的代码,所以,还是无法实现“一根K线只开一次仓”的效果呀! 当然可以实现,您自己写点代码测试一下不就都知道了? 哎,我用全局变量,已经解决这个而问题了,我只是想理解Return的用法啊,就算我试出了效果,不理解又怎么灵活取用呢!! 前面我已经解释过了啊,重新解释一下:
假设一根1分钟的Bar,每秒钟刷新一个Tick。这个Bar会被计算60次。
假设在第10个Tick时条件满足,开仓。
第11个Tick刷新时,还会同样的执行这些代码,但是系统已经记录到这个Bar已经开过仓,所以不会重复发送,所以您的这个理解是不正确的。
[quote]但是,在实际交易中,当价格再次变动的时候,还会执行前面的代码,所以,还是无法实现“一根K线只开一次仓”的效果呀![/quote] 呵呵,这样解释,我就理解了,原来Return是这样用的呀 :——) 可以用在A函数吗? A函数要用全局变量控制发单次数 buy,sell函数组就只开平一次,不需其它控制 我用了return,不过还是重复开仓,好像return没有起到作用 就是C语言
页:
[1]
2
