求助帖:用了循環語句,應用之后發生死機 [開拓者 TB]
- 咨詢內容:
本帖最后由 ly_w1989 于 2016-3-9 23:51 編輯
TBL新手一枚,想寫一個MACD指標面積公式,實際寫的過程中發生死機現象 - TB技術人員:
MACD的面積公式的實際目標樣子如圖所示,這是我在通達信上實現后的樣子
這是我寫的半成品,沒想到應用時直接發生了死機
- TB客服:
本帖最后由 ly_w1989 于 2016-3-9 23:48 編輯
- Params
- Numeric M1(12);
- Numeric M2(26);
- Numeric M3(9);
- Vars
- NumericSeries MACD;
- NumericSeries DIF;
- NumericSeries DEA;
- NumericSeries AREA;
- Numeric NUM;
- String STR;
- Begin
- DIF = EMA( Close, M1 ) - EMA( Close, M2 ) ;
- DEA = EMA(DIF,M3);
- MACD = (DIF-DEA)*2;
- PlotNumeric("DIF",DIF);
- PlotNumeric("DEA",DEA);
- If (MACD >= 0)
- PlotNumeric("MACD",MACD,0,Red);
- Else
- PlotNumeric("MACD",MACD,0,Green);
- PlotNumeric("零線",0);
- AREA=0;
- NUM=1;
- If(MACD[0]<=0 And MACD[1]>0)
- {
- While(MACD[NUM]>0)
- {
- AREA=AREA+MACD[NUM];
- NUM=NUM+1;
- }
- }
- STR=Text(AREA);
- PlotString ("面積",STR,MACD*1.3,Green);
- End
- Params
- 網友回復:
本帖最后由 ly_w1989 于 2016-3-9 23:59 編輯
上述代碼用到了自定義函數EMA用法,參考的是同花順和通達信的函數設定
前面22行代碼是描述MACD公式的,經過測試沒問題,后面是開始計算MACD面積的,用到了循環判斷,編譯時沒問題,但一旦加載就會死機- //------------------------------------------------------------------------
- // 簡稱: EMA
- // 名稱: 平滑移動平均
- // 類別: 用戶函數
- // 類型: 用戶函數
- // 輸出: 數值型
- //------------------------------------------------------------------------
- Params
- Numeric X;
- Numeric N;
- Vars
- NumericSeries Num;
- Begin
- Num = (2*X+(N-1)*NUM[1])/(N+1);
- Return Num;
- End
- //------------------------------------------------------------------------
- 網友回復:
已經想了很久了,也切換了別的寫法試過,但還是不行,希望大家幫幫我,拜托了
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容