以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  自定义函数  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=187920)

--  作者:llz1124
--  发布时间:2021/4/19 10:32:45
--  自定义函数

麻烦老师转换为金字塔自定义函数 XMA(X,N)

//MA是把结果放到计算当天。而XMA把这个值放到向前数第(N+1)/2的位置上

通达信XMA函数C++源码

认真分析了一下通达信各种平滑处理函数实现的机理,进行了相应的c++编程和测试,结果完全吻合。现将XMA函数C++源代码分享给大家。
函数根据通达信dll插件调用格式编写.

//参数说明:
//DataLen:输入数据的长度
//pfOUT:输出数据
//pfINa:输入数据C
//pfINb:输入参数

void XMA(int DataLen, float*pfOUT, float*pfINa, float*pfINb)
{
        int N = int(*pfINb);
        int p = int((N - 1) / 2);
        float sum = 0;
        float count = 0;

        for (int i = 0; i < DataLen; i++)
        {
            int start = i - p-1;
            int end = i + (N-p)-1;
            for (int j = start; j < end; j++)
            {
                if (j >= 0&&j<DataLen) {
                    sum += pfINa[j];
                    count += 1;
                }
            }
            pfOUT = sum / count;
            sum = 0;
            count = 0;
        }
}


--  作者:无为剑
--  发布时间:2021/4/19 15:16:25
--  
请问这个函数有什么具体的优点呢?如果是有价值的我们会考虑增加到内部函数中
--  作者:llz1124
--  发布时间:2021/4/19 17:11:16
--  
xma对做趋势判断有一定的意义。对原来使用通达信大的用户增加这个函数有很大的帮组。引用别人的说法:

A和XMA的一部分算法一样。比如:

MA(C,N)=(REF(C,N-1)+--REF(C,N-2)+REF(C,N=1)+C)/N

XMA(C,N)=(REF(C,N-1)+--REF(C,N-2)+REF(C,N=1)+C)/N

这两个函数的这个值算法相同。不同的是这个值放到什么位置上。

MA是把这个值放到计算当天。而XMA把这个值放到向前数第(N+1)/2的位置上。所以从这个角度看,XMA更符合平均值的计算原理,把平均值赋给中间数才是合理的。MA虽然使数值固定不变,但对原理来讲并不合理。

这个函数属于未来函数,金字塔内的未来函数不能写进交易策略。 如果金字塔将这个函数增加到内部函数中 ,希望可以在交易策略中使用,在编译公式 时做一个有未来函数提醒就好了。


--  作者:llz1124
--  发布时间:2021/4/20 16:04:24
--  
老师,能不能帮忙写一个自定义函数?
--  作者:yukizzc
--  发布时间:2021/4/21 9:26:48
--  
input_num:=11;
num:=if(mod(input_num,2),input_num,input_num+1);
tt:=refx(ma(c,11),(num-1)/2);
if barpos<=datacount-(num-1)/2 then temp:=tt;
tt2:=sum(c,1+(num-1)/2)+((num-1)/2)*ref(ma(c,(num-1)/2),1);
if barpos>datacount-(num-1)/2 then temp:=tt2/num;
xma:temp;
mma:ma(c,11);
//if cross(c,xma) then buy(1,1,marketr)

你看下这个xma,input_num就是周期参数自己填入

--  作者:llz1124
--  发布时间:2021/4/21 15:05:24
--  
tt2赋值好像不对
--  作者:yukizzc
--  发布时间:2021/4/21 15:06:24
--  
后期会增加这个函数的,回头等封装好函数吧