新写开拓者 TB 1分钟图形下计算60分钟WR的程序[开拓者公式]
- 因为编写的策略需要用到跨周期,最近研究了论坛里面的跨周期内容集中贴里面的内容,编写了这个WR的跨周期程序。可是刚刚接触TB没多久,不知道编写有无纰漏,所以贴出来请大家指正,谢了。
1、首先使用了管理员nopain大虾提供的用户函数TransMinsData
Params
NumericSeries Price(1);
Numeric nMinSet(5);
Numeric MinsAgo(2);
Vars
NumericSeries barCnt;
NumericSeries MinData;
Numeric i;
Numeric j;
Numeric nIndex(0);
Begin
If(IntPart(Minute%nMinSet)==0)
{
barCnt = 1;
}Else
{
barCnt = barCnt[1] + 1;
}
MinData = Price;
If(MinsAgo == 0)
{
return MinData;
}Else
{
For i = 1 To MinsAgo
{
If( i == 1)
{
j = 0;
}Else
{
j = j + BarCnt[j];
}
If (j > CurrentBar ) Return InvalidNumeric;
nIndex = nIndex + BarCnt[j];
}
Return MinData[nIndex];
}
End
2、1分钟图形下计算60分钟WR的程序
新建技术指标,命名为My60minsWR,代码如下:
Params
Numeric Length(5);
Vars
Numeric Divisor;
Numeric PRValue;
Numeric HighestValue;
Numeric i;
Numeric LowestValue;
NumericSeries MyHigh;
NumericSeries MyLow;
NumericSeries MyClose;
Begin
MyHigh = DataConvert(High,"min",60,"High");
MyLow = DataConvert(Low,"min",60,"Low");
MyClose = DataConvert(Close,"min",60,"Close");
HighestValue = MyHigh;
LowestValue = MyLow;
For i = Length-1 DownTo 0
{
If(TransMinsData(MyHigh,60,i) > HighestValue)
HighestValue = TransMinsData(MyHigh,60,i);
}
For i = Length-1 DownTo 0
{
If(TransMinsData(MyLow,60,i) < LowestValue)
LowestValue = TransMinsData(MyLow,60,i);
}
Divisor =HighestValue - LowestValue;
If (Divisor <> 0 )
PRValue = (MyClose - HighestValue)/Divisor * 100;
else
PRValue = Divisor;
PlotNumeric("WR",PRValue);
End
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 262069696 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容