跨周期问题 - TradeBlazer公式 [开拓者 TB]
- 咨询内容:
能不能写一个15分钟跨周期取30分钟和60分钟MA的例子?老大写的几个我都看了,实在是不知道要怎么写
- TB技术人员:
老大?????
这个是TransMinsData30
- TB客服:
本帖最后由 01011012 于 2011-10-19 14:20 编辑
Params
NumericSeries Price(1);
Numeric nMinSet(30);
Numeric MinsAgo(0);
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 - 网友回复:
//------------------------------------------------------------------------
// 简称: TransMinsData
// 名称: 1小时内跨周期
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
//参数1:要计算的数据源。参数2:想按N分钟来处理,本例是5分钟,不能大于60。参数3:希望取多少个N分钟前的数据
//------------------------------------------------------------------------
Params
NumericSeries Price(1);
Numeric nMinSet(60);
Numeric MinsAgo(0);
Vars
NumericSeries barCnt;
NumericSeries MinData;
Numeric i;
Numeric j;
Numeric nIndex(0);
Begin
If(IntPart((Hour*60+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
//------------------------------------------------------------------------
// 编译版本 - 网友回复:
Params
Numeric Length(55);
Vars
NumericSeries MyClose30;
NumericSeries MyClose60;
NumericSeries MA15;
NumericSeries MA30;
NumericSeries MA60;
Numeric SumValue30(0);
Numeric SumValue60(0);
Numeric Value30;
Numeric Value60;
Numeric i;
Begin
MyClose30 = DataConvert(Close,"min",30,"Close");
MyClose60 = DataConvert(Close,"min",60,"Close");
For i = Length-1 DownTo 0
{
Value30 = TransMinsData30(MyClose30,30,i);
Value60 = TransMinsData(MyClose60,60,i);
SumValue30 = SumValue30 + Value30;
SumValue60 = SumValue60 + Value60;
}
ma60=SumValue60/Length;
ma30=SumValue30/Length;
ma15=AverageFC(Close,Length);
PlotNumeric("my30",ma30);
PlotNumeric("ma15",ma15);
PlotNumeric("MA60",MA60);
End
如果以上指标公式不适用于您常用的行情软件
或者您想改编成选股公式,以便快速选出某种形态个股的话,
- 上一篇:V4版的无效值传递机制的问题 - TradeBlaz…
- 下一篇:没有了!
相关文章
-
没有相关内容