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

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- [問題]SMA函數可以每日開盤後起算嗎? (http://www.chiefox.com.tw/bbs/showthread.php?threadid=24006)


由 Markchu7 在 2024-07-03 11:20 發表:

[問題]SMA函數可以每日開盤後起算嗎?

記得總版主曾嘉惠狐友,寫過EMA每日開盤後起算的公式!
請問SMA也可以嗎?
自己有嘗試用以下的笨方法寫!但是不行!可否請總版主出手協助?

///笨方法///
FK:=BARPOS=1 or ref(time,1)<084500 and time>=084500;
DBCK:=if(datatype=0 or datatype=12, FK, TradeDate<>REF(TradeDate,1) or IsRegularFBar);
CKSP:=BARSLAST(DBCK)+1,LINETHICK;

XC:=(O+H+L+C*3)/6;
///原始的二條///
XCU0K_0:=SMA(XC,7,1),COLORFF00FF;
XCU0D_0:=SMA(SMA(SMA(XC,6,1),5,1),3,1),COLOR00FF00;

///以下為自行嘗試後失敗的公式///
XCU0K:IF(CKSP=1,XC,IF(CKSP=2,SMA(XC,2,1),IF(CKSP=3,SMA(XC,3,1),IF(CKSP=4,SMA(XC,4,1),IF(CKSP=5,SMA(XC,5,1),IF(CKSP=6,SMA(XC,6,1),SMA(XC,7,1))))))),COLORRED;
XCU0D_1:=IF(CKSP=1,XC,IF(CKSP=2,SMA(XC,2,1),IF(CKSP=3,SMA(XC,3,1),IF(CKSP=4,SMA(XC,4,1),IF(CKSP=5,SMA(XC,5,1),SMA(XC,6,1)))))),COLOR000000;
XCU0D_2:=IF(CKSP=1,XCU0D_1,IF(CKSP=2,SMA(XCU0D_1,2,1),IF(CKSP=3,SMA(XCU0D_1,3,1),IF(CKSP=4,SMA(XCU0D_1,4,1),SMA(XCU0D_1,5,1))))),COLORAAAAAA;
XCU0D:IF(CKSP=1,XCU0D_2,IF(CKSP=2,SMA(XCU0D_2,2,1),SMA(XCU0D_2,3,1))),COLORBLUE;

請協助,感謝!


由 cgjj 在 2024-07-04 09:09 發表:

回覆: [問題]SMA函數可以每日開盤後起算嗎?

引用:
最初由 Markchu7 發表
記得總版主曾嘉惠狐友,寫過EMA每日開盤後起算的公式!
請問SMA也可以嗎?
自己有嘗試用以下的笨方法寫!但是不行!可否請總版主出手協助?

///笨方法///
FK:=BARPOS=1 or ref(time,1)<084500 and time>=084500;
DBCK:=if(datatype=0 or datatype=12, FK, TradeDate<>REF(TradeDate,1) or IsRegularFBar);
CKSP:=BARSLAST(DBCK)+1,LINETHICK;

XC:=(O+H+L+C*3)/6;
///原始的二條///
XCU0K_0:=SMA(XC,7,1),COLORFF00FF;
XCU0D_0:=SMA(SMA(SMA(XC,6,1),5,1),3,1),COLOR00FF00;

///以下為自行嘗試後失敗的公式///
XCU0K:IF(CKSP=1,XC,IF(CKSP=2,SMA(XC,2,1),IF(CKSP=3,SMA(XC,3,1),IF(CKSP=4,SMA(XC,4,1),IF(CKSP=5,SMA(XC,5,1),IF(CKSP=6,SMA(XC,6,1),SMA(XC,7,1))))))),COLORRED;
XCU0D_1:=IF(CKSP=1,XC,IF(CKSP=2,SMA(XC,2,1),IF(CKSP=3,SMA(XC,3,1),IF(CKSP=4,SMA(XC,4,1),IF(CKSP=5,SMA(XC,5,1),SMA(XC,6,1)))))),COLOR000000;
XCU0D_2:=IF(CKSP=1,XCU0D_1,IF(CKSP=2,SMA(XCU0D_1,2,1),IF(CKSP=3,SMA(XCU0D_1,3,1),IF(CKSP=4,SMA(XCU0D_1,4,1),SMA(XCU0D_1,5,1))))),COLORAAAAAA;
XCU0D:IF(CKSP=1,XCU0D_2,IF(CKSP=2,SMA(XCU0D_2,2,1),SMA(XCU0D_2,3,1))),COLORBLUE;

請協助,感謝!



以 SMA(Close,5,2) 為例,換盤重新起算方法如下:
原碼:
X:=C; N:=5; M:=2; Y:X*0; SWCK:=barpos=1 or Tradedate<>ref(Tradedate,1) or IsRegularFBar; for i=1 to datacount do begin if SWCK[i]=1 then Y[i]:=X[i]; if SWCK[i]=0 then Y[i]:=(M*X[i]+(N-M)*Y[I-1])/N; end;


由 Markchu7 在 2024-07-04 18:29 發表:

感謝協助!


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


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

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