奇狐社區論壇
在這個頁面顯示本主題全部的 10 個文章

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 求救 如何保留每天無開盤跳空的當天均線 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=11422)


由 weihou0931 在 2009-04-19 00:15 發表:

求救 如何保留每天無開盤跳空的當天均線

無開盤跳空的當天均線

de:=date;
ck:=barslast(de=de[datacount])>=0;
CC:=C*CK;
MA(CC,10);


完全符合我想要的但隔天 以前的均線就會消失
請問我如何修改 才能保留 每天無開盤跳空的當天均線在主圖上
謝謝各位先進賜教


由 cgjj 在 2009-04-20 13:22 發表:

回覆: 求救 如何保留每天無開盤跳空的當天均線

引用:
最初由 weihou0931 發表
無開盤跳空的當天均線

de:=date;
ck:=barslast(de=de[datacount])>=0;
CC:=C*CK;
MA(CC,10);


完全符合我想要的但隔天 以前的均線就會消失
請問我如何修改 才能保留 每天無開盤跳空的當天均線在主圖上
謝謝各位先進賜教



sp:=barslast(date<>ref(date,1))+1;
NN:=if(sp>10,10,sp);
MA(c,NN);


由 weihou0931 在 2009-04-20 19:24 發表:



謝謝 試了MA 沒問題 但 我如改成用EMA 就無效 為何?


由 weihou0931 在 2009-04-20 19:47 發表:

修改成 EMA公式

sp:=barslast(date<>ref(date,1))+1;
NN:=if(sp>10,10,sp);
B:EMA(c,NN);

卻顯示 B:EMA(C,NN); 該行 ”操作數類型錯誤”

請問應如何修改

謝謝


由 cgjj 在 2009-04-21 08:38 發表:

引用:
最初由 weihou0931 發表
修改成 EMA公式

sp:=barslast(date<>ref(date,1))+1;
NN:=if(sp>10,10,sp);
B:EMA(c,NN);

卻顯示 B:EMA(C,NN); 該行 ”操作數類型錯誤”

請問應如何修改

謝謝



EMA 的算法與 MA 差很多
其有取用前一個週期的值
故您那 EMA 之式子 NN 不能為數列
兩者計算和運用的特性不同


由 weihou0931 在 2009-04-21 18:55 發表:

希望保留每天的無開盤跳空的當天 EMA均線

希望保留每天的無開盤跳空的當天 EMA均線

de:=date;
ck:=barslast(de=de[datacount])>=0;
CC:=C*CK;
AA:EMA(CC,10);


完全符合我想要的但隔天 以前的 EMA均線就會消失
請問我如何修改 才能保留 每天無開盤跳空的當天EMA均線在主圖上
謝謝各位先進賜教


由 cgjj 在 2009-04-22 10:03 發表:

回覆: 希望保留每天的無開盤跳空的當天 EMA均線

引用:
最初由 weihou0931 發表
希望保留每天的無開盤跳空的當天 EMA均線

de:=date;
ck:=barslast(de=de[datacount])>=0;
CC:=C*CK;
AA:EMA(CC,10);


完全符合我想要的但隔天 以前的 EMA均線就會消失
請問我如何修改 才能保留 每天無開盤跳空的當天EMA均線在主圖上
謝謝各位先進賜教

原碼:

CC
:=C;
CK:=date<>ref(date,1) or barpos=1;
QEMA:C*0;
for 
i=lbound(CC)+1 to datacount do begin
  
if CK[ithen begin
    QEMA
[i]:=CC[i];
  
end else begin
    QEMA
[i]:=(2*CC[i]+(10-1)*QEMA[i-1])/(10+1);
  
end;
end;


由 weihou0931 在 2009-04-22 17:00 發表:

版主謝謝
此種EMA 均線 就是我所要的
但我想 要 5條 此種EMA均線
應如何寫此程式 參數為 10 20 30 60 120
我試著 複製 只改數字 但第二條就有錯了
CC1:=C;
CK1:=date<>ref(date,1) or barpos=1;
Q1:C*0;
for i1=lbound(CC1)+1 to datacount do begin
if CK1[i1] then begin
Q1[i1]:=CC1[i1];
end else begin
Q1[i1]:=(2*CC1[i1]+(10-1)*Q1[i1-1])/(10+1);
end;
end;

CC2:=C;
CK2:=date<>ref(date,1) or barpos=1;
Q2:C*0;
for i2=lbound(CC2)+1 to datacount do begin
if CK2[i2] then begin
Q2[i2]:=CC[i2];
end else begin
Q2[i2]:=(2*CC2[i2]+(20-1)*Q2[i20-1])/(20+1);
end;
end;

謝謝您的幫忙 非常感激


由 cgjj 在 2009-04-23 11:43 發表:

這兩行您再檢查一次, 當中有錯唷

Q2[i2]:=CC[i2];
Q2[i2]:=(2*CC2[i2]+(20-1)*Q2[i20-1])/(20+1);


由 weihou0931 在 2009-04-23 23:25 發表:

謝謝我已經找到錯誤
也解決我的問題了
非常好用
非常感謝您的協助


全部時間均為台灣時間, 現在時間為22:34
在這個頁面顯示本主題全部的 10 個文章


Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.