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

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- [問題]請問記錄指標數值並比較的語法? (http://www.chiefox.com.tw/bbs/showthread.php?threadid=20548)


由 Digol 在 2016-11-16 09:47 發表:

[問題]請問記錄指標數值並比較的語法?

1、從第一次記錄指標數值開始,之後同向不與比較也不記錄,反向才要比較。
2、反向減少則與最近一次記錄之指標數值比較,低於則記錄指標數值,並顯示為空方,高於則忽略(但之後出現的反向減少必須持續比較)。
3、同理,反向增加則與最近一次記錄之指標數值比較,高於則記錄指標數值,並顯示為多方,低於則忽略(但之後出現的反向增加必須持續比較)。
4、指標差值為前後指標數值之差值,即指標差值:指標數值-REF(指標數值,1);
5、煩請板主以五彩K線為例指導,謝謝。

__________________
大家發財^^


由 cgjj 在 2016-11-16 10:29 發表:

回覆: [問題]請問記錄指標數值並比較的語法?

引用:
最初由 Digol 發表
1、從第一次記錄指標數值開始,之後同向不與比較也不記錄,反向才要比較。
2、反向減少則與最近一次記錄之指標數值比較,低於則記錄指標數值,並顯示為空方,高於則忽略(但之後出現的反向減少必須持續比較)。
3、同理,反向增加則與最近一次記錄之指標數值比較,高於則記錄指標數值,並顯示為多方,低於則忽略(但之後出現的反向增加必須持續比較)。
4、指標差值為前後指標數值之差值,即指標差值:指標數值-REF(指標數值,1);
5、煩請板主以五彩K線為例指導,謝謝。



參考範例:
UD:=V-ref(v,1);
BB:=UD>0 or barpos=0;
SS:=UD<0 or barpos=0;
CK:=BB-SS;
CK:=ref(CK,barslast(CK<>0));
CK:=if(CK<>ref(CK,1) or barpos=lbound(CK),CK,0);
UD:=UD*ABS(CK);
UD>0 colorred;
UD<0 colorgreen;
UD=0 color777777;


由 cgjj 在 2016-11-16 10:48 發表:

細看了一下~~
我原先回應的,跟您要的想法應該不太一樣(需要重新撰寫答覆)

您要做的指標,起算點為歷史首根嗎?
(起點對後期影響很大....)


由 Digol 在 2016-11-16 11:03 發表:

引用:
最初由 cgjj 發表
細看了一下~~
我原先回應的,跟您要的想法應該不太一樣(需要重新撰寫答覆)

您要做的指標,起算點為歷史首根嗎?
(起點對後期影響很大....)



回板主,起算點為每日第1根K棒開始,因為有運用分筆資料,所以每天都是從開盤開始重新計算。

__________________
大家發財^^


由 cgjj 在 2016-11-16 11:42 發表:

引用:
最初由 Digol 發表
回板主,起算點為每日第1根K棒開始,因為有運用分筆資料,所以每天都是從開盤開始重新計算。


看看是否為您要的
原碼:
差值:={請自行帶入指標差值}; DE:=date; StNo:=lbound(BARSSINCE(DE=DE[datacount])); if lbound(差值)>StNo then StNo:=lbound(差值); Last差:=差值[StNo]; UD差:=C*0; UD差[StNo]:=Last差; for i=StNo+1 to datacount do begin if 差值[i]<>0 then begin if ABS(差值[i])<ABS(Last差) and SGN(差值[i])=-SGN(Last差) then begin UD差[i]:=差值[i]; Last差:=差值[i]; end; end; end; UD差>0 colorred; UD差<0 colorgreen; UD差=0 color777777;


由 Digol 在 2016-11-16 14:56 發表:

引用:
最初由 cgjj 發表
看看是否為您要的
原碼:
差值:={請自行帶入指標差值}; DE:=date; StNo:=lbound(BARSSINCE(DE=DE[datacount])); if lbound(差值)>StNo then StNo:=lbound(差值); Last差:=差值[StNo]; UD差:=C*0; UD差[StNo]:=Last差; for i=StNo+1 to datacount do begin if 差值[i]<>0 then begin if ABS(差值[i])<ABS(Last差) and SGN(差值[i])=-SGN(Last差) then begin UD差[i]:=差值[i]; Last差:=差值[i]; end; end; end; UD差>0 colorred; UD差<0 colorgreen; UD差=0 color777777;



謝謝板主,但經測試K棒均顯示color777777這個顏色,並沒有依需求改變。

另外,我想要的是當差為多方時,當根K棒與之後K棒一直顯示為紅色,直到符合比較原則轉為空方時則一直顯示成綠色,也就是只有開盤到第一次出現差值前才會顯示UD差=0的顏色。

__________________
大家發財^^


由 cgjj 在 2016-11-16 15:47 發表:

引用:
最初由 Digol 發表
謝謝板主,但經測試K棒均顯示color777777這個顏色,並沒有依需求改變。

另外,我想要的是當差為多方時,當根K棒與之後K棒一直顯示為紅色,直到符合比較原則轉為空方時則一直顯示成綠色,也就是只有開盤到第一次出現差值前才會顯示UD差=0的顏色。



您用哪個週期跑? 分線嗎?
請觀察今日之分線K棒,它僅算最新一日,之前的都會是灰色的
若在分線沒結果,請確認您帶入的差值數列無誤

Re:另外,我想要的是當差為多方時,當根K棒與之後K棒一直顯示為紅色....
這部分要等前面的部分確立無誤後
再進行處理,否則先處理不利比對


由 Digol 在 2016-11-16 16:04 發表:

引用:
最初由 cgjj 發表
您用哪個週期跑? 分線嗎?
請觀察今日之分線K棒,它僅算最新一日,之前的都會是灰色的
若在分線沒結果,請確認您帶入的差值數列無誤

Re:另外,我想要的是當差為多方時,當根K棒與之後K棒一直顯示為紅色....
這部分要等前面的部分確立無誤後
再進行處理,否則先處理不利比對



我用1分鐘週期跑,如圖都是灰色的。
另外差值請看附圖指標,只有出現差值時才會有紅、綠,其他時間差值為0。

__________________
大家發財^^


由 Digol 在 2016-11-16 16:05 發表:

引用:
最初由 Digol 發表
我用1分鐘週期跑,如圖都是灰色的。
另外差值請看附圖指標,只有出現差值時才會有紅、綠,其他時間差值為0。

__________________
大家發財^^


由 cgjj 在 2016-11-16 16:48 發表:

引用:
最初由 Digol 發表
我用1分鐘週期跑,如圖都是灰色的。
另外差值請看附圖指標,只有出現差值時才會有紅、綠,其他時間差值為0。



是起點差值為零引起的,請改為這樣
原碼:
差值:={請自行帶入指標差值}; DE:=date; StNo:=lbound(BARSSINCE(DE=DE[datacount])); if lbound(差值)>StNo then StNo:=lbound(差值); Last差:=差值[StNo]; UD差:=C*0; UD差[StNo]:=Last差; for i=StNo+1 to datacount do begin if 差值[i]<>0 then begin if Last差=0 or (ABS(差值[i])<ABS(Last差) and SGN(差值[i])=-SGN(Last差)) then begin UD差[i]:=差值[i]; Last差:=差值[i]; end; end; end; UD差>0 colorred; UD差<0 colorgreen; UD差=0 color777777;


由 cgjj 在 2016-11-16 17:14 發表:

確認無誤後,只需


UD差>0 colorred;
UD差<0 colorgreen;
UD差=0 color777777;

改為
UD差:=ref(UD差,barslast(UD差<>0));
UD差>0 colorred;
UD差<0 colorgreen;
UD差=0 color777777;

就可達到您要的:
當差為多方時,當根K棒與之後K棒一直顯示為紅色,直到符合比較原則轉為空方時則一直顯示成綠色


由 Digol 在 2016-11-17 08:27 發表:

引用:
最初由 cgjj 發表
是起點差值為零引起的,請改為這樣
原碼:
差值:={請自行帶入指標差值}; DE:=date; StNo:=lbound(BARSSINCE(DE=DE[datacount])); if lbound(差值)>StNo then StNo:=lbound(差值); Last差:=差值[StNo]; UD差:=C*0; UD差[StNo]:=Last差; for i=StNo+1 to datacount do begin if 差值[i]<>0 then begin if Last差=0 or (ABS(差值[i])<ABS(Last差) and SGN(差值[i])=-SGN(Last差)) then begin UD差[i]:=差值[i]; Last差:=差值[i]; end; end; end; UD差>0 colorred; UD差<0 colorgreen; UD差=0 color777777;



經測試仍有問題,如圖。

另外好像無法歷史回憶?希望能歷史回憶,往後才能正確的測試指標。

__________________
大家發財^^


由 cgjj 在 2016-11-17 08:57 發表:

引用:
最初由 Digol 發表
經測試仍有問題,如圖。

另外好像無法歷史回憶?希望能歷史回憶,往後才能正確的測試指標。



@@ 抱歉,被圖誤導

這邊的
差值:={請自行帶入指標差值};

應該是要帶入您所謂的[指標數值]
差值:={指標數值};

以您的公式特性而言
要做歷史回憶需要具備:
1.開啟該天的歷史回應
2.訓練模式調到該天收盤後的時間(例如:15:00)
兩者同時配合,才能正常看


由 Digol 在 2016-11-17 09:18 發表:

引用:
最初由 cgjj 發表
@@ 抱歉,被圖誤導

這邊的
差值:={請自行帶入指標差值};

應該是要帶入您所謂的[指標數值]
差值:={指標數值};

以您的公式特性而言
要做歷史回憶需要具備:
1.開啟該天的歷史回應
2.訓練模式調到該天收盤後的時間(例如:15:00)
兩者同時配合,才能正常看



報告板主,帶入指標數值,紅K變成開盤第一根了。如圖。

__________________
大家發財^^


由 cgjj 在 2016-11-17 09:25 發表:

引用:
最初由 Digol 發表
報告板主,帶入指標數值,紅K變成開盤第一根了。如圖。


那是起算點呀

起算點若[指標數值]不為零
就會被標上紅綠K,當第一成立之紅綠K
找第二紅綠K時,會跟它去比較


由 Digol 在 2016-11-17 09:36 發表:

引用:
最初由 cgjj 發表
那是起算點呀

起算點若[指標數值]不為零
就會被標上紅綠K,當第一成立之紅綠K
找第二紅綠K時,會跟它去比較



如上圖,副圖指標處最後一根綠柱,K線應該變綠K,可是沒有?

另外我可能誤會板主所謂的起算點了,非常抱歉,我以為所謂的起算點是指標啟始點,正確的起算點是第一次差值增加或減少時記錄指標數值(如副圖的第1次紅柱),往後變動跟此指標數值比較,而不是跟每天第1根比較。

__________________
大家發財^^


由 Digol 在 2016-11-17 09:52 發表:

引用:
最初由 Digol 發表
如上圖,副圖指標處最後一根綠柱,K線應該變綠K,可是沒有?

另外我的需求是第一次差值增加或減少時記錄指標數值(如副圖的第1次紅柱),往後變動跟此指標數值比較,而不是跟每天第1根比較。

__________________
大家發財^^


由 cgjj 在 2016-11-17 12:07 發表:

引用:
最初由 Digol 發表
如上圖,副圖指標處最後一根綠柱,K線應該變綠K,可是沒有?

另外我可能誤會板主所謂的起算點了,非常抱歉,我以為所謂的起算點是指標啟始點,正確的起算點是第一次差值增加或減少時記錄指標數值(如副圖的第1次紅柱),往後變動跟此指標數值比較,而不是跟每天第1根比較。



先釐清一下

我是說起算點是當日首根
起算點若[指標數值]不為零就會被標上紅綠K
起算點不一定是被標示的第一點
第一個[指標數值]非零之處,才會是被標示的第一點


目前的程式,處理方式舉例說明如下:
(以下數字均為[指標數值],並非[差值])

起算點是當日首根,若首根[指標數值]為零,就續找後面非零的

例如:
當天第1-3根為零,第4根是688
第4根就會被標上紅K (首根正向)
第5-6根為零,第7根是655,跳過不處理(雖比第4根小,但同向)
第8根為零,第9根是-690,跳過不處理(雖反向,但比第4根大)
第10根為350,跳過不處理(同向略過)
第11根為-660,標上綠K(反向,且比第4根小)
第12根為零,第13根是670,跳過不處理(雖反向,但比第11根大)
第14根為零,第15根是-600,跳過不處理(同向略過)
第16根為零,第17根是580,標上紅K

建議提供帶入的[元素]程式
如此雙方有相同的數據,比較容易溝通比對


由 Digol 在 2016-11-17 15:35 發表:

引用:
最初由 cgjj 發表
先釐清一下

我是說起算點是當日首根
起算點若[指標數值]不為零就會被標上紅綠K
起算點不一定是被標示的第一點
第一個[指標數值]非零之處,才會是被標示的第一點


目前的程式,處理方式舉例說明如下:
(以下數字均為[指標數值],並非[差值])

起算點是當日首根,若首根[指標數值]為零,就續找後面非零的

例如:
當天第1-3根為零,第4根是688
第4根就會被標上紅K (首根正向)
第5-6根為零,第7根是655,跳過不處理(雖比第4根小,但同向)
第8根為零,第9根是-690,跳過不處理(雖反向,但比第4根大)
第10根為350,跳過不處理(同向略過)
第11根為-660,標上綠K(反向,且比第4根小)
第12根為零,第13根是670,跳過不處理(雖反向,但比第11根大)
第14根為零,第15根是-600,跳過不處理(同向略過)
第16根為零,第17根是580,標上紅K

建議提供帶入的[元素]程式
如此雙方有相同的數據,比較容易溝通比對



1、指標數值可用類似『量』的概念視之,雖有正負但不是每根K線都會變動。
2、同向的定義是差值=指標數值-REF(指標數值,1)的增減,而非數值的正負。
3、所以我想利用『差值』的正負(增減)來啟動多空的判別,但還需要比較『數值』的大小。
4、開盤後直到第一次出現的差值增減即先定義多空(但需要記錄數值以利後面判斷)。
5、後續差值若同向則不比較不記錄(數值),差值反向才比較數值的大小。
6、例如開盤第一次差值增加視為多(數值A),直到差值出現減少且數值<A則轉空(此時記錄數值),若數值>A則忽略。
7、多空轉換成立才記錄數值(只記錄當下),以利後續判別。
8、轉空之後(數值B),直到差值出現增加且數值>B則轉多(此時記錄數值),若數值<B則忽略。

__________________
大家發財^^


由 cgjj 在 2016-11-18 13:35 發表:

引用:
最初由 Digol 發表
1、指標數值可用類似『量』的概念視之,雖有正負但不是每根K線都會變動。
2、同向的定義是差值=指標數值-REF(指標數值,1)的增減,而非數值的正負。
3、所以我想利用『差值』的正負(增減)來啟動多空的判別,但還需要比較『數值』的大小。
4、開盤後直到第一次出現的差值增減即先定義多空(但需要記錄數值以利後面判斷)。
5、後續差值若同向則不比較不記錄(數值),差值反向才比較數值的大小。
6、例如開盤第一次差值增加視為多(數值A),直到差值出現減少且數值<A則轉空(此時記錄數值),若數值>A則忽略。
7、多空轉換成立才記錄數值(只記錄當下),以利後續判別。
8、轉空之後(數值B),直到差值出現增加且數值>B則轉多(此時記錄數值),若數值<B則忽略。



原碼:
數值:={請自行帶入指標數值}; 差值:=數值-REF(數值,1); StNo:=lbound(BARSSINCE(差值<>0)); if StNo=0 then exit; NowDir:=SGN(差值[StNo]); Old數值:=數值[StNo]; RG:=C*0; RG[StNo]:=NowDir; for i=StNo+1 to datacount do begin ChkDir:=SGN(差值[i]); if 差值[i]<>0 and NowDir<>ChkDir and SGN(數值[i]-Old數值)=ChkDir then begin NowDir:=ChkDir; Old數值:=數值[i]; end; RG[i]:=NowDir; end; RG>0 colorred; RG<0 colorgreen; RG=0 color777777;


由 cgjj 在 2016-11-18 13:42 發表:

建議之後用類似這樣表達,會容易理解和溝通

A 為 指標數值
B 為 REF(指標數值,1)
A>B 或 A<B


現在的方式 差值=指標數值-REF(指標數值,1)
以 "差值增加、差值減少" 來描述
容易被誤理解成為 前一根差值>目前這根差值 或 前一根差值<目前這根差值
而非 A>B 或 A<B


由 Digol 在 2016-11-18 15:01 發表:

感謝板主指導,謝謝。

__________________
大家發財^^


由 cgjj 在 2016-11-18 15:14 發表:

引用:
最初由 Digol 發表
感謝板主指導,謝謝。


不客氣 ^^


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


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

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