- 精华
- 0
- 在线时间
- 111 小时
- UID
- 5910
- 积分
- 323
- 帖子
- 36
- 阅读权限
- 50
- 注册时间
- 2009-11-16
- 最后登录
- 2010-2-2
- 精华
- 0
- UID
- 5910
- 积分
- 323
- 帖子
- 36
- 主题
- 10
- 阅读权限
- 50
- 注册时间
- 2009-11-16
- 最后登录
- 2010-2-2
|
我想实现的功能,当日线的DIFF>0,DIFF>DEA和30分钟线的DIFF>0,DIFF>DEA 和5分钟的DIFF>0,DIFF>DEA时发出平空开多指令,否则发出平多开空指令!
下面是我的想法,请各位高手看一看有什么不妥之处!谢谢!
1,先根据NOPAIN老师的多周期共振系统写出 “1分钟转换N分钟的指数平均”
2,在日线上插入“通过文件读写函数实现跨周期数据调用”如下:
Params
Numeric FastLength(12);
Numeric SlowLength(26);
Numeric MACDLength(9);
Vars
NumericSeries MACDValue;
NumericSeries AvgMACD;
NumericSeries MACDDiff;
Numeric conditon;
string strkey;
string strValue;
Begin
MACDValue = XAverage( Close, FastLength ) - XAverage( Close, SlowLength );
AvgMACD = XAverage(MACDValue,MACDLength);
MACDDiff = MACDValue - AvgMACD;
If(MACDValue > 0 && MACDValue>AvgMACD)
{
conditon=1;
}
If(MACDValue < 0 && MACDValue<AvgMACD)
{
conditon=2;
}
strKey = DateToString(Date);
strValue=Text(conditon);
SetTBProfileString("MyConditon",strKey,strValue);
End
3,在一分钟线上插入“交易指令”如下:
Params
Numeric FastLength(12);
Numeric SlowLength(26);
Numeric MACDLength(9);
Vars
NumericSeries MACDValue5;
NumericSeries MACDValue30;
Numeric AvgMACD5;
Numeric AvgMACD30;
Numeric MACDDiff5;
Numeric MACDDiff30;
NumericSeries DayMyConditon;
StringSeries strKey;
string strValue;
Bool LongEntryCon;
Bool ShortEntryCon;
Bool LongExitCon;
Bool ShortExitCon;
Begin
MACDValue5 = MinsXAverage(5, Close, FastLength ) - MinsXAverage(5, Close, SlowLength );
AvgMACD5 = MinsXAverage(5,MACDValue5,MACDLength);
MACDDiff5 = MACDValue5 - AvgMACD5;
MACDValue30 = MinsXAverage(30, Close, FastLength ) - MinsXAverage(30, Close, SlowLength );
AvgMACD30 = MinsXAverage(30,MACDValue30,MACDLength);
MACDDiff30 = MACDValue30 - AvgMACD30;
If(Date!=Date[1])
{
strKey = DateToString(Date[1]);
}Else
{
strKey = strKey[1];
}
strValue = GetTBProfileString("MyConditon",strKey);
If(strValue != InvalidString)
{
DayMyConditon = Value(strValue);
}Else
{
DayMyConditon = DayMyConditon[1];
}
LongEntryCon = DayMyConditon==1 && MACDValue30 > 0 && MACDValue30>AvgMACD30 && MACDValue5> 0 && MACDValue5>AvgMACD5 ;
ShortEntryCon = DayMyConditon==2 && MACDValue30 < 0 && MACDValue30<AvgMACD30 && MACDValue5< 0 && MACDValue5<AvgMACD5 ;
If (LongEntryCon)
{
buy(1,close);
}
Else if(ShortEntryCon)
{
SellShort(1,close);
}
End |
|