开拓者期货期权程序化系统交易论坛
标题:
请修改均线的2次交叉语句
[打印本页]
作者:
b8866
时间:
2008-3-5 21:22:27
标题:
请修改均线的2次交叉语句
在一定周期内,求交叉的次数的总数大于2。比如在30个值范围内MA1上交叉MA2的次数大于2。我认为是均线的2次交叉
CountIf(CrossOver(MA1, MA2),30)>2//我调用了统计总数函数,但我在校验时错误提示:被调用公式要求传入序列参数或序列表达式作为参数
如何修改,谢谢
作者:
tradeblazer
时间:
2008-3-5 22:07:01
先定义序列变量
Vars
BoolSeries crosscon;
begin
crosscon = CrossOver(MA1,MA2);
newcon = CountIf(CrossCon,30) > 2;
....
End
作者:
b8866
时间:
2008-3-5 23:56:58
还是不对呀,老师帮我该一下好了,谢谢;
Params
Numeric FastLength( 12 );
Numeric SlowLength( 26 );
Numeric MACDLength( 9 );
Numeric BuyLots(1);
Numeric M1(10);
Numeric M2(30);
Numeric M3(60);
Numeric M4(120);
Vars
NumericSeries DIFF;
NumericSeries DEA;
Numeric MA1;
Numeric MA2;
Numeric MA3;
Numeric MA4;
BoolSeries JC;
Bool BK1;
Begin
DIFF = XAverage( Close, FastLength ) - XAverage( Close, SlowLength ) ;
DEA = XAverage(DIFF,MACDLength);
MA1=Average( Close, M1);
MA2=Average( Close, M2);
MA3=AverageFC( Close, M3);
MA4=AverageFC( Close, M4);
JC =CrossOver(MA1, MA2);//这里还是不对呀“被调用公式要求传入序列参数或序列表达式作为参数”
BK1=CountIf(JC,30) > 2&&MA1>MA4&&MA2>MA4&&MA3>MA3[1]&&MA3[1]>MA3[2];//我想用MA3>MA3[1]&&MA3[1]>MA3[2]表示MA3向上可惜错误
if (BK1 )
{
Buy(BuyLots,Close);
}
End
作者:
tradeblazer
时间:
2008-3-6 08:57:59
把MA1,MA2定义为NumericSeries
作者:
b8866
时间:
2008-3-6 09:52:44
这次保存成功,可是前面就一次信号,我看别的地方也应该有,可就那一次,是不是没有平仓信号,就没第2个信号?
作者:
cfmx2007
时间:
2008-3-6 13:48:25
b8866同学不错呀,好好交流一下啊
作者:
b8866
时间:
2008-3-6 13:52:12
我的QQ137039357
作者:
哈哈
时间:
2008-3-6 19:44:32
原帖由
b8866
于 2008-3-6 09:52 发表
这次保存成功,可是前面就一次信号,我看别的地方也应该有,可就那一次,是不是没有平仓信号,就没第2个信号?
跟交易设置有没有冲突啊,如同一个交易指令不能连续建仓之类的
作者:
huage
时间:
2008-3-6 23:20:48
努力学习中。
欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/)
Powered by Discuz! X2