- 精华
- 0
- 在线时间
- 693 小时
- UID
- 31697
- 积分
- 671
- 帖子
- 137
- 阅读权限
- 60
- 注册时间
- 2011-4-2
- 最后登录
- 2020-10-8
- 精华
- 0
- UID
- 31697
- 积分
- 671
- 帖子
- 137
- 主题
- 13
- 阅读权限
- 60
- 注册时间
- 2011-4-2
- 最后登录
- 2020-10-8
|
本帖最后由 傻了吧 于 2012-3-1 14:08 编辑
用TB自带的KD指标写一个简单判断前一根Bar的K和D值,金叉做多,死叉做空的代码,因为曾经看小米管理说过:
crossover,corssunder,除了可以使用close,open,high,low等K线原有数据的回溯值外,不可以使用A[1],B[1]等这样的变量回溯。
可以使用变通的方法。如果使用回溯的值来计算A,B,再代入这两个crossover,crossunder的函数就可以了。
(参见:http://www.tradeblazer.net/forum ... p;extra=&page=1)
所以增加红色字体部分(黑色是TB的KD指标原代码),但图表上无交易信号。请帮忙看看是什么原因,谢谢
Params
Numeric Length(14);
Numeric SlowLength(3);
Numeric SmoothLength(3);
Vars
NumericSeries HighestValue;
NumericSeries LowestValue;
NumericSeries KValue;
Numeric SumHLValue;
Numeric SumCLValue;
NumericSeries DValue;
NumericSeries TmpK;
NumericSeries TmpD;
Begin
HighestValue = HighestFC(High, Length);
LowestValue = LowestFC(Low, Length);
SumHLValue = SummationFC(HighestValue-LowestValue,SlowLength);
SumCLValue = SummationFC(Close - LowestValue,SlowLength);
If(SumHLValue <> 0)
{
KValue = SumCLValue/SumHLValue*100;
}Else
{
KValue = 0;
}
DValue = AverageFC(KValue,SmoothLength);
TmpK=KValue[1];
TmpD=DValue[1];
If(CrossOver(TmpK,TmpD)){
Buy(1,Open);
}
else if(CrossUnder(TmpK,TmpD)){
SellShort(1,Open);
}
PlotNumeric("K",KValue);
PlotNumeric("D",DValue);
PlotNumeric("Ref1",20);
PlotNumeric("Ref2",80);
End |
|