- 精华
- 0
- 在线时间
- 1 小时
- UID
- 1263621
- 积分
- 6
- 帖子
- 3
- 阅读权限
- 10
- 注册时间
- 2021-6-29
- 最后登录
- 2021-9-14
- 精华
- 0
- UID
- 1263621
- 积分
- 6
- 帖子
- 3
- 主题
- 1
- 阅读权限
- 10
- 注册时间
- 2021-6-29
- 最后登录
- 2021-9-14
|
//------------------------------------------------------------------------
// 简称: K_topbottom
// 名称:
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
//输出顶底分型的索引值和它是顶底的类型
//------------------------------------------------------------------------
Params
//此处添加参数
NumericRef TB;//顶底1为顶,-1为低
NumericRef offset;//偏移量
Vars
//此处添加变量
Series<Numeric> IsMerged;//被包含0:无包含,-1被前根包含,1包含前根
Series<Numeric> FontIsTop;
Series<Numeric> FontIsBottom;
Series<Numeric> TB_Interval(0);
Series<Numeric> IsRiseOrDecrease;
Series<Numeric> MergeHigh(0);
Series<Numeric> MergeLow(0);
Series<Numeric> NotMergeFontHigh(0);
Series<Numeric> NotMergeFontLow(0);
Numeric i(0);
Numeric tbnum(0);//顶底分型个数
Begin
//此处开始合并K线
If (High>MergeHigh[1] And Low>MergeLow[1]) //不包含上涨
{
IsMerged=0;
MergeHigh=High;
MergeLow=Low;
IsRiseOrDecrease=1;
NotMergeFontHigh=MergeHigh[1];
NotMergeFontLow=MergeLow[1];
}
Else If(High<MergeHigh[1] And Low<MergeLow[1]) //不包含下跌
{
IsMerged=0;
MergeHigh=High;
MergeLow=Low;
IsRiseOrDecrease=-1;
NotMergeFontHigh=MergeHigh[1];
NotMergeFontLow=MergeLow[1];
}
Else If(High>=MergeHigh[1] And Low<=MergeLow[1])//包含前K线
{
IsMerged=1;
IsRiseOrDecrease=1;
NotMergeFontHigh=NotMergeFontHigh[1];
NotMergeFontLow=NotMergeFontLow[1];
If (MergeHigh[1]>=MergeHigh[2] And MergeHigh[1]>=MergeHigh[3]) //上涨
{
MergeHigh=Max(High,MergeHigh[1]);
MergeLow=Max(Low,MergeLow[1]);
}
Else If(MergeHigh[1]<MergeHigh[2] And MergeHigh[1]<MergeHigh[3])//下跌
{
MergeHigh=Min(High,MergeHigh[1]);
MergeLow=Min(Low,MergeLow[1]);
}
}
Else If(High<MergeHigh[1] And Low>MergeLow[1])//被前K线包含
{
IsMerged=-1;
IsRiseOrDecrease=0;
NotMergeFontHigh=NotMergeFontHigh[1];
NotMergeFontLow=NotMergeFontLow[1];
If ((MergeHigh[1]>=MergeHigh[2] And (MergeHigh[1]>MergeHigh[3] Or MergeHigh[1]>MergeHigh[4])) Or (MergeHigh[1]>MergeHigh[2] And MergeLow[1]>MergeLow[2])) //上涨
{
MergeHigh=Max(High,MergeHigh[1]);
MergeLow=Max(Low,MergeLow[1]);
}
Else If((MergeHigh[1]<=MergeHigh[2] And (MergeHigh[1]<MergeHigh[3] Or MergeHigh[1]<MergeHigh[4]))Or(MergeHigh[1]<MergeHigh[2] And MergeLow[1]<MergeLow[2]))//下跌
{
MergeHigh=Min(High,MergeHigh[1]);
MergeLow=Min(Low,MergeLow[1]);
}
}
//此处开始分顶底分型
If(MergeHigh<MergeHigh[1] And NotMergeFontHigh[1]<=MergeHigh[1] And MergeLow<MergeLow[1])
{
FontIsTop=1;
FontIsBottom=0;
TB=1;
offset=1;
While(IsMerged[offset]==-1)
{
offset=offset+1;
}
/* Commentary("MergeHigh:"+Text(MergeHigh));
Commentary("MergeLow:"+Text(MergeLow));
Commentary("NotMergeFontHigh:"+Text(NotMergeFontHigh));
Commentary("NotMergeFontLow:"+Text(NotMergeFontLow));*/
return CurrentBar;
}
Else If(MergeLow>MergeLow[1] And NotMergeFontLow[1]>=MergeLow[1] And MergeHigh>MergeHigh[1])
{
FontIsTop=0;
FontIsBottom=1;
TB=-1;
offset=1;
While(IsMerged[offset]==-1)
{
offset=offset+1;
}
/* Commentary("MergeHigh:"+Text(MergeHigh));
Commentary("MergeLow:"+Text(MergeLow));
Commentary("NotMergeFontHigh:"+Text(NotMergeFontHigh));
Commentary("NotMergeFontLow:"+Text(NotMergeFontLow));*/
return CurrentBar;
}
Else
{
FontIsTop=0;
FontIsBottom=0;
}
//此处开始画图
/* Commentary("MergeHigh:"+Text(MergeHigh));
Commentary("MergeLow:"+Text(MergeLow));
Commentary("NotMergeFontHigh:"+Text(NotMergeFontHigh));
Commentary("NotMergeFontLow:"+Text(NotMergeFontLow));
*/
Return 0;
End
//------------------------------------------------------------------------
// 编译版本: 2021/09/03 143827
// 版权所有 zt13861755006
// 更改声明 TradeBlazer Software保留对TradeBlazer平台
// 每一版本的TradeBlazer公式修改和重写的权利
//------------------------------------------------------------------------
|
|