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

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 新上市股 Data 不足 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=13902)


由 tycoon868 在 2010-07-06 00:18 發表:

新上市股 Data 不足

請教版主:

由於我需要用到 MA240 以及 MA480

來做所有個股之績效評比

1.曾經看過精業系統
即使只有上市 120天
也可以跑出 MA240 以及 MA480
這要如何模擬出來呢?


2. 如果奇狐無法用公式寫出來
那可否像寶來點精靈一樣
DATA可以從興櫃市場就開始有K棒
 而不是只能從上市交易日開始?


謝謝 


由 cgjj 在 2010-07-06 15:24 發表:

回覆: 新上市股 Data 不足

引用:
最初由 tycoon868 發表
請教版主:

由於我需要用到 MA240 以及 MA480

來做所有個股之績效評比

1.曾經看過精業系統
即使只有上市 120天
也可以跑出 MA240 以及 MA480
這要如何模擬出來呢?

2. 如果奇狐無法用公式寫出來
那可否像寶來點精靈一樣
DATA可以從興櫃市場就開始有K棒
 而不是只能從上市交易日開始?

謝謝 



這要看算出來意義有多大囉
MA240 要 240 根K棒才能算出第一個有效數值

以收盤價MA240舉例, 當不足 240 根時:

有的可能, 以當前有多少根就以多少根算
例如:僅10根, 就以 MA10算(但名稱顯示是240)

有的則可能以首根的收盤價去向前延伸推算
例如:僅10根時, (首根收盤價*230+10根的收盤價)/240

看時會不會錯的不知其所以然(把錯誤看為對)
一般而言, 比較不會去看不足K棒的均線

上述這兩種算法您能接受嗎?
能否用?是否有意義? 就看您自己對它的見解嚕

奇狐並無提供興櫃市場資料, 故不會有該商品屬興櫃時段的數據


由 tycoon868 在 2010-07-06 15:55 發表:

感謝版大:

我相信精業系統以及金融家是這樣作的

*****有的則可能以首根的收盤價去向前延伸推算例如:僅10根時, (首根收盤價*230+10根的收盤價)/240*******


請您教我以下的語法:

1. 當遇到新上市股 DATA不足時
該公式可以判斷 上市至今已有多少
日K棒 不足 240 and 480 時 可以
照樣劃出 WMA 240 and WMA480

P.S. 請問 MA Vs EMA Vs WMA 作法是否相同?

雖然失真 但我真的需要

2. 日K 棒 data 已經超過 480 者

則讀取正常資料

謝謝您


由 cgjj 在 2010-07-06 21:16 發表:

引用:
最初由 tycoon868 發表
感謝版大:

我相信精業系統以及金融家是這樣作的

*****有的則可能以首根的收盤價去向前延伸推算例如:僅10根時, (首根收盤價*230+10根的收盤價)/240*******


請您教我以下的語法:

1. 當遇到新上市股 DATA不足時
該公式可以判斷 上市至今已有多少
日K棒 不足 240 and 480 時 可以
照樣劃出 WMA 240 and WMA480

P.S. 請問 MA Vs EMA Vs WMA 作法是否相同?

雖然失真 但我真的需要

2. 日K 棒 data 已經超過 480 者

則讀取正常資料

謝謝您



EMA, WMA 與 MA 的特性差很多唷
請先了解各自的算法後, 再提出您想的處理方式
謝謝!


由 tycoon868 在 2010-07-06 22:51 發表:

版主 Sorry:

之前只是好奇這樣的語法是否可以通用所有類型之 MA

**************我確定要用 WMA

我確定要用 WMA

我確定要用 WMA***************


請您教我以下的語法:

1. 當遇到新上市股 DATA不足時
該公式可以判斷 上市至今已有多少
日K棒 不足 240 and 480 時 可以
照樣劃出 WMA 240 and WMA480


數據不足雖然失真 但我真的需要

2. 日K 棒 data 已經超過 480 者

則讀取正常資料

謝謝您


由 cgjj 在 2010-07-07 09:02 發表:

引用:
最初由 tycoon868 發表
版主 Sorry:

之前只是好奇這樣的語法是否可以通用所有類型之 MA

**************我確定要用 WMA

我確定要用 WMA

我確定要用 WMA***************


請您教我以下的語法:

1. 當遇到新上市股 DATA不足時
該公式可以判斷 上市至今已有多少
日K棒 不足 240 and 480 時 可以
照樣劃出 WMA 240 and WMA480


數據不足雖然失真 但我真的需要

2. 日K 棒 data 已經超過 480 者

則讀取正常資料

謝謝您



這不是語法問題, 是算法問題
您先去了解 WMA 的算法(內建說明有)
再去想出不足K棒時處理的算法

算法要靠您自己去想唷
有了算法我們才能協助您語法


由 tycoon868 在 2010-07-12 23:49 發表:

再次請教 DATA 不足 之 補救方式

版主您好:
我有一個個股評分模式如下:
M1:=WMA(C,15),linethick2,colorgreen,precision2;
M2:=WMA(C,30),linethick0,colorff00ff,precision2;
MT:=WMA(C,90),linethick0,coloryellow,precision2;
M3:=WMA(C,120),linethick0,colorcc3399,precision2;
M4:=WMA(C,240),linethick0,colorred,precision2;
M5:=WMA(C,480),linethick0,color000099,precision2;
BULLWMA:=(C>M1)*0.5+(C>M2)*1+(C>MT)*2+(C>M3)*2+(C>M4)*1+(C>M5)*0.5;
BEARWMA:=(C<M1)*-0.5+(C<M2)*-1+(C<MT)*-2+(C<M3)*-2+(C<M4)*-1+(C<M5)*-0.5;
WS:=BULLWMA+BEARWMA; // 最高得分為7分

如何插入一段 公式 來滿足以下條件 :

1. 掛牌上市超過 480天者 === 就用以上的評分模式

2. 掛牌上市介於241~480天者 ==== 改用以下
BULLWMA:=(C>M1)*1+(C>M2)*1+(C>MT)*2+(C>M3)*2+(C>M4)*1;
BEARWMA:=(C<M1)*-1+(C<M2)*-1+(C<MT)*-2+(C<M3)*-2+(C<M4)*-1;
WS:=BULLWMA+BEARWMA; // 最高得分為7分

3. 掛牌上市介於121~240天者 ==== 改用以下
BULLWMA:=(C>M1)*1+(C>M2)*2+(C>MT)*2+(C>M3)*2;
BEARWMA:=(C<M1)*-1+(C<M2)*-2+(C<MT)*-2+(C<M3)*-2;
WS:=BULLWMA+BEARWMA; // 最高得分為7分

4. 掛牌上市介於91~120天者 ==== 改用以下
BULLWMA:=(C>M1)*2+(C>M2)*3+(C>MT)*2;
BEARWMA:=(C<M1)*-2+(C<M2)*-3+(C<MT)*-2;
WS:=BULLWMA+BEARWMA; // 最高得分為7分

5. 掛牌上市介於31~90天者 ==== 改用以下
BULLWMA:=(C>M1)*3+(C>M2)*4;
BEARWMA:=(C<M1)*-3+(C<M2)*-4;
WS:=BULLWMA+BEARWMA; // 最高得分為7分
可能有點煩瑣
真是麻煩您了
感謝您


由 cgjj 在 2010-07-13 09:27 發表:

回覆: 再次請教 DATA 不足 之 補救方式

引用:
最初由 tycoon868 發表
版主您好:
我有一個個股評分模式如下:
M1:=WMA(C,15),linethick2,colorgreen,precision2;
M2:=WMA(C,30),linethick0,colorff00ff,precision2;
MT:=WMA(C,90),linethick0,coloryellow,precision2;
M3:=WMA(C,120),linethick0,colorcc3399,precision2;
M4:=WMA(C,240),linethick0,colorred,precision2;
M5:=WMA(C,480),linethick0,color000099,precision2;
BULLWMA:=(C>M1)*0.5+(C>M2)*1+(C>MT)*2+(C>M3)*2+(C>M4)*1+(C>M5)*0.5;
BEARWMA:=(C<M1)*-0.5+(C<M2)*-1+(C<MT)*-2+(C<M3)*-2+(C<M4)*-1+(C<M5)*-0.5;
WS:=BULLWMA+BEARWMA; // 最高得分為7分

如何插入一段 公式 來滿足以下條件 :

1. 掛牌上市超過 480天者 === 就用以上的評分模式

2. 掛牌上市介於241~480天者 ==== 改用以下
BULLWMA:=(C>M1)*1+(C>M2)*1+(C>MT)*2+(C>M3)*2+(C>M4)*1;
BEARWMA:=(C<M1)*-1+(C<M2)*-1+(C<MT)*-2+(C<M3)*-2+(C<M4)*-1;
WS:=BULLWMA+BEARWMA; // 最高得分為7分

3. 掛牌上市介於121~240天者 ==== 改用以下
BULLWMA:=(C>M1)*1+(C>M2)*2+(C>MT)*2+(C>M3)*2;
BEARWMA:=(C<M1)*-1+(C<M2)*-2+(C<MT)*-2+(C<M3)*-2;
WS:=BULLWMA+BEARWMA; // 最高得分為7分

4. 掛牌上市介於91~120天者 ==== 改用以下
BULLWMA:=(C>M1)*2+(C>M2)*3+(C>MT)*2;
BEARWMA:=(C<M1)*-2+(C<M2)*-3+(C<MT)*-2;
WS:=BULLWMA+BEARWMA; // 最高得分為7分

5. 掛牌上市介於31~90天者 ==== 改用以下
BULLWMA:=(C>M1)*3+(C>M2)*4;
BEARWMA:=(C<M1)*-3+(C<M2)*-4;
WS:=BULLWMA+BEARWMA; // 最高得分為7分
可能有點煩瑣
真是麻煩您了
感謝您



原碼:

M1
:=WMA(C,15),linethick2,colorgreen,precision2;
M2:=WMA(C,30),linethick0,colorff00ff,precision2
MT:=WMA(C,90),linethick0,coloryellow,precision2
M3:=WMA(C,120),linethick0,colorcc3399,precision2;
M4:=WMA(C,240),linethick0,colorred,precision2;
M5:=WMA(C,480),linethick0,color000099,precision2;
WS:0;
//掛牌上市介於241~480天者
if datacount>240 then begin 
  BULLWMA
:=(C>M1)*1+(C>M2)*1+(C>MT)*2+(C>M3)*2+(C>M4)*1;
  
BEARWMA:=(C<M1)*-1+(C<M2)*-1+(C<MT)*-2+(C<M3)*-2+(C<M4)*-1;
  
WS:=BULLWMA+BEARWMA// 最高得分為7分
//掛牌上市介於121~240天者
end else if datacount>120 then begin
  BULLWMA
:=(C>M1)*1+(C>M2)*2+(C>MT)*2+(C>M3)*2;
  
BEARWMA:=(C<M1)*-1+(C<M2)*-2+(C<MT)*-2+(C<M3)*-2;
  
WS:=BULLWMA+BEARWMA// 最高得分為7分
end else if datacount>90 then begin
//掛牌上市介於91~120天者
  
BULLWMA:=(C>M1)*2+(C>M2)*3+(C>MT)*2;
  
BEARWMA:=(C<M1)*-2+(C<M2)*-3+(C<MT)*-2;
  
WS:=BULLWMA+BEARWMA// 最高得分為7分
end else if datacount>30 then begin
  
//掛牌上市介於31~90天者
  
BULLWMA:=(C>M1)*3+(C>M2)*4;
  
BEARWMA:=(C<M1)*-3+(C<M2)*-4;
  
WS:=BULLWMA+BEARWMA// 最高得分為7分
end;



跟據前面給的條件, 小於31天者的狀況並無處理到唷


由 tycoon868 在 2010-07-13 12:06 發表:

感謝版主:

謝謝您提醒

請您明示:

小於31天時

explaintext 新上市股 不適用本評分系統

再次感謝


由 cgjj 在 2010-07-13 12:13 發表:

引用:
最初由 tycoon868 發表
感謝版主:

謝謝您提醒

請您明示:

小於31天時

explaintext 新上市股 不適用本評分系統

再次感謝



原碼:

WS
:0;
ErrOut:=datacount<=30;
DRAWTEXTEX(ErrOut,1,500,250,'新上市股不適用本評分系統'ALIGN0 COLORMAGENTA;
if 
ErrOut then exit;

M1:=WMA(C,15),linethick2,colorgreen,precision2;
M2:=WMA(C,30),linethick0,colorff00ff,precision2
MT:=WMA(C,90),linethick0,coloryellow,precision2
M3:=WMA(C,120),linethick0,colorcc3399,precision2;
M4:=WMA(C,240),linethick0,colorred,precision2;
M5:=WMA(C,480),linethick0,color000099,precision2;
//掛牌上市介於241~480天者
if datacount>240 then begin 
  BULLWMA
:=(C>M1)*1+(C>M2)*1+(C>MT)*2+(C>M3)*2+(C>M4)*1;
  
BEARWMA:=(C<M1)*-1+(C<M2)*-1+(C<MT)*-2+(C<M3)*-2+(C<M4)*-1;
  
WS:=BULLWMA+BEARWMA// 最高得分為7分
//掛牌上市介於121~240天者
end else if datacount>120 then begin
  BULLWMA
:=(C>M1)*1+(C>M2)*2+(C>MT)*2+(C>M3)*2;
  
BEARWMA:=(C<M1)*-1+(C<M2)*-2+(C<MT)*-2+(C<M3)*-2;
  
WS:=BULLWMA+BEARWMA// 最高得分為7分
end else if datacount>90 then begin
//掛牌上市介於91~120天者
  
BULLWMA:=(C>M1)*2+(C>M2)*3+(C>MT)*2;
  
BEARWMA:=(C<M1)*-2+(C<M2)*-3+(C<MT)*-2;
  
WS:=BULLWMA+BEARWMA// 最高得分為7分
end else if datacount>30 then begin
  
//掛牌上市介於31~90天者
  
BULLWMA:=(C>M1)*3+(C>M2)*4;
  
BEARWMA:=(C<M1)*-3+(C<M2)*-4;
  
WS:=BULLWMA+BEARWMA// 最高得分為7分
end;


由 tycoon868 在 2010-07-14 12:11 發表:

總版主午安:

您給的原碼正確無誤 更加讓我學會了 IF then begin end 等用法
感謝您

以下是我所遇到的新狀況:

問題一: (已經自行解決)

您漏掉了//掛牌上市大於480天者

if datacount>480 then begin

BULLWMA:=(C>M1)*0.5+(C>M2)*1+(C>MT)*2+(C>M3)*2+(C>M4)*1+(C>M5)*0.5;
BEARWMA:=(C<M1)*-0.5+(C<M2)*-1+(C<MT)*-2+(C<M3)*-2+(C<M4)*-1+(C<M5)*-0.5;
WS:=BULLWMA+BEARWMA; // 最高得分為7分

問題二:(歷史評分被刷掉了)

我這一個評分主要是用來作 K棒顏色的
如果一檔股票今天上市為第241天
滿足了以下的條件

//掛牌上市介於241~480天者
end else if datacount>240 then begin

BULLWMA:=(C>M1)*1+(C>M2)*1+(C>MT)*2+(C>M3)*2+(C>M4)*1;
BEARWMA:=(C<M1)*-1+(C<M2)*-1+(C<MT)*-2+(C<M3)*-2+(C<M4)*-1;
WS:=BULLWMA+BEARWMA; // 最高得分為7分

但是第 31~240 天的評分卻不見了(可用訓練模式看到)
導致我的K棒只有今天有指定顏色

**** 我需要保留住 31~240天 的評分(根據當時所滿足的Datacount條件) ****

請您指導如何修改公式

感謝您


由 cgjj 在 2010-07-14 14:01 發表:

引用:
最初由 tycoon868 發表
總版主午安:

您給的原碼正確無誤 更加讓我學會了 IF then begin end 等用法
感謝您

以下是我所遇到的新狀況:

問題一: (已經自行解決)

您漏掉了//掛牌上市大於480天者

if datacount>480 then begin

BULLWMA:=(C>M1)*0.5+(C>M2)*1+(C>MT)*2+(C>M3)*2+(C>M4)*1+(C>M5)*0.5;
BEARWMA:=(C<M1)*-0.5+(C<M2)*-1+(C<MT)*-2+(C<M3)*-2+(C<M4)*-1+(C<M5)*-0.5;
WS:=BULLWMA+BEARWMA; // 最高得分為7分

問題二:(歷史評分被刷掉了)

我這一個評分主要是用來作 K棒顏色的
如果一檔股票今天上市為第241天
滿足了以下的條件

//掛牌上市介於241~480天者
end else if datacount>240 then begin

BULLWMA:=(C>M1)*1+(C>M2)*1+(C>MT)*2+(C>M3)*2+(C>M4)*1;
BEARWMA:=(C<M1)*-1+(C<M2)*-1+(C<MT)*-2+(C<M3)*-2+(C<M4)*-1;
WS:=BULLWMA+BEARWMA; // 最高得分為7分

但是第 31~240 天的評分卻不見了(可用訓練模式看到)
導致我的K棒只有今天有指定顏色

**** 我需要保留住 31~240天 的評分(根據當時所滿足的Datacount條件) ****

請您指導如何修改公式

感謝您



您確定要如此做嗎?
要如此做
公式必需將各個數量的WMA先算好再整合在一起
原來算一次的東西, 會因此要算很多次 (多浪費很多CPU資源)
除非您要評估歷史, 不然盤中用的公式不建議如此做


由 tycoon868 在 2010-07-14 14:52 發表:

回覆版主:

請 板主給我公式
讓我測試 我的 新電腦是否跑的動

如果跑不動 我就作罷

拜託您了

我這一個評分系統還有延伸性的用法
我必須要保有完整的評分

當然 當下的數據是最重要的

如果即時的負荷太重
那是否可以請教您如何

******即時 vs 盤後 各跑各的公式(自動判斷)******

謝謝您


由 cgjj 在 2010-07-14 15:21 發表:

引用:
最初由 tycoon868 發表
回覆版主:

請 板主給我公式
讓我測試 我的 新電腦是否跑的動

如果跑不動 我就作罷

拜託您了

我這一個評分系統還有延伸性的用法
我必須要保有完整的評分

當然 當下的數據是最重要的

如果即時的負荷太重
那是否可以請教您如何

******即時 vs 盤後 各跑各的公式(自動判斷)******

謝謝您



嘻...想到個好方法處理它, 不需用迴圈
跑起來應該不慢

原碼:

WS
:0;
ErrOut:=datacount<=30;
DRAWTEXTEX(ErrOut,1,500,250,'新上市股不適用本評分系統'ALIGN0 COLORMAGENTA;
if 
ErrOut then exit;

M1:=WMA(C,15),linethick2,colorgreen,precision2;
M2:=WMA(C,30),linethick0,colorff00ff,precision2
MT:=WMA(C,90),linethick0,coloryellow,precision2
M3:=WMA(C,120),linethick0,colorcc3399,precision2;
M4:=WMA(C,240),linethick0,colorred,precision2;
M5:=WMA(C,480),linethick0,color000099,precision2;

BULLWMA_480U:=(C>M1)*0.5+(C>M2)*1+(C>MT)*2+(C>M3)*2+(C>M4)*1+(C>M5)*0.5;
BEARWMA_480U:=(C<M1)*-0.5+(C<M2)*-1+(C<MT)*-2+(C<M3)*-2+(C<M4)*-1+(C<M5)*-0.5;
BULLWMA_240U:=(C>M1)*1+(C>M2)*1+(C>MT)*2+(C>M3)*2+(C>M4)*1;
BEARWMA_240U:=(C<M1)*-1+(C<M2)*-1+(C<MT)*-2+(C<M3)*-2+(C<M4)*-1;
BULLWMA_120U:=(C>M1)*1+(C>M2)*2+(C>MT)*2+(C>M3)*2;
BEARWMA_120U:=(C<M1)*-1+(C<M2)*-2+(C<MT)*-2+(C<M3)*-2;
BULLWMA_90U:=(C>M1)*2+(C>M2)*3+(C>MT)*2;
BEARWMA_90U:=(C<M1)*-2+(C<M2)*-3+(C<MT)*-2;
BULLWMA_30U:=(C>M1)*3+(C>M2)*4;
BEARWMA_30U:=(C<M1)*-3+(C<M2)*-4;

BULLWMA:=BULLWMA_30U;
BULLWMA:=if(barpos>90,BULLWMA_90U,BULLWMA);
BULLWMA:=if(barpos>120,BULLWMA_120U,BULLWMA);
BULLWMA:=if(barpos>240,BULLWMA_240U,BULLWMA);
BULLWMA:=if(barpos>480,BULLWMA_480U,BULLWMA);
BEARWMA:=BEARWMA_30U;
BEARWMA:=if(barpos>90,BEARWMA_90U,BEARWMA);
BEARWMA:=if(barpos>120,BEARWMA_120U,BEARWMA);
BEARWMA:=if(barpos>240,BEARWMA_240U,BEARWMA);
BEARWMA:=if(barpos>480,BEARWMA_480U,BEARWMA);
WS:=BULLWMA+BEARWMA;


由 tycoon868 在 2010-07-15 10:20 發表:

感謝

板主的一小步

是小弟的一大步

感謝您


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


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

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