到奇狐勝券首頁 奇狐社區論壇 購買奇狐勝券 試用奇狐勝券
 
論壇首頁 你可以在這裡編輯你的資料,查看短訊,訂閱主題和論壇參數等等 免費會員註冊 會員列表 論壇幫助 論壇日曆 論壇搜索 加入我的最愛 登出論壇  
奇狐社區論壇 : Powered by vBulletin version 2.3.0 奇狐社區論壇 > 指標公式 > 問題交流 > [求救]陣列運算能否從K線往前算
總頁數 (2): [1] 2 »   上一主題   下一主題
作者
主題 發表新主題    回覆主題
P8176
初級會員

註冊日期: Dec 2010
來  自:
文章數量: 10

[求救]陣列運算能否從K線往前算

版主你好

在陣列教學中有 一例子如下


N1:=datacount-50+1;
N2:=datacount;
GetHH:=H;
x:=SORT(GetHH, 1, N1, N2);
前一高:GetHH[N1];
前二高:GetHH[N1+1];

PosHH:=H;
x:=SORTPOS(PosHH, 1, N1, N2);
前一高位置:PosHH[N1] LINETHICK0;
前二高位置:PosHH[N1+1] LINETHICK0;

本例是從最後一根K線往前算前50天
在不用sysparam(1) 的前提下,請問能否從每根K線(即barpos的位子)往前算呢?

向版主報告此篇 | 查IP位址
Old Post 2012-10-16 21:14
P8176 現在離線 點選這裡查看 P8176 的個人資料 點選這裡給 P8176 傳送一條短訊 查找更多關於 P8176 的文章 增加 P8176 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

回覆: [求救]陣列運算能否從K線往前算

引用:
最初由 P8176 發表
版主你好

在陣列教學中有 一例子如下


N1:=datacount-50+1;
N2:=datacount;
GetHH:=H;
x:=SORT(GetHH, 1, N1, N2);
前一高:GetHH[N1];
前二高:GetHH[N1+1];

PosHH:=H;
x:=SORTPOS(PosHH, 1, N1, N2);
前一高位置:PosHH[N1] LINETHICK0;
前二高位置:PosHH[N1+1] LINETHICK0;

本例是從最後一根K線往前算前50天
在不用sysparam(1) 的前提下,請問能否從每根K線(即barpos的位子)往前算呢?



注意: 此公式計算負載較重, 請注意使用
原碼:
MAXKBAR:=500; //設定運算近期N根(0為全部) StPos:=datacount-MAXKBAR+1; if StPos<1 or MAXKBAR=0 then StPos:=1; 前一高:C*0; 前二高:前一高; 前一高位置:前一高 LINETHICK0; 前二高位置:前一高 LINETHICK0; for i=datacount downto StPos do begin N2:=i; N1:=i-50+1; if N1<1 then begin StPos:=i+1; break; end; SH:=H; x:=SETLBOUND(SH,N1); x:=SORT(SH, 1, N1, N2); 前一高[i]:=SH[N1]; 前二高[i]:=SH[N1+1]; SH:=H; x:=SETLBOUND(SH,N1); x:=SORTPOS(SH, 1, N1, N2); 前一高位置[i]:=SH[N1]; 前二高位置[i]:=SH[N1+1]; end; x:=SETLBOUND(前一高,StPos); x:=SETLBOUND(前二高,StPos); x:=SETLBOUND(前一高位置,StPos); x:=SETLBOUND(前二高位置,StPos);

向版主報告此篇 | 查IP位址
Old Post 2012-10-17 13:50
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
P8176
初級會員

註冊日期: Dec 2010
來  自:
文章數量: 10

謝謝版主快速的解答,

我目前是把公式改成

N1:=sysparam(2);
N2:=sysparam(3);

GetHH:=H;
x:=SORT(GetHH, 1, N1, N2);
前一高:GetHH[N1];
前二高:GetHH[N1+1];

PosHH:=H;
x:=SORTPOS(PosHH, 1, N1, N2);
前一高位置:PosHH[N1] LINETHICK0;
前二高位置:PosHH[N1+1] LINETHICK0;

如此訊號則可隨游標的移動而移動, 但我若把N2改成
n2=barpos;
則出現"操作數類型"錯誤, 請問這是為甚麼呢?

向版主報告此篇 | 查IP位址
Old Post 2012-10-18 20:20
P8176 現在離線 點選這裡查看 P8176 的個人資料 點選這裡給 P8176 傳送一條短訊 查找更多關於 P8176 的文章 增加 P8176 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

引用:
最初由 P8176 發表
謝謝版主快速的解答,

我目前是把公式改成

N1:=sysparam(2);
N2:=sysparam(3);

GetHH:=H;
x:=SORT(GetHH, 1, N1, N2);
前一高:GetHH[N1];
前二高:GetHH[N1+1];

PosHH:=H;
x:=SORTPOS(PosHH, 1, N1, N2);
前一高位置:PosHH[N1] LINETHICK0;
前二高位置:PosHH[N1+1] LINETHICK0;

如此訊號則可隨游標的移動而移動, 但我若把N2改成
n2=barpos;
則出現"操作數類型"錯誤, 請問這是為甚麼呢?



barpos 的結果是數列
數列不可帶入給 SORT 函數的第 2, 3, 4 個參數
要隨十字游標移動變換要用 SYSPARAM(1) 帶入

向版主報告此篇 | 查IP位址
Old Post 2012-10-18 22:11
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
P8176
初級會員

註冊日期: Dec 2010
來  自:
文章數量: 10

版主你好

今天試了一下公式,好像跑的有點慢且我寫的也不盡完美,要麻煩版主看看是否有更好的寫法,思路邏輯如下

H1:20天內最大成交量的max(c,o)連接線
L1:20天內最大成交量的min(c,o)連接線
H2:20天內第2大成交量的max(c,o)連接線
L2:20天內第2大成交量的min(c,o)連接線

有效的H1,L1:因創最近20天新高量
無效的H1 L1:因時間遞延而改變的 H1,L1,即20天內沒有新高量
維持原有效的 H1,L1連接線

希望過濾掉無效的 H1, L1, 維持原有效的 H1,L1連接線


有效的 H2,L2: 有二
A 因創最近20天新高量 H2 L2 隨之改變
B 創最近20天內第2大成交量(小於最大成交量但大於原來第 二大成交量

無效的H2 L2:因時間遞延而改變的 H2,L2,即20天內沒有新高量 或 新第二大成交量
維持原有效的 H2, L2 連接線

若收盤價跌破有效的 min(L1,L2) 則找尋之前最接近收盤價 且"有效的" H1 L1 以及 H2 L2
並輔以虛線表示 如附圖所示

謝謝

最後由 P8176 在 2012-10-21 00:05 編輯 向版主報告此篇 | 查IP位址
Old Post 2012-10-20 14:25
P8176 現在離線 點選這裡查看 P8176 的個人資料 點選這裡給 P8176 傳送一條短訊 查找更多關於 P8176 的文章 增加 P8176 至你的好友列表 編輯/刪除訊息 引用回覆
P8176
初級會員

註冊日期: Dec 2010
來  自:
文章數量: 10

附圖如下

最後由 P8176 在 2012-10-21 21:37 編輯 向版主報告此篇 | 查IP位址
Old Post 2012-10-21 00:06
P8176 現在離線 點選這裡查看 P8176 的個人資料 點選這裡給 P8176 傳送一條短訊 查找更多關於 P8176 的文章 增加 P8176 至你的好友列表 編輯/刪除訊息 引用回覆
P8176
初級會員

註冊日期: Dec 2010
來  自:
文章數量: 10

附圖如下

P8176 附帶上了此圖片:

向版主報告此篇 | 查IP位址
Old Post 2012-10-21 21:39
P8176 現在離線 點選這裡查看 P8176 的個人資料 點選這裡給 P8176 傳送一條短訊 查找更多關於 P8176 的文章 增加 P8176 至你的好友列表 編輯/刪除訊息 引用回覆
P8176
初級會員

註冊日期: Dec 2010
來  自:
文章數量: 10

附圖2

P8176 附帶上了此圖片:

向版主報告此篇 | 查IP位址
Old Post 2012-10-21 21:41
P8176 現在離線 點選這裡查看 P8176 的個人資料 點選這裡給 P8176 傳送一條短訊 查找更多關於 P8176 的文章 增加 P8176 至你的好友列表 編輯/刪除訊息 引用回覆
P8176
初級會員

註冊日期: Dec 2010
來  自:
文章數量: 10

附圖說明

P8176 附帶上了此圖片:

向版主報告此篇 | 查IP位址
Old Post 2012-10-21 21:59
P8176 現在離線 點選這裡查看 P8176 的個人資料 點選這裡給 P8176 傳送一條短訊 查找更多關於 P8176 的文章 增加 P8176 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

引用:
最初由 P8176 發表
版主你好

今天試了一下公式,好像跑的有點慢且我寫的也不盡完美,要麻煩版主看看是否有更好的寫法,思路邏輯如下

H1:20天內最大成交量的max(c,o)連接線
L1:20天內最大成交量的min(c,o)連接線
H2:20天內第2大成交量的max(c,o)連接線
L2:20天內第2大成交量的min(c,o)連接線

有效的H1,L1:因創最近20天新高量
無效的H1 L1:因時間遞延而改變的 H1,L1,即20天內沒有新高量
維持原有效的 H1,L1連接線

希望過濾掉無效的 H1, L1, 維持原有效的 H1,L1連接線


有效的 H2,L2: 有二
A 因創最近20天新高量 H2 L2 隨之改變
B 創最近20天內第2大成交量(小於最大成交量但大於原來第 二大成交量

無效的H2 L2:因時間遞延而改變的 H2,L2,即20天內沒有新高量 或 新第二大成交量
維持原有效的 H2, L2 連接線

若收盤價跌破有效的 min(L1,L2) 則找尋之前最接近收盤價 且"有效的" H1 L1 以及 H2 L2
並輔以虛線表示 如附圖所示

謝謝



如果您要動用 sysparam 函數, 速度肯定是會受影響的
因為其會隨著滑鼠移動, 而不斷的被觸發重算
沒必要, 不建議去使用 sysparam 函數
尤其在公式計算負荷又不輕時, CPU肯定更加吃重

若您盤中
訊號不需搭配十字游標移動而移動
那麼建議拆為兩個公式(無法合併)

讓盤中用的公式, 不具 sysparam 的功能
只在盤後用的, 才添入 sysparam 的功能

朝這方向試試吧

向版主報告此篇 | 查IP位址
Old Post 2012-10-22 09:46
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
P8176
初級會員

註冊日期: Dec 2010
來  自:
文章數量: 10

MAXKBAR:=350; //設定運算近期N根(0為全部)
StPos:=datacount-MAXKBAR+1;
if StPos<1 or MAXKBAR=0 then StPos:=1;
前1高:=V*0;
前2高:=前1高;
前1高位置:=前1高 LINETHICK0;
前2高位置:=前1高 LINETHICK0;
for i=datacount downto StPos do begin
N2:=i; N1:=i-30+1;
if N1<1 then begin
StPos:=i+1; break;
end;
SH:=V; x:=SETLBOUND(SH,N1);
x:=SORT(SH, 1, N1, N2);
前1高[i]:=SH[N1];
前2高[i]:=SH[N1+1];
SH:=V; x:=SETLBOUND(SH,N1);
x:=SORTPOS(SH, 1, N1, N2);
前1高位置[i]:=SH[N1];
前2高位置[i]:=SH[N1+1];
end;
x:=SETLBOUND(前1高,StPos);
x:=SETLBOUND(前2高,StPos);
x:=SETLBOUND(前1高位置,StPos);
x:=SETLBOUND(前2高位置,StPos);

BARP:BARPOS,linethick0;

前1高位置d:=barp-前1高位置,linethick0;
前2高位置d:=barp-前2高位置,linethick0;


前1高H:REF(MAX(C,O),BARP-前1高位置),COLORYELLOW,linedot;
前1高L:REF(MIN(C,O),BARP-前1高位置),COLORYELLOW;

前2高Hv:=ref(v,barp-前2高位置),linethick0;

前2高H:=REF(MAX(C,O),BARP-前2高位置),COLORCYAN,linedot;
前2高L:=REF(MIN(C,O),BARP-前2高位置),COLORCYAN;

PARTLINE(前1高H=REF(前1高H,1),前1高H),COLORYELLOW,pointdot;

PARTLINE(前1高L=REF(前1高L,1),前1高L),pointdot,COLORYELLOW,linethick1;

公式如上,並沒有用到sysparam函數 我的問題是要如何過濾掉"無效的訊號"
無效的訊號定義:某一天出現30天最大量,在這跟K棒後30天內有一個第二大量,這根第二大量在以後因為時間的遞延有 可能變成30天內的第一大量,我要俗和過濾掉它?
例如1/1日是30天內的最大量,在1/1日到1/30日之中,若沒有出現比1/1日更大的量,其訊號全部忽略。 若1/31號出現一根大量比1/2~1/30都大,則視為有效訊號。

請板主再幫我看看,謝謝

向版主報告此篇 | 查IP位址
Old Post 2012-10-22 10:55
P8176 現在離線 點選這裡查看 P8176 的個人資料 點選這裡給 P8176 傳送一條短訊 查找更多關於 P8176 的文章 增加 P8176 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

引用:
最初由 P8176 發表
MAXKBAR:=350; //設定運算近期N根(0為全部)
StPos:=datacount-MAXKBAR+1;
if StPos<1 or MAXKBAR=0 then StPos:=1;
前1高:=V*0;
前2高:=前1高;
前1高位置:=前1高 LINETHICK0;
前2高位置:=前1高 LINETHICK0;
for i=datacount downto StPos do begin
N2:=i; N1:=i-30+1;
if N1<1 then begin
StPos:=i+1; break;
end;
SH:=V; x:=SETLBOUND(SH,N1);
x:=SORT(SH, 1, N1, N2);
前1高[i]:=SH[N1];
前2高[i]:=SH[N1+1];
SH:=V; x:=SETLBOUND(SH,N1);
x:=SORTPOS(SH, 1, N1, N2);
前1高位置[i]:=SH[N1];
前2高位置[i]:=SH[N1+1];
end;
x:=SETLBOUND(前1高,StPos);
x:=SETLBOUND(前2高,StPos);
x:=SETLBOUND(前1高位置,StPos);
x:=SETLBOUND(前2高位置,StPos);

BARP:BARPOS,linethick0;

前1高位置d:=barp-前1高位置,linethick0;
前2高位置d:=barp-前2高位置,linethick0;


前1高H:REF(MAX(C,O),BARP-前1高位置),COLORYELLOW,linedot;
前1高L:REF(MIN(C,O),BARP-前1高位置),COLORYELLOW;

前2高Hv:=ref(v,barp-前2高位置),linethick0;

前2高H:=REF(MAX(C,O),BARP-前2高位置),COLORCYAN,linedot;
前2高L:=REF(MIN(C,O),BARP-前2高位置),COLORCYAN;

PARTLINE(前1高H=REF(前1高H,1),前1高H),COLORYELLOW,pointdot;

PARTLINE(前1高L=REF(前1高L,1),前1高L),pointdot,COLORYELLOW,linethick1;

公式如上,並沒有用到sysparam函數 我的問題是要如何過濾掉"無效的訊號"
無效的訊號定義:某一天出現30天最大量,在這跟K棒後30天內有一個第二大量,這根第二大量在以後因為時間的遞延有 可能變成30天內的第一大量,我要俗和過濾掉它?
例如1/1日是30天內的最大量,在1/1日到1/30日之中,若沒有出現比1/1日更大的量,其訊號全部忽略。 若1/31號出現一根大量比1/2~1/30都大,則視為有效訊號。

請板主再幫我看看,謝謝



您說要處理的訊號是指那個?? (目前公式裡面只有線條)

向版主報告此篇 | 查IP位址
Old Post 2012-10-22 16:27
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
P8176
初級會員

註冊日期: Dec 2010
來  自:
文章數量: 10

就是紅圈處的線條,其應與前幾天一樣直線位置

P8176 附帶上了此圖片:

向版主報告此篇 | 查IP位址
Old Post 2012-10-22 22:01
P8176 現在離線 點選這裡查看 P8176 的個人資料 點選這裡給 P8176 傳送一條短訊 查找更多關於 P8176 的文章 增加 P8176 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

引用:
最初由 P8176 發表
就是紅圈處的線條,其應與前幾天一樣直線位置


看看是否為您要結果
原碼:

N
:=20;
MAXKBAR:=350//設定運算近期N根(0為全部)
StPos:=datacount-MAXKBAR+N;
if 
StPos<or MAXKBAR=0 then StPos:=N;
if 
StPos>datacount then exit; //K棒不足
HH:=HVV:=V;
MK:=C*0OldV1P:=-N;
for 
i=StPos to datacount do begin
  V1
:=-1;
  for 
j=i-N+1 to i do begin
    
if VV[j]>V1 then begin
      V1
:=VV[j];       
      if 
OldV1P<or j-OldV1P+1>N then begin
        V1P
:=j;
      
end else begin 
        
if V1>VV[OldV1Pthen begin
          V1P
:=j;
        
end;
      
end;
    
end;
  
end;
  
MK[V1P]:=1OldV1P:=V1P;
end;
XX:=BARSSINCE(MK)>=0;
MH:H*XX*MKMH:=ref(MH,barslast(MH<>0)) LINEDASHDOT coloryellow;
ML:L*XX*MKML:=ref(ML,barslast(ML<>0)) LINEDOT coloryellow;

向版主報告此篇 | 查IP位址
Old Post 2012-10-23 10:34
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
P8176
初級會員

註冊日期: Dec 2010
來  自:
文章數量: 10

是的,謝謝

我想出一個方法

BIGV20:=if(v=hhv(v,20),v,0);
bigvp:=barslast(BIGV20>0);
h1:ref(max(c,o),bigvp),coloryellow;
l1:ref(min(c,o),bigvp),coloryellow;

不過我還需要20天內第二大量的連線,我試了笨方法如下,不過好像不太對,最大量的K線在許多天後可能變成第二大量,可是這個方法已經把它給過濾掉了,所以...請問有沒有辦法可找出第二大量的K線?

A:=HHV(VOL,20);
VT1:=IF(VOL<A,VOL,0);
VT2:=IF(REF(VOL,1)<A,REF(VOL,1),0);
......
VT20:=IF(REF(VOL,19)<A,REF(VOL,19),0);


MAX1:=MAX(VT1,VT2);
MAX2:=MAX(VT3,VT4);
MAX3:=MAX(VT5,VT6);
....

MAXFINAL:=MAX(MAX17,MAX18);

BIGV2P:=BARSLAST(V=MAXFINAL);
BIGV2H:REF(MAX(C,O),BIGV2P),COLORCYAN,LINEDOT;
BIGV2L:REF(MIN(C,O),BIGV2P),COLORCYAN,POINTDOT;

向版主報告此篇 | 查IP位址
Old Post 2012-10-23 12:28
P8176 現在離線 點選這裡查看 P8176 的個人資料 點選這裡給 P8176 傳送一條短訊 查找更多關於 P8176 的文章 增加 P8176 至你的好友列表 編輯/刪除訊息 引用回覆
全部時間均為台灣時間, 現在時間為12:57 發表新主題    回覆主題
總頁數 (2): [1] 2 »   上一主題   下一主題
顯示可列印版本 | 訂閱此主題

論壇跳轉:
主題評分:

論壇規定:
你不可以發表新主題
你不可以回覆文章
你不可以上傳附件
你不可以編輯自己的文章
HTML語法禁止
vB 語法核准
表情符號核准
貼圖語法[IMG]核准
 

本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。

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

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.  聯絡我們