- 精华
- 0
- 在线时间
- 9 小时
- UID
- 232018
- 积分
- 26
- 帖子
- 13
- 阅读权限
- 10
- 注册时间
- 2016-4-12
- 最后登录
- 2016-7-5
- 精华
- 0
- UID
- 232018
- 积分
- 26
- 帖子
- 13
- 主题
- 4
- 阅读权限
- 10
- 注册时间
- 2016-4-12
- 最后登录
- 2016-7-5
|
老师,对于日内收盘平仓,我的思路是这样的:加载到PTA1小时K线上,如果是历史K线,我不仅想在23:30夜盘结束时以收盘价平仓,也想在每日15:00收盘时平仓;对于实时行情,我不仅想在23:25平仓,也想在14:55平仓。以下是我的测试模型,现在已经能实现历史K线23:30收盘时平仓,但让我实在不能理解的是为何历史K线的15点收盘无法出现平仓信号呢,我的用户函数TrueDateAmend返回的值确实发生变化了啊?请各位高手和老师们帮我想想办法,我已经想了2天了,依然找不到问题。
Params
Numeric FastLen(5);
Numeric SlowLen(10);
Vars
NumericSeries ma1;
NumericSeries ma2;
BoolSeries Con1;
BoolSeries Con2;
Begin
ma1=AverageFC(C,FastLen);
ma2=AverageFC(C,SlowLen);
PlotNumeric("ma1",ma1);
PlotNumeric("ma2",ma2);
Con1=CrossOver(ma1,ma2);
Con2=CrossUnder(ma1,ma2);
If(Con1[1]) Buy(0,Open);
If(Con2[1]) SellShort(0,Open);
If(MarketPosition<>0)
{
If((Date[-1]!=InvalidInteger && Date!=Date[-1]) || (Date[-1]==InvalidInteger && Date<CurrentDate) || (Date[-1]!=InvalidInteger && TrueDateAmend!=TrueDateAmend[-1]))
{
Sell(0,Close);
BuyToCover(0,Close);
}Else If((Date==CurrentDate && Time==0.1400 && CurrentTime>=0.1455) || (Date==CurrentDate && Time==0.2300 && CurrentTime>=0.2325))
{
Sell(0,0);
BuyToCover(0,0);
}
}
Commentary("TrueDateAmend="+DatetoString(TrueDateAmend));
End
以下是我引用的用户函数TrueDateAmend:
Vars
Numeric newDate;
Numeric DayOffset;
Numeric dow;
Begin
If(BarType==0||BarType==4||BarType==5)//日线,周线,月线
{
newDate = Date;
}Else
{
//18点以后算下一个交易日
DayOffset = 0;
dow = Weekday;
If(Hour>=18)
{
If(dow==Friday) // 周五晚上
{
DayOffset = 3;
}Else
{
DayOffset = 1;
}
}Else
{
DayOffset=0;
}
newDate = DateAdd(Date,DayOffset);
}
Return NewDate;
End
|
|