开拓者期货期权程序化系统交易论坛
标题:
文华版的SAR指标的计算,请高手指点.
[打印本页]
作者:
yk787
时间:
2013-2-5 16:54:32
标题:
文华版的SAR指标的计算,请高手指点.
本帖最后由 yk787 于 2013-2-28 12:36 编辑
SAR指标的计算公式:
1、 画SAR之前,首先要决定你开始画的第一天,是属于多头或空头趋势?
2、 如果第一天属于多头,则第一天的SAR一定是4天来的最低点(包括今天在内)。
3、 找出开始第一天的SAR之后,紧接着计算下一日的SAR:
下一日的SAR=第一天SAR+(0•02*XP)
XP=第一天的最高点—第一天的SAR
4、 第二天收盘时,又可以计算出第三天的SAR,如果第二天最高价>第一天最高价,则第三天的SAR=第二天SAR+(0•04*XP)
XP=第二天的最高点—第二天的SAR
只要最高价>前一日最高价,则其乘数因子一律增加0•02,如果一直累增下去,最高只能累增至0•2为止,之后一律以0•2为乘数因子。
如果最高价≤前一日最高价,则第三天的SAR和第二天的SAR相同,而且乘数因子也不必累加。
第三天收盘后,依上述步骤持续在每日价格下方画出SAR,直到某一天收盘价跌破SAR,则代表行情转为空头应卖出股票,而行情转为空头的当天,立即将四天来的最高点,做为次一日的空头SAR。
5、 反转后第二天的最低点如果≥前一天的最低点,则SAR和前一天相同。
注意!SAR虽然和前一天相,也必须在图形上画出来。
6、 反转后第二天的最低点若<前一天的最低点,则
第三天的SAR=第二天的SAR+0•02*XK。
XK=第二天的最低价—第二天的SAR。
第三天以后持续依照上述步骤,在每日价格上方画出SAR,直到某一天收盘价向上突破SAR,代表行情为多头应买进股票,而行情转为多头的当天,立刻按照2的步骤设定SAR。
作者:
yk1234
时间:
2013-2-28 12:14:58
本帖最后由 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
作者:
yk787
时间:
2013-2-28 12:20:59
本帖最后由 yk787 于 2013-2-28 12:35 编辑
谢谢
作者:
lansong
时间:
2021-6-11 15:11:29
yk1234 发表于 2013-2-28 12:14
文华版的SAR
Params
这个转折的第一天不显示SAR值
欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/)
Powered by Discuz! X2