开拓者期货期权程序化系统交易论坛
标题:
求助:如何取倒500日到倒250日(前年到去年当日)最高价
[打印本页]
作者:
willxue
时间:
2019-6-23 10:11:56
标题:
求助:如何取倒500日到倒250日(前年到去年当日)最高价
//倒500日~倒250日振幅
myhigh=0;
mylow=999999;
if (currentbar>BarCount-250*2 && currentbar<=BarCount-250)
{
myhigh=1;
if(high>myhigh) myhigh = high;
if(low<mylow) mylow = low;
}
合约是ru888,非实时(收盘后),输出结果:
myhigt, mylow还是0和999999,另外,输出barcount=4241
请问为什么循环不起作用,取不到区间极值,或者可有更简单的办法,非常感谢!
作者:
Yuen_Lee
时间:
2019-6-28 09:38:09
指针每到一个Bar时都会执行一次这段语句,所以你看到的结果只是在最后一个Bar时的。可以用全局变量来记录高点和低点值,这样就可以得到想要的结果。
If(BarStatus == 0)
{
SetGlobalVar(0,0);
SetGlobalVar(1,999999);
}
If(currentbar>BarCount-250*2 && currentbar<=BarCount-250)
{
If(High>GetGlobalVar(0)) SetGlobalVar(0,High);
If(Low<GetGlobalVar(1)) SetGlobalVar(1,Low);
}
最后的最高和最低值结果用GetGlobalVar(0)和GetGlobalVar(1)调出。
作者:
bahuang
时间:
2019-6-28 13:02:34
本帖最后由 bahuang 于 2019-6-28 13:04 编辑
是取前250日到前500日之间最高值?
总之你们的理解和描述都有问题. 怎么形容呢 如果取前2日到前5日最高值, 则每一个k线上都要取前2日到前5日
for i=2 to 5
{
If(high
> hst)
hst = high
;
}
你们的思路就算求出来, 也只能求出来最后一个k线的该值, 或者实盘中再形成新k可用
作者:
Yuen_Lee
时间:
2019-6-28 14:44:58
bahuang 发表于 2019-6-28 13:02
是取前250日到前500日之间最高值?
总之你们的理解和描述都有问题. 怎么形容呢 如果取前2日到前5日最高值, ...
谢谢bahuang的参与!我认为willxue希望得到的是日线结果,而且仅想知道当前日线时的结果,所以也仅仅“求出来最后一个K线的值”就可以了。我刚将我的程序放到TB验证了一下,能得到willxue想要的结果,加上下列的结果输出就能看到。
If(currentbar == BarCount-1)
FileAppend("C:\\log.txt", Text(Date)+"\t"+Text(GetGlobalVar(0))+"\t"+Text(GetGlobalVar(1)));
作者:
qsb588986
时间:
2019-7-7 22:39:50
本帖最后由 qsb588986 于 2019-7-7 22:44 编辑
欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/)
Powered by Discuz! X2