 |
seychen
中級會員
註冊日期: Feb 2009
來 自:
文章數量: 67 |
|
無法顯示區塊內個別股票的合計結果
我希望能顯示整個區塊內的總合計結果,可是現在好像僅顯示當下查看的股票,視 USESTK:=STKFROMBLK() 於無物,我的源碼如下,請指點,
//
// 中短期之價格變化及比較
//
//
//======================================================================
持有檔數:=0;
空手檔數:=0;
無效檔數:=0;
績效:=0;
合計績效:=0;
相對績效:=0;
合計相對績效:=0;
年績效:=0;
C100:="TW100$Close";
月比較MA:=((MA(C,5)-ref(MA(C,5),20))/REF(MA(C,5),20) - (MA(C100,5)-REF(MA(C100,5),20))/REF(MA(C100,5),20) )*100;
MCMM:=月比較MA;
季比較MA:=((MA(C,5)-ref(MA(C,5),60))/REF(MA(C,5),60) - (MA(C100,5)-REF(MA(C100,5),60))/REF(MA(C100,5),60) )*100;
MCMQ:=季比較MA;
半年比較MA:=( (MA(C,5)-ref(MA(c,5),120))/ref(MA(c,5),120) - (MA(C100,5)-REF(MA(C100,5),120))/REF(MA(c100,5),120) )*100;
MCMH:=半年比較MA;
半年大盤MA:=( (MA(C100,5)-ref(MA(c100,5),120) )/( REF(MA(C100,5),120)) )*100;
//==================================================================================================================
UseBlk:='自選-股魚';
for i=1 to STKCOUNT(UseBlk) do begin
//for i=1 to 1 do begin
UseStk:=STKFROMBLK(UseBlk,i);
持有0:= (MCMM > 0 AND MCMQ > 0 AND MCMH > 0 AND (MCMM < MCMQ AND MCMQ < MCMH) AND (MCMM + MCMQ + MCMH) < 30)*10,COLORRED;
空手0:= -(MCMM < 0 AND MCMQ < -0 AND MCMH < -0 AND (MCMM > MCMQ AND MCMQ > MCMH) AND (MCMM + MCMQ + MCMH)> -30)*10,COLORGREEN;
//持有空手: 持有0+空手0;
持有:=IF(持有0=10, 10, 0),LINETHICK0;
空手:=IF(空手0=-10,-10, 0),LINETHICK0;
持有F:= (持有=10 AND REF(持有,1)<>10)*20;
空手F:= -(空手=-10 AND REF(空手,1)<>-10)*20;
持有FF:= ((LBOUND(BARSLAST(空手F=-20))=0 AND BARSLAST(持有F=20) < BARSLAST(BARPOS=10)) OR (BARSLAST(持有F=20) < BARSLAST(空手F=-20)))*30,COLORRED,LINETHICK2;
空手FF:= -((BARSLAST(空手F=-20) < BARSLAST(持有F=20)) OR (LBOUND(BARSLAST(持有F=20))=0 AND BARSLAST(空手F=-20) < BARSLAST(BARPOS=10)))*30,COLORGREEN,LINETHICK2;
//持有空手:=Stkindi(UseStk, '汰弱擇強-持有空手子程式',0,6);
持有空手:= 持有FF+空手FF;
// 漲跌幅:=Stkindi(UseStk, '汰弱擇強-漲跌幅子程式',0,6);
漲跌幅:= (C-REF(C,1))/REF(C,1)*100;
持有檔數:= 持有檔數+IF(持有空手=30,1,0);
空手檔數:= 空手檔數+IF(持有空手=-30,1,0);
無效檔數:= 無效檔數+IF(持有空手=0,1,0);
績效:=持有空手/30*漲跌幅;
合計績效:=合計績效+績效;
相對績效:=持有空手/30*((C-REF(C,1))/REF(C,1)-(C100-REF(C100,1))/REF(C100,1))*100;
合計相對績效:=合計相對績效+相對績效;
end;
//================================================================================================================
持有檔數: 持有檔數;
空手檔數: 空手檔數;
無效檔數: 無效檔數;
合計績效: 合計績效,COLORWHITE;
年績效: SUM(績效,240),COLORWHITE;
年相對績效: SUM(合計相對績效,240),COLORWHITE;
|
|
向版主報告此篇 |  |
|
2023-10-25 11:48 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18251 |
|
回覆: 無法顯示區塊內個別股票的合計結果
引用: 最初由 seychen 發表
我希望能顯示整個區塊內的總合計結果,可是現在好像僅顯示當下查看的股票,視 USESTK:=STKFROMBLK() 於無物,我的源碼如下,請指點,
//
// 中短期之價格變化及比較
//
//
//======================================================================
持有檔數:=0;
空手檔數:=0;
無效檔數:=0;
績效:=0;
合計績效:=0;
相對績效:=0;
合計相對績效:=0;
年績效:=0;
C100:="TW100$Close";
月比較MA:=((MA(C,5)-ref(MA(C,5),20))/REF(MA(C,5),20) - (MA(C100,5)-REF(MA(C100,5),20))/REF(MA(C100,5),20) )*100;
MCMM:=月比較MA;
季比較MA:=((MA(C,5)-ref(MA(C,5),60))/REF(MA(C,5),60) - (MA(C100,5)-REF(MA(C100,5),60))/REF(MA(C100,5),60) )*100;
MCMQ:=季比較MA;
半年比較MA:=( (MA(C,5)-ref(MA(c,5),120))/ref(MA(c,5),120) - (MA(C100,5)-REF(MA(C100,5),120))/REF(MA(c100,5),120) )*100;
MCMH:=半年比較MA;
半年大盤MA:=( (MA(C100,5)-ref(MA(c100,5),120) )/( REF(MA(C100,5),120)) )*100;
//==================================================================================================================
UseBlk:='自選-股魚';
for i=1 to STKCOUNT(UseBlk) do begin
//for i=1 to 1 do begin
UseStk:=STKFROMBLK(UseBlk,i);
持有0:= (MCMM > 0 AND MCMQ > 0 AND MCMH > 0 AND (MCMM < MCMQ AND MCMQ < MCMH) AND (MCMM + MCMQ + MCMH) < 30)*10,COLORRED;
空手0:= -(MCMM < 0 AND MCMQ < -0 AND MCMH < -0 AND (MCMM > MCMQ AND MCMQ > MCMH) AND (MCMM + MCMQ + MCMH)> -30)*10,COLORGREEN;
//持有空手: 持有0+空手0;
持有:=IF(持有0=10, 10, 0),LINETHICK0;
空手:=IF(空手0=-10,-10, 0),LINETHICK0;
持有F:= (持有=10 AND REF(持有,1)<>10)*20;
空手F:= -(空手=-10 AND REF(空手,1)<>-10)*20;
持有FF:= ((LBOUND(BARSLAST(空手F=-20))=0 AND BARSLAST(持有F=20) < BARSLAST(BARPOS=10)) OR (BARSLAST(持有F=20) < BARSLAST(空手F=-20)))*30,COLORRED,LINETHICK2;
空手FF:= -((BARSLAST(空手F=-20) < BARSLAST(持有F=20)) OR (LBOUND(BARSLAST(持有F=20))=0 AND BARSLAST(空手F=-20) < BARSLAST(BARPOS=10)))*30,COLORGREEN,LINETHICK2;
//持有空手:=Stkindi(UseStk, '汰弱擇強-持有空手子程式',0,6);
持有空手:= 持有FF+空手FF;
// 漲跌幅:=Stkindi(UseStk, '汰弱擇強-漲跌幅子程式',0,6);
漲跌幅:= (C-REF(C,1))/REF(C,1)*100;
持有檔數:= 持有檔數+IF(持有空手=30,1,0);
空手檔數:= 空手檔數+IF(持有空手=-30,1,0);
無效檔數:= 無效檔數+IF(持有空手=0,1,0);
績效:=持有空手/30*漲跌幅;
合計績效:=合計績效+績效;
相對績效:=持有空手/30*((C-REF(C,1))/REF(C,1)-(C100-REF(C100,1))/REF(C100,1))*100;
合計相對績效:=合計相對績效+相對績效;
end;
//================================================================================================================
持有檔數: 持有檔數;
空手檔數: 空手檔數;
無效檔數: 無效檔數;
合計績效: 合計績效,COLORWHITE;
年績效: SUM(績效,240),COLORWHITE;
年相對績效: SUM(合計相對績效,240),COLORWHITE;
按您貼出來的公式,其中這一行
UseStk:=STKFROMBLK(UseBlk,i);
它所計算出來的 UseStk 沒有被應用在程式中的任何一個地方,當然形同廢物!
您應該搭配 Stkindi 把各個股票算出來的值引用傳回,然後予以加總,才能得到您想要的!
|
|
向版主報告此篇 |  |
|
2023-10-25 13:28 |
|
|
|  |
 |
seychen
中級會員
註冊日期: Feb 2009
來 自:
文章數量: 67 |
|
回覆: 回覆: 無法顯示區塊內個別股票的合計結果
引用: 最初由 cgjj 發表
按您貼出來的公式,其中這一行
UseStk:=STKFROMBLK(UseBlk,i);
它所計算出來的 UseStk 沒有被應用在程式中的任何一個地方,當然形同廢物!
您應該搭配 Stkindi 把各個股票算出來的值引用傳回,然後予以加總,才能得到您想要的!
搞出這種烏龍,真是再耍寶
-Money hunter
|
|
向版主報告此篇 |  |
|
2023-10-26 06:24 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|