 |
Markchu7
資深會員
註冊日期: Nov 2007
來 自:
文章數量: 1496 |
[問題]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;
請協助,感謝!
|
|
向版主報告此篇 |  |
|
2024-07-03 11:20 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18091 |
回覆: [問題]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;
|
|
向版主報告此篇 |  |
|
2024-07-04 09:09 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|