- 精华
- 0
- 在线时间
- 22 小时
- UID
- 84387
- 积分
- 36
- 帖子
- 15
- 阅读权限
- 10
- 注册时间
- 2011-12-5
- 最后登录
- 2015-7-29
- 精华
- 0
- UID
- 84387
- 积分
- 36
- 帖子
- 15
- 主题
- 4
- 阅读权限
- 10
- 注册时间
- 2011-12-5
- 最后登录
- 2015-7-29
|
请教大神:
想实现在10秒钟k线周期上,价格上穿压力位那一刻开始计数,当计数满5秒后再开仓。
我的方法是先记录第一时间上穿的那刻时间,再拿最新的时间减去那刻时间,当他们的差大于5秒后开仓。
但是我编写完,还是发现当根k线上始终是不断重新赋值。没有记录第一秒上穿的时刻。请哪位老师、大神帮忙看看,到底怎么解决。
以下是一段代码:
TimeSeconds=Value(Left(TimeToString(CurrentTime),2))*3600+Value(Mid(TimeToString(CurrentTime),3,2))*60 +Value(Right(TimeToString(CurrentTime),2));
//记录时间
If(BarStatus==2&&bsigadd1 ) //上穿
{
for i = 0 to 80 //确定压力位
{
forprice=centre -myatr1*F1*4+myatr1*F1*0.1*forn;
If(q_last< forprice+myatr1*F1*0.1 && Q_Last>=forprice ){SetTBProfileString("buysell","bprice",Text(forprice));Break;}
forn=forn+1;
}
entrytj1=forprice<>var2 || var2==0||var0>10;
entrytj3= forprice>var2&&A_BuyPosition==0 && var2<>0;
If(entrytj1&& !entrytj3) //确定当前时间
{
SetTBProfileString("buysell","btime",text(timeseconds));
}
}
var0= Value(getTBProfileString("buysell","btime"));
var2= Value(getTBProfileString("buysell","bprice"));
var1= Value(getTBProfileString("buysell","stime"));
var3= Value(getTBProfileString("buysell","sprice"));
If ( var0==InvalidNumeric ||Date<>date[1] ||BarStatus==0 ) var0=0; //下单时间初始化.!!断网重连或者重启则会重置全局变量。!!???
If ( var1==InvalidNumeric ||Date<>date[1] ||BarStatus==0 ) var1=0;
If ( var2==InvalidNumeric ||Date<>date[1] ||BarStatus==0 ) var2=0;
If ( var3==InvalidNumeric ||Date<>date[1] ||BarStatus==0 ) var3=0;
tradetime= CurrentTime>=myentrytime/100 && CurrentTime<LastTradeMins/100 ;//and Date-mydate0>atrlength;
bsignal= TimeSeconds-var0>=5&& TimeSeconds-var0<10 &&var0>0 &&Q_Last>var2; //开仓做多条件
ssignal= TimeSeconds-var1>=5&& TimeSeconds-var1<10 &&var1>0 &&Q_Last<var3; //开仓做空条件
|
|