- 精华
- 1
- 在线时间
- 328 小时
- UID
- 387
- 积分
- 2724
- 帖子
- 167
- 阅读权限
- 80
- 注册时间
- 2007-9-21
- 最后登录
- 2020-2-24
- 精华
- 1
- UID
- 387
- 积分
- 2724
- 帖子
- 167
- 主题
- 33
- 阅读权限
- 80
- 注册时间
- 2007-9-21
- 最后登录
- 2020-2-24
|
本帖最后由 yk1234 于 2013-3-6 16:00 编辑
文华版的SAR
Params
Numeric AfStep(1.50);
Numeric AfLimit(2);
Numeric Length(20);
Vars
Numericseries Mysar;
NumericSeries Mysar1;
NumericSeries Mysar2;
NumericSeries HH;
NumericSeries LL;
NumericSeries MaxH;
NumericSeries MinL;
Numeric Xp;
Numeric Xk;
Numeric J;
Begin
HH = HighestFC(H,Length);
LL = LowestFC(L,Length);
If(CurrentBar< Length+1)
{
Mysar = 0.5*(L+H);
Mysar1 = 0;
Mysar2 = 88888;
MaxH = HH;
MinL = LL;
}Else
If(CurrentBar == Length+1)
{
If(H<MaxH)
{
MaxH = Max(HH,MaxH[1]);
MinL = Min(LL,MinL[1]);
Mysar = MaxH;
Mysar1 = MaxH;
Mysar2 = 88888;
SetGlobalVar(0,CurrentBar);
}Else
{
MaxH = Max(HH,MaxH[1]);
MinL = Min(LL,MinL[1]);
Mysar = MinL;
Mysar1 = 0;
Mysar2 = MinL;
SetGlobalVar(0,CurrentBar);
}
}Else
If(CurrentBar > Length+1)
{
J = CurrentBar - GetGlobalVar(0);
If(J == 0)
{
If(Mysar1 > 0)
{
MaxH = Max(H,MaxH[1]);
MinL = Min(L,MinL[1]);
Mysar = MaxH;
Mysar1 = MaxH;
Mysar2 = 88888;
}Else
If(Mysar2<88888)
{
MaxH = Max(H,MaxH[1]);
MinL = Min(L,MinL[1]);
Mysar = MinL;
Mysar1 = 0;
Mysar2 = MinL;
}
}Else
If( J>0 )
{
If(H[1] <= Mysar1[1])
{
Xp = L[1] - Mysar1[1];
If(J<11)
{
Mysar1 = Mysar1[1]+AfStep*j*XP/100;
MaxH = Min(H,MaxH[1]);
MinL = Min(L,MinL[1]);
Mysar2 = 88888;
If(H > Mysar1)
{
SetGlobalVar(0,CurrentBar); //满足条件的Bar索引号//
MaxH = Max(H,MaxH[1]);
MinL = Min(L,MinL[1]);
Mysar1 = 0;
Mysar2 = MinL;
Return;
}
}Else
{
Mysar1 = Mysar1[1]+AfLimit*XP/10;
MaxH = Min(H,MaxH[1]);
MinL = Min(L,MinL[1]);
Mysar2 = 88888;
If(H > Mysar1)
{
SetGlobalVar(0,CurrentBar); //满足条件的Bar索引号//
MaxH = Max(H,MaxH[1]);
MinL = Min(L,MinL[1]);
Mysar1 = 0;
Mysar2 = MinL;
Return;
}
}
}Else
If(Low[1] >= Mysar2[1])
{
Xk =High[1] - Mysar2[1];
If(J<11)
{
Mysar2 = Mysar2[1]+AfStep*j*Xk/100;
MaxH = Max(H,MaxH[1]);
MinL = Max(L,MinL[1]);
Mysar1 = 0;
If(Low < Mysar2)
{
SetGlobalVar(0,CurrentBar); //满足条件的Bar索引号//
MaxH = Max(H,MaxH[1]);
MinL = Max(L,MinL[1]);
Mysar1 = MaxH;
Mysar2 = 88888;
Return;
}
}Else
{
Mysar2 = Mysar2[1]+AfLimit*Xk/10;
MinL = Max(L,MinL[1]);
MaxH = Max(H,MaxH[1]);
Mysar1 = 0;
If(Low < Mysar2)
{
SetGlobalVar(0,CurrentBar); //满足条件的Bar索引号//
MaxH = Max(H,MaxH[1]);
MinL = Max(L,MinL[1]);
Mysar1 = MaxH;
Mysar2 = 88888;
Return;
}
}
}
If(Mysar1 > 0)
{
Mysar = Mysar1;
}Else
If(Mysar2<88888)
{
Mysar = Mysar2;
}
}
}
PlotNumeric( "1" , Mysar) ;
End |
|