henryjin 发表于 2011-2-5 19:22

有没有Expma达人?expma和均线到底有什么区别?

有达人能指点迷津么?谢谢!

wdamtb 发表于 2011-2-5 19:41

搜百度知道吧!

股民阿甘 发表于 2011-2-5 20:05

过年了,给你发一下,我在公式中是如何计算实现ma,ema,sma三者的,结果与软件中显示的一样,见下面:

股民阿甘 发表于 2011-2-5 20:05

/////////////////////////////////////////////////////////////////////////////////////////
//jaofunc.c:飞狐交易师"C语言接口"公用函数内容文件1->程序体部分
/////////////////////////////////////////////////////////////////////////////////////////

//========================================================================================================================
//jf_llv: 计算简单移动最小值(数组,起始,结束,周期,结果)
//      Y=MIN(X,N)=MIN(X1+X2+...+Xn),N>0
int jf_llv(const float* x,int b,int e,int n,float* y)
{
for(int i=b; i<=e; i++)
{
    int j=i-1; float r=x; int s=1;
    while(j>=b)
    {
      s++;
      if(s<=n){ if(x<r) r=x; } else break;
      j=j-1;
    }
    y=r;
}
return 1;
}
//========================================================================================================================
//jf_hhv: 计算简单移动最大值(数组,起始,结束,周期,结果)
//      Y=MAX(X,N)=MAX(X1+X2+...+Xn),N>0
int jf_hhv(const float* x,int b,int e,int n,float* y)
{
for(int i=b; i<=e; i++)
{
    int j=i-1; float r=x; int s=1;
    while(j>=b)
    {
      s++;
      if(s<=n){ if(x>r) r=x; } else break;
      j=j-1;
    }
    y=r;
}
return 1;
}
//========================================================================================================================
//jf_ma: 计算简单移动平均值(数组,起始,结束,周期,结果)
//       Y=MA(X,N)=(X1+X2+...+Xn)/N,N>0
int jf_ma(const float* x,int b,int e,int n,float* y)
{
float r=0.00; int s=0;
for(int i=b; i<=e; i++)
{
    r=r+x;
    if(s<n) s++; else r=r-x;
    y=r/s;
}
return 1;
}
//========================================================================================================================
//jf_sma: 计算加权移动平均值(数组,起始,结束,周期,权重,结果)
//Y=SMA(X,N,M)=(M*X+(N-M)*Y')/N, N>0,N>M,Y'=Yi-1,Y0=X
int jf_sma(const float* x,int b,int e,int n,int m,float* y)
{
y=x; int z=n-m;
for(int i=b+1; i<=e; i++)
{
    y=(m*x+z*y)/n;
}
return 1;
}
//========================================================================================================================
//jf_ema: 计算平滑移动平均值(数组,起始,结束,周期,结果)
//Y=EMA(X,N)=/(N+1), N>0,Y'=Yi-1,Y0=X
int jf_ema(const float* x,int b,int e,int n,float* y)
{
y=x; int z1=n-1,z2=n+1;
for(int i=b+1; i<=e; i++)
{
    y=(2*x+z1*y)/z2;
}
return 1;
}

//=======================================================================================
//jf_logic: 逻辑运算子程序
//(a & b | c) | (e & d | f),代码:"&"=2 "|"=3 "!"=4 "("=5 ")"=6
int jf_logic(ID* pId,int s)//s: 1.主逻辑调用,0/非1.非逻辑调用
{
//-------------------------------------------------------------------------------------
//处理:变量声明
ID* pIe=pId; if(((int)pIe)==0) return 0;//当前链接指针
ID* pIr; ID* pIt;                     //前后链接指针
int r=0;                              //计算结果清零
int o=0;                              //操作符清零
int f=0;                              //递归调用及返回标志清零

//-------------------------------------------------------------------------------------
//处理:逻辑与或非
pIe=pId;
while(1)//循环:处理逻辑与或,每处理一次释放当前内存
{
        pIr=(ID*)pIe->pIr; pIt=(ID*)pIe->pIt;//前后链接指针

        switch(pIe->iDt)//当前数据
        {
          case 0://"0"
          case 1://"1"
          {
                switch(o)
          {
                  case 0:{r=pIe->iDt;   break;}//" "
                  case 3:{r=r & pIe->iDt; break;}//"&"
                  case 4:{r=r | pIe->iDt; break;}//"|"
                  default:{}
                }
                break;
          }
          case 2:
          {
          switch(o)
          {
              case 0:{r=    !jf_logic(pIt,0); break;}//" "
              case 3:{r=r & !jf_logic(pIt,0); break;}//"&"
              case 4:{r=r | !jf_logic(pIt,0); break;}//"|"
              default:{}
          }
                pIt=pIe->pIt; break;//更新向后链接
          }
          case 3:{o=3; break;}//"&"
          case 4:{o=4; break;}//"|"
          case 5://"("
          {
          switch(o)
          {
              case 0:{r=    jf_logic(pIt,1); break;}//" "
              case 3:{r=r & jf_logic(pIt,1); break;}//"&"
              case 4:{r=r | jf_logic(pIt,1); break;}//"|"
              default:{}
          }
                pIt=pIe->pIt; break;//更新向后链接
          }
          case 6:{f=1; break;}//")"
          default:{}
        }
        if(((int)pIr)>0) pIr->pIt=pIt;       //调整前链接
        if(((int)pIt)>0) pIt->pIr=pIr;       //调整后链接
        free(pIe);                           //释放本链接
        if((s!=1) | f) break;                //调试返回处理
        if(((int)pIt)>0) pIe=pIt; else break;//后有内容则向后跳转,否则结束

ID被锁 发表于 2011-2-5 20:06

原帖由 股民阿甘 于 2011-2-5 20:05 发表 http://bbs.macd.cn/static/image/common/back.gif
过年了,给你发一下,我在公式中是如何计算实现ma,ema,sma三者的,结果与软件中显示的一样,见下面:
好久不见阿甘斑竹

股民阿甘 发表于 2011-2-5 20:07

复制多了,筛选一下,重发,下面这个是MA:

股民阿甘 发表于 2011-2-5 20:07

//========================================================================================================================
//jf_ma: 计算简单移动平均值(数组,起始,结束,周期,结果)
//       Y=MA(X,N)=(X1+X2+...+Xn)/N,N>0
int jf_ma(const float* x,int b,int e,int n,float* y)
{
float r=0.00; int s=0;
for(int i=b; i<=e; i++)
{
    r=r+x;
    if(s<n) s++; else r=r-x;
    y=r/s;
}
return 1;
}

股民阿甘 发表于 2011-2-5 20:07

下面这个是EMA:

股民阿甘 发表于 2011-2-5 20:08

//========================================================================================================================
//jf_ema: 计算平滑移动平均值(数组,起始,结束,周期,结果)
//Y=EMA(X,N)=/(N+1), N>0,Y'=Yi-1,Y0=X
int jf_ema(const float* x,int b,int e,int n,float* y)
{
y=x; int z1=n-1,z2=n+1;
for(int i=b+1; i<=e; i++)
{
    y=(2*x+z1*y)/z2;
}
return 1;
}

股民阿甘 发表于 2011-2-5 20:08

已经很清楚了吧,呵呵,别跟我说看不懂啊,这已经是最简单的表达了。

股民阿甘 发表于 2011-2-5 20:10

原帖由 ID被锁 于 2011-2-5 20:06 发表 http://bbs.macd.cn/static/image/common/back.gif

好久不见阿甘斑竹
你好,前两年出国了,现在有时间在研究交易系统。

ID被锁 发表于 2011-2-5 20:13

什么系统交易?让兄弟们也学习学习

股民阿甘 发表于 2011-2-5 20:16

交易系统简单说列一表,说明一下吧,可能对指路有作用,看下面:不清楚的可以问我,现在。

股民阿甘 发表于 2011-2-5 20:17

我的系统代码说明:第一级代码
//--------------------
// *.交易系统代码 | *.
//----------------+---
// J.核心公式系统 | A.
// Q.执行公式系统 | B.
// M.资金评测系统 | C.
// R.雷达监控系统 | D.
// A.自动交易系统 | E.

股民阿甘 发表于 2011-2-5 20:19

二三级代码:
-------------------------------------------------------
| *.交易系统类别               | *.交易系统波长   |
+--------------------------------+--------------------+
| A.抄底交易系统-+      -+无-+   | O.趋势交易系统-+   |
| B.过度交易系统-|-+   |触 |   | P.波段交易系统 |-+ |
| C.追涨交易系统-|-|-+-+发 |无 | Q.震荡交易系统-+ | |
| D.选底交易系统-+ | |-+-+   |管 | R.复合交易系统-+ | |
| E.选择交易系统---+-+ | |   |理 |                | | |
| F.全时交易系统#+-----+ |有 |   |                | | |
| G.选涨交易系统*+---+ | |触-+   |                | | |
| H.分级交易系统-+   |-+ |发-+有 |-+--------------|-+ |
| I.日内交易系统-+   |   |   |管 |-+            |   |
| J.分仓交易系统---+-+-+   |理 |-+--------------+   |
| K.分步交易系统---+      -+   |-+                  |
| .                              |                  |
| .                              |                  |
| .                              |                  |

股民阿甘 发表于 2011-2-5 20:21

四五级代码:

-----------------------------------------------------
| *.交易系统方向 | *.交易系统版本
-+----------------+---------------------------------------------------------
| 1.多头单向系统 | 1.K 线形态交易系统:不使用任何指标
| 2.空头单向系统 | 2.KDJ 指标交易系统:
| 3.多头双向系统 | 3.MACD指标交易系统:
| 4.空头双向系统 | 4.VOL 指标交易系统:
| 5.多空双向系统 | 5.综合指标交易系统:综合使用三种指标
|                | 6.综合指标交易系统(熊市特别版):
|                | 7.神经网络交易系统:使用人工智能及模糊识别
|                | 8.微观识别交易系统:完善大型数据库存储过程
|                | 9.混沌理论交易系统:探索中...
|                | A.易经六爻交易系统:四柱干支世应用神进退体系
|                | B.奇门遁甲交易系统:奇门置润符使八罡克应体系
|                | C.太乙神术交易系统:探索中...
|                | D.成本分析交易系统:探索中...
|                | E.财务分析交易系统:探索中...
|                | F.综合分析交易系统:探索中...

股民阿甘 发表于 2011-2-5 20:22

在我这里是整齐的表格,发出来就乱了,没办法,其中各项间含有充分且必要的逻辑关系在内代表着交易设计的思路。

股民阿甘 发表于 2011-2-5 20:24

工作量太大,现在业余时间都用在设计试验交易系统上了,呵呵,学无止境啊。

小马克 发表于 2011-2-5 20:34

阿甘,这个系统看上去有点复杂啊,赚钱么?用起来简单么?

股民阿甘 发表于 2011-2-5 20:44

每一个都是正反馈系统,五个代码各选一个,组合起来,都是一个交易系统,但一些较基础的系统在大盘避免不了大盘回调时的资金回撤问题。
页: [1] 2
查看完整版本: 有没有Expma达人?expma和均线到底有什么区别?