COCO研究院

 找回密碼
 註冊
搜索
查看: 29850|回復: 11

請教EMA及TEMA的指標寫法

[複製鏈接]
發表於 11-8-30 19:05 | 顯示全部樓層 |閱讀模式
板上各位大大晚安
我是剛入門學習程式交易的新手
在網路上看到EMA感覺比SMA還好很多
但無奈功力不足
跪求神人們指教在TS要寫個EMA和TEMA自設指標要怎麼寫呢?
非常感謝
發表於 11-8-30 19:16 | 顯示全部樓層
小弟剛去網路找了一下 參考看看哩
  1. input:FastDay(6),SlowDay(12);
  2. variable:EMA_F(0),EMA_S(0);
  3. EMA_F = EMA_F[1] * ((FastDay - 1) / FastDay) + close * ( 1 / FastDay);
  4. EMA_S = EMA_S[1] * ((SlowDay - 1) / SlowDay) + close * ( 1 / SlowDay);
複製代碼
回復 支持 1 反對 0

使用道具 舉報

發表於 11-8-30 19:18 | 顯示全部樓層
  1. /******************************************************************************************

  2. Description: This Indicator plots Exponential Moving Average (EMA) indicator

  3. Provided By: eSignal, a division of Interactive Data Corporation. Copyright  2002   

  4. ******************************************************************************************/

  5. function preMain() {

  6.     setPriceStudy(true);

  7. }



  8. var dLastMA = 0.0;

  9. var dThisMA = 0.0;

  10. var dPercent = 0.0;

  11. var dCount = 0;

  12. var bPrimed = false;





  13. function main(nInputLength) {

  14.     if(nInputLength == null)

  15.         nInputLength = 50;



  16.         var nBarState = getBarState();

  17.     var i;

  18.         var dValue;

  19.         var dSum = 0.0;



  20.         if(nBarState == BARSTATE_ALLBARS) {

  21.                 // reset!

  22.                 dPercent = (2.0 / (nInputLength + 1.0));

  23.                 dLastMA = 0.0;

  24.                 dThisMA = 0.0;

  25.                 dCount = 0;

  26.         }



  27.         if(nBarState == BARSTATE_NEWBAR) {

  28.                 dLastMA = dThisMA;

  29.         }

  30.         dThisMA = dLastMA;



  31.         if(bPrimed == false) {

  32.             dValue = getValue("Close", 0, -nInputLength);

  33.                 if(dValue == null)

  34.                         return;



  35.             for(i = 0; i < nInputLength; i++) {

  36.                     dSum += dValue[i];

  37.             }



  38.                 dLastMA = dSum / nInputLength;

  39.                 dThisMA = dLastMA;



  40.                 bPrimed = true;

  41.         } else {

  42.                 dValue = getValue("Close");

  43.                 if(dValue == null)

  44.                         return;



  45.                 dThisMA = (dValue - dLastMA) * dPercent + dLastMA;

  46.         }





  47.         return dThisMA;



  48. }
複製代碼

評分

參與人數 1金錢 +1 收起 理由
jason + 1

查看全部評分

發表於 11-8-30 19:30 | 顯示全部樓層
寬哥真的太熱心了, AB, TS都拿手
發表於 11-8-30 19:31 | 顯示全部樓層
寬哥真的太熱心了, AB, TS都拿手
bacardi 發表於 11-8-30 07:30 PM



   網路找到 XD
   因為 元大MC 今天開通了

   要來 K 一下哩
 樓主| 發表於 11-8-31 16:53 | 顯示全部樓層
寬哥
太感謝您了
請受小第一拜
 樓主| 發表於 11-8-31 17:34 | 顯示全部樓層
寬哥
小弟去看函數裡面Xaverage的算法
Factor = 2 / (Length + 1)
XAverage = Price*Factor +XAverage[1]*(1 - Factor)

好像就是EMA的計算公式
EMA=Price*(2/N+1)+EMA[1]*( 1-(2/N+1))
發表於 11-8-31 19:28 | 顯示全部樓層
大大客氣了,小弟只是上網找語法啦

我應該是沒幫上忙 XD
發表於 11-9-5 18:21 | 顯示全部樓層
本帖最後由 cxwh 於 11-9-5 06:22 PM 編輯

看看这个是不是你要的效果!

  1. Inputs: Price1(Numeric), Length(Numeric);
  2. Variables: Factor(0),EMAA(0);

  3. If CurrentBar = 1 Then
  4. EMAA = Price1
  5. Else If CurrentBar <= Length -1 Then begin
  6. Factor = 2 / (CurrentBar + 1);
  7. EMAA = Price1 * Factor + (1 - Factor) * EMA[1];
  8. end
  9. Else begin
  10. Factor = 2 / (Length + 1);
  11. EMAA = Factor * Price1 + (1 - Factor) * EMA[1];
  12. End ;

  13. EMA=EMAA;
複製代碼
發表於 11-9-5 18:27 | 顯示全部樓層
TEMA:


  1. Inputs:
  2.   Length(14);
  3. Vars:
  4. EMAValue(0),
  5. DbEMAValue(0);
  6. EMAValue = XAverage(Close,Length);
  7. DbEMAValue = XAverage(EMAValue,Length);
  8. plot1(3*EMAValue -  3*DbEMAValue+ XAverage(DbEMAValue,Length),"TEMA");
複製代碼
發表於 12-7-8 11:53 | 顯示全部樓層
感謝分享程式碼
也許用TEMA的上升 或 下降 當作當前趨勢的確認也不錯
發表於 12-9-22 11:26 | 顯示全部樓層
TEMAL1=(3*xaverage(close,L1)) - (3 * xaverage(xaverage(close,L1),L1)) +  (xaverage(xaverage(xaverage(close,L1),L1),L1));

以上是從multicharts國外網站抓下來的
程式碼更精簡了
只要設定L1就可以了
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

手機版|Archiver|站長信箱|廣告洽詢|COCO研究院

GMT+8, 24-11-20 09:17

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回復 返回頂部 返回列表
理財討論網站 |