- 精华
- 0
- 在线时间
- 30 小时
- UID
- 113352
- 积分
- 89
- 帖子
- 56
- 阅读权限
- 30
- 注册时间
- 2012-11-7
- 最后登录
- 2013-2-1
- 精华
- 0
- UID
- 113352
- 积分
- 89
- 帖子
- 56
- 主题
- 10
- 阅读权限
- 30
- 注册时间
- 2012-11-7
- 最后登录
- 2013-2-1
|
本帖最后由 冬雨 于 2013-1-8 14:29 编辑
系统提供了两个函数CrossOver及CrossUnder,但不指明穿在那个Bar上,所以我改良了函数如下。
//------------------------------------------------------------------------
// 简称: CrossAbout
// 名称: 求上穿或下穿
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
// = 0, 表示两个值相等,没有上穿或下穿
// > 0, 表示上穿, 同时表示上穿的Bar位置
// < 0, 表示下穿,其值与0的差表示下穿的Bar位置
//------------------------------------------------------------------------
Params
NumericSeries Price1(1);
NumericSeries Price2(1);
Vars
Numeric Counter(0);
Bool Condition(True);
Numeric Num; // 返回结果
Begin
If (Price1 == Price2) {
Num = 0;
Return Num;
}Else
If (Price1 > Price2) {
Counter = 1;
Condition = (Price1[Counter] >= Price2[Counter]);
While (Condition and Counter < CurrentBar) {
Counter = Counter + 1;
Condition = (Price1[Counter] >= Price2[Counter]);
}
Num = Counter;
Return Num;
}Else {
Counter = 1;
Condition = (Price1[Counter] <= Price2[Counter]);
While (Condition and Counter < CurrentBar) {
Counter = Counter + 1;
Condition = (Price1[Counter] <= Price2[Counter]);
}
Num = 0 - Counter;
Return Num;
}
End
//------------------------------------------------------------------------
// 编译版本 GS2010.12.08
// 用户版本 2012/10/30 19:38
// 版权所有 bill8243
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TrabeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
|
|