如何控制BAR交易次数
[i=s] 本帖最后由 jsz123 于 2010-7-28 23:13 编辑 [/i][b][/b]2.A_SendOrder
使用全局变量计数,并且在判断条件中加入这个全局变量和限制交易次数做比较
if( date!=date[1] )
{
SetGlobalVar(0,0);
}
if( con1 && GetGlobalVar(0)<=3 )
{
A_SendOrder(省略);
SetGlobalVar(0,GetGlobalVar(0)+1);
}
这个if( date!=date[1] )是控制日线周期的BAR,假如我想控制5分钟或者15分钟交易次数怎么办
[color=Red]换句话说,15分钟K线图上,[font=黑体][font=微软雅黑][u][size=5]用A函数[/size][/u][/font]![/font]开仓,平仓,再开仓,再平仓都必须在不同的BAR上(每根BAR只能发出一次交易指令!)[/color] 修改了例子,请看6楼 [i=s] 本帖最后由 jsz123 于 2010-7-29 09:57 编辑 [/i]
[font=楷体_GB2312][size=6][color=Blue]谢谢提供了思路,但是用时间控制,不是太准确吧?
比如说,我9点56分开的仓 SetGlobalVar(0)=0.0956*10000=956
956+15(分钟)=971 下一个15分钟已经过去了15-4=11分钟了 等于说 15分钟 下根BAR已经过去了11分钟才能开仓[/color][/size][size=6][color=Blue]![/color][/size][/font]
[font=楷体_GB2312][color=SeaGreen][size=6]另一个,必须要计算机的时间非常准确吧?[/[/size]color]font] 你的周期是15分钟呀!所以就不存在0.0956的bar了,我这么理解的,不知道对否 [quote]if( con1 && time*10000==GetGlobalVar(0)+n )
{
A_SendOrder(省略);
SetGlobalVar(0,time*10000);
}[/quote]
这个 SetGlobalVar(0,time*10000);里的time是指开仓时候的时间吗?还是BAR一开始的的时间? [b] [url=http://tradeblazer.net/forum/redirect.php?goto=findpost&pid=52612&ptid=9028]3#[/url] [i]jsz123[/i] [/b]
修改一下例子
n是周期数
if( date!=date[1] )
{
SetGlobalVar(0,0);
}
if( con1 && time*10000-GetGlobalVar(0)>=n )
{
A_SendOrder(省略);
SetGlobalVar(0,time*10000);
} 6楼的例子似乎有问题,time是60进制的,变成数字计算会按100进制计算,这个会导致严重计算错误!
页:
[1]
