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

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- 當日漲幅前30名 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=15654)


由 L0123 在 2011-05-20 11:34 發表:

問題 當日漲幅前30名

上市股票當日漲幅前30名,請問如何寫?請指導,謝謝!!


由 cgjj 在 2011-05-20 13:02 發表:

回覆: 當日漲幅前30名

引用:
最初由 L0123 發表
上市股票當日漲幅前30名,請問如何寫?請指導,謝謝!!


不用寫, 於數據列表按一下 [漲幅] 欄位排序即可


由 L0123 在 2011-05-20 13:57 發表:

回覆: 回覆: 當日漲幅前30名

引用:
最初由 cgjj 發表
不用寫, 於數據列表按一下 [漲幅] 欄位排序即可


因為還要加其他條件作選股 拜託 大大指導 感恩之至


由 cgjj 在 2011-05-20 18:03 發表:

回覆: 回覆: 回覆: 當日漲幅前30名

引用:
最初由 L0123 發表
因為還要加其他條件作選股 拜託 大大指導 感恩之至


原碼:

UseBlkName
:='上市股票'//設定選用板塊
SetMaxStkNum:=30;  //設定選出數量
UseDIR:=1//設定排序方向 0.升序 1.降序

BlkStkNum:=STKCOUNT(UseBlkName);
if 
BlkStkNum=0 then exit;
RdNum:=0;  //有效商品數
VARIABLE:RdNo[BlkStkNum]=0;  //原始次序
VARIABLE:UseDatAry[BlkStkNum]=0;
VARIABLE:SortPAry[BlkStkNum]=0;
for 
SNo:=1 to BlkStkNum do begin
  UseSTK
:=STKFROMBLK(UseBlkName,SNo);
  if 
DYNAINFO2(8,UseSTK)> 0 then begin //檢查總張>0
    
RdNum:=RdNum+1RdNo[RdNum]:=SNo;
    
UseDatAry[RdNum]:=DYNAINFO2(14,UseSTK); //導入漲幅數據
    
SortPAry[RdNum]:=UseDatAry[RdNum];
  
end;
end;
MaxStkNum:=if(RdNum<SetMaxStkNum,RdNum,SetMaxStkNum);
tmp:=SORTPOS(SortPAry,UseDIR,1,RdNum);
SelListStr:='';
for 
SNo:=1 to MaxStkNum do begin
  UseSTK
:=STKFROMBLK(UseBlkName,RdNo[SortPAry[SNo]]);
  
SelListStr:=SelListStr+UseSTK+';';
end;
選中:STRFIND(SelListStr,MARKETLABEL+STKLABEL,1)>0;



盤後選出會固定為 30 個 (若不足30個商品, 則有多少選多少)

盤中選出來可能會比30個還多出幾個, 這是正常的
因為盤中行情一直在變, 計算當下這支股票可能剛好在前30名內

選股每支股票被觸發計算的時間, 多少都有些差距, 排名隨時都可能變
計算當下若該股在當時30名內, 就會被列入選中


由 L0123 在 2011-05-20 23:09 發表:

感謝 總版主的指導,更謝謝在程式列尾端加註說明,這樣對學習幫助很大。
其中一列 ” if DYNAINFO2(8,UseSTK)> 0 then begin //檢查總張>0 “
偶想將”檢查總張>0”改為檢查昨日總張>N張,要如何改,敬請再指導,謝謝!!


由 L0123 在 2011-05-23 13:55 發表:

感謝 總版主的指導,更謝謝在程式列尾端加註說明,這樣對學習幫助很大。
其中一列 ” if DYNAINFO2(8,UseSTK)> 0 then begin //檢查總張>0 “
偶想將”檢查總張>0”改為檢查昨日總張>N張,要如何改,敬請再指導,謝謝!!


由 cgjj 在 2011-05-23 14:03 發表:

引用:
最初由 L0123 發表
感謝 總版主的指導,更謝謝在程式列尾端加註說明,這樣對學習幫助很大。
其中一列 ” if DYNAINFO2(8,UseSTK)> 0 then begin //檢查總張>0 “
偶想將”檢查總張>0”改為檢查昨日總張>N張,要如何改,敬請再指導,謝謝!!



目前動態行情並無提供 [昨日總張] 此項
僅用動態行情計算速度可以飛快
若要藉由日線, 去拿昨日總張來算
速度會很慢很慢, 因為要載入一堆商品資料
盤中難以跑的動, 就算能動負擔也太大


由 L0123 在 2011-05-24 14:39 發表:

引用:
最初由 cgjj 發表
目前動態行情並無提供 [昨日總張] 此項
僅用動態行情計算速度可以飛快
若要藉由日線, 去拿昨日總張來算
速度會很慢很慢, 因為要載入一堆商品資料
盤中難以跑的動, 就算能動負擔也太大




謝謝 總版主的答覆,有些失望,因為昨日總量的數據,對於選股是一重要的元素,一般選股條件都會考慮量的,
如在盤中選股大都會引用昨日量或平均量,盤後則用當日量。
5.1 新版可以解決這樣的問題嗎?


由 cgjj 在 2011-05-24 14:54 發表:

引用:
最初由 L0123 發表
謝謝 總版主的答覆,有些失望,因為昨日總量的數據,對於選股是一重要的元素,一般選股條件都會考慮量的,
如在盤中選股大都會引用昨日量或平均量,盤後則用當日量。
5.1 新版可以解決這樣的問題嗎?



會跟博庭建議一下, 看能否加入
(重點是資料源中必需有昨日量, 若沒有我們要做也有問題)


由 L0123 在 2011-05-25 22:24 發表:

引用:
最初由 cgjj 發表
會跟博庭建議一下, 看能否加入
(重點是資料源中必需有昨日量, 若沒有我們要做也有問題)



謝謝 總版只主的答覆
奇狐加油!!


由 Touareg_Smart 在 2012-02-11 23:57 發表:

昨日漲幅前30名

引用:
最初由 cgjj 發表
目前動態行情並無提供 [昨日總張] 此項
僅用動態行情計算速度可以飛快
若要藉由日線, 去拿昨日總張來算
速度會很慢很慢, 因為要載入一堆商品資料
盤中難以跑的動, 就算能動負擔也太大



請問版主,若我的需求是昨日漲幅前30名,但並不需要在盤中
去做計算,那該如何去修改程式?

因為DYNAINFO並不是昨日的行情資料,然若想得到昨日每支股票的漲幅並放進array,似乎又會語法錯誤,請問該如何解決又或有其它方式? 謝謝版主...

(UseDatAry[RdNum]:=Ref("UseSTK$Close" - "UseSTK$Open" / "UseSTK$Opem), 1);


由 cgjj 在 2012-02-13 00:41 發表:

回覆: 昨日漲幅前30名

引用:
最初由 Touareg_Smart 發表
請問版主,若我的需求是昨日漲幅前30名,但並不需要在盤中
去做計算,那該如何去修改程式?

因為DYNAINFO並不是昨日的行情資料,然若想得到昨日每支股票的漲幅並放進array,似乎又會語法錯誤,請問該如何解決又或有其它方式? 謝謝版主...

(UseDatAry[RdNum]:=Ref("UseSTK$Close" - "UseSTK$Open" / "UseSTK$Opem), 1);



不需放入array 中
直接計算當前商品的昨日漲幅即可
寫好後用指標排序跑一下就可得到結果


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


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

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