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

奇狐社區論壇 (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=13377)


由 mead 在 2010-04-02 11:03 發表:

多分鐘均線問題

DE:=date; TE:=hour*60+minute;
DEJP:=BARSLAST(DE=ref(DE,1));
SM:=ref(TE-ref(TE,1),DEJP);
SM:=SM[datacount];
均:=300/SM;

請教總版主;上面的公式是您指導的

然後我在六分圖上加入了這個公式

日均:ma(C,均);

現問題是:
當在1~5分時其日均值是錯的;只有在六的倍數的時間上才會顯示正確的日均值
我想在非六的倍數時間期間就顯示上一個六分線的日均值;該用公式如何表達?因為這樣數值才不會落差太大!

謝謝 感恩


由 cgjj 在 2010-04-02 11:26 發表:

回覆: 多分鐘均線問題

引用:
最初由 mead 發表
DE:=date; TE:=hour*60+minute;
DEJP:=BARSLAST(DE=ref(DE,1));
SM:=ref(TE-ref(TE,1),DEJP);
SM:=SM[datacount];
均:=300/SM;

請教總版主;上面的公式是您指導的

然後我在六分圖上加入了這個公式

日均:ma(C,均);

現問題是:
當在1~5分時其日均值是錯的;只有在六的倍數的時間上才會顯示正確的日均值
我想在非六的倍數時間期間就顯示上一個六分線的日均值;該用公式如何表達?因為這樣數值才不會落差太大!

謝謝 感恩



您誤會嚕唷

給您的這範例
http://www.chiefox.com.tw/bbs/showt...54093#post54093
是在N分鐘時, 自動切換為不同的M根分線

不是拿來算日均的啦

當日300根還沒到, 您帶入 300 當然會出錯呀


由 mead 在 2010-04-02 11:46 發表:

那請問總板

我以一分圖是300均 等比例 三分圖是100均,六分圖是50均,十分圖是30均

公式該如何表達才會正確

謝謝 感恩


由 cgjj 在 2010-04-02 16:27 發表:

引用:
最初由 mead 發表
那請問總板

我以一分圖是300均 等比例 三分圖是100均,六分圖是50均,十分圖是30均

公式該如何表達才會正確

謝謝 感恩



不太懂您真正想要算的
看看這個是否為您要的結果

CK:=date<>ref(date,1);
SP:=barslast(CK)+1;
MA(C,SP);


由 mead 在 2010-04-05 00:47 發表:

謝謝總版主的回答

我只是要在我切換不同分時時能自動調成與一分線300均對應;即
一分圖是:ma(c,300)
當我調成
二分圖時能自動調成:ma(c,150)

四分圖時能自動調成:ma(c,75)

五分圖時能自動調成:ma(c,60)

六分圖時能自動調成:ma(c,50)

十分圖時能自動調成:ma(c,30)

十五分圖時能自動調成:ma(c,20)

三十分圖時能自動調成:ma(c,10)

六十分圖時能自動調成:ma(c,5)

謝謝 感恩


由 KV1566 在 2010-04-05 08:50 發表:

N:=300;
if datatype=11 or datatype<=5 then begin
CK:=date<>ref(date,1);
SP:=barslast(CK)+1;
SP1:INTPART(N*SP[UBOUND(SP)]/270);
MA(C,SP1);
end;


由 mead 在 2010-04-05 13:04 發表:

感謝KV1566回覆 試試看

謝謝 感恩


由 mead 在 2010-04-06 09:55 發表:

引用:
最初由 KV1566 發表
N:=300;
if datatype=11 or datatype<=5 then begin
CK:=date<>ref(date,1);
SP:=barslast(CK)+1;
SP1:INTPART(N*SP[UBOUND(SP)]/270);
MA(C,SP1);
end;



對不起 測試過了 不對ㄋㄟ SP1和SP都一樣

請總版主或各位高手再幫幫忙


由 cgjj 在 2010-04-06 11:26 發表:

引用:
最初由 mead 發表
對不起 測試過了 不對ㄋㄟ SP1和SP都一樣

請總版主或各位高手再幫幫忙



CK:=date<>ref(date,1);
SP:=barslast(CK)+1;
N:ref(SP,SP) linethick0;
N:=N[datacount];
MA(C,N);


由 mead 在 2010-04-06 11:47 發表:

可以了 謝謝總版主的幫忙

謝謝 感恩


由 cgjj 在 2010-04-06 11:59 發表:

引用:
最初由 mead 發表
可以了 謝謝總版主的幫忙

謝謝 感恩



不客氣
這方法僅適用於
分線資料長度超過一天以上的商品(不含一天)


由 KV1566 在 2010-04-06 13:03 發表:

引用:
最初由 mead 發表

引用:
--------------------------------------------------------------------------------
最初由 KV1566 發表
N:=300;
if datatype=11 or datatype<=5 then begin
CK:=date<>ref(date,1);
SP:=barslast(CK)+1;
SP1:INTPART(N*SP[UBOUND(SP)]/270);
MA(C,SP1);
end;
--------------------------------------------------------------------------------

B]對不起 測試過了 不對ㄋㄟ SP1和SP都一樣
請總版主或各位高手再幫幫忙 [/B]

怪了!我這邊測試是對的耶!

以M2(兩分鐘K線為例),我上面那程式碼跑出來的SP1是150,而總版主寫的那個程式碼是135,

總版主是直接以一天270分鐘為劃分,而我上面那程式則由N:=300自由設定!
而且,SP與SP1的值,隨著十字軸的移動,確實是不一樣的!為什麼在你的測試中會變成一樣呢?!


由 cgjj 在 2010-04-06 13:14 發表:

引用:
最初由 KV1566 發表
怪了!我這邊測試是對的耶!

以M2(兩分鐘K線為例),我上面那程式碼跑出來的SP1是150,而總版主寫的那個程式碼是135,

總版主是直接以一天270分鐘為劃分,而我上面那程式則由N:=300自由設定!
而且,SP與SP1的值,隨著十字軸的移動,確實是不一樣的!為什麼在你的測試中會變成一樣呢?!



我那段程式
在加權2分會是 135
在台指期貨2分會是 150
mead 兄所提 一分線300 , 應屬台指期貨的商品


由 KV1566 在 2010-04-06 13:48 發表:

引用:
最初由 cgjj 發表
我那段程式
在加權2分會是 135
在台指期貨2分會是 150
mead 兄所提 一分線300 , 應屬台指期貨的商品


了解!

那,如果結合兩組程式碼,再加上OPENMINUTES(TIME)的控制,則在加權與期指上就會完全變成可自由控制了!

N:=300;
if datatype=11 or datatype<=5 then begin
CK:=date<>ref(date,1);
SP:=barslast(CK)+1;
OM:=OPENMINUTES(TIME) LINETHICK0;
SP1:=REF(SP,SP) LINETHICK0;
SP1:INTPART(N*SP[UBOUND(SP)]/SP1/(OM[ubound(OM)-1]-OM[ubound(OM)-2]));
MA(C,SP1);
end;

以上只適用於100分鐘線以下之線圖,且,以N:=300之公因數為主的分鐘線圖最為準確


由 mead 在 2010-04-06 16:34 發表:

引用:
最初由 KV1566 發表
怪了!我這邊測試是對的耶!

以M2(兩分鐘K線為例),我上面那程式碼跑出來的SP1是150,而總版主寫的那個程式碼是135,

總版主是直接以一天270分鐘為劃分,而我上面那程式則由N:=300自由設定!
而且,SP與SP1的值,隨著十字軸的移動,確實是不一樣的!為什麼在你的測試中會變成一樣呢?!



盤後測都是對的 但在即時盤盤中則SP和SP1會一樣在數K棒 SP1無法固定成一比例值(如100)

謝謝KV1566兄的熱心協助

謝謝 感恩


由 KV1566 在 2010-04-06 19:35 發表:

引用:
最初由 mead 發表
盤後測都是對的 但在即時盤盤中則SP和SP1會一樣在數K棒 SP1無法固定成一比例值(如100)

謝謝KV1566兄的熱心協助

謝謝 感恩


了解!

那,改成下面這樣試試。應該可以在即時盤中固定住SP1了!
我沒有用即時盤中,所以用訓練模式測試,理論來說應該是可以的!
至於程式碼是否能再簡化之,就得請總版主幫幫忙了!

N:=300;
if datatype=11 or datatype<=5 then begin
CK:=date<>ref(date,1);
SP:=barslast(CK)+1 LINETHICK0;
OM:=OPENMINUTES(TIME) LINETHICK0;
SP1:=REF(SP,SP) LINETHICK0;
LSP:=ubound(SP) LINETHICK0;
SP1:INTPART(N*SP[LSP-SP[LSP]]/SP1/(OM[ubound(OM)-1]-OM[ubound(OM)-2]));
MA(C,SP1);
end;


由 mead 在 2010-04-06 21:47 發表:

引用:
最初由 KV1566 發表
了解!

那,改成下面這樣試試。應該可以在即時盤中固定住SP1了!
我沒有用即時盤中,所以用訓練模式測試,理論來說應該是可以的!
至於程式碼是否能再簡化之,就得請總版主幫幫忙了!

N:=300;
if datatype=11 or datatype<=5 then begin
CK:=date<>ref(date,1);
SP:=barslast(CK)+1 LINETHICK0;
OM:=OPENMINUTES(TIME) LINETHICK0;
SP1:=REF(SP,SP) LINETHICK0;
LSP:=ubound(SP) LINETHICK0;
SP1:INTPART(N*SP[LSP-SP[LSP]]/SP1/(OM[ubound(OM)-1]-OM[ubound(OM)-2]));
MA(C,SP1);
end;


好 明天盤中我在試試

謝謝KV1566兄的熱心協助

謝謝 感恩


由 mead 在 2010-04-07 09:56 發表:

今天期貨一開盤就測試SP=-1;所以認為有問題而沒再測試
但9:00後再測 可以了ㄋㄟ

明天再測9:00前的狀況


由 KV1566 在 2010-04-07 12:07 發表:

引用:
最初由 mead 發表
今天期貨一開盤就測試SP=-1;所以認為有問題而沒再測試
但9:00後再測 可以了ㄋㄟ

明天再測9:00前的狀況


這是數據取用有碰到誇天的關係,明天9:00前如果要試,要改用下面這組程式。
(又加入了一個ND的控制,程式越來越亂,若不計較就將就用用吧,不然,就得找總版主優化一下了)

N:=300;
if datatype=11 or datatype<=5 then begin
CK:=date<>ref(date,1);
SP:=barslast(CK)+1 LINETHICK0;
OM:=OPENMINUTES(TIME) LINETHICK0;
SP1:=REF(SP,SP) LINETHICK0;
LSP:=ubound(SP) LINETHICK0;
dd:=date;
if dd[datacount-1]<>dd[datacount-2] then ND:=1 else ND:=0;
SP1:INTPART(N*SP[LSP-SP[LSP]]/SP1/(OM[ubound(OM)-1+ND]-OM[ubound(OM)-2+ND]));
MA(C,SP1);
end;


由 mead 在 2010-04-07 14:37 發表:

引用:
最初由 KV1566 發表
這是數據取用有碰到誇天的關係,明天9:00前如果要試,要改用下面這組程式。
(又加入了一個ND的控制,程式越來越亂,若不計較就將就用用吧,不然,就得找總版主優化一下了)

N:=300;
if datatype=11 or datatype<=5 then begin
CK:=date<>ref(date,1);
SP:=barslast(CK)+1 LINETHICK0;
OM:=OPENMINUTES(TIME) LINETHICK0;
SP1:=REF(SP,SP) LINETHICK0;
LSP:=ubound(SP) LINETHICK0;
dd:=date;
if dd[datacount-1]<>dd[datacount-2] then ND:=1 else ND:=0;
SP1:INTPART(N*SP[LSP-SP[LSP]]/SP1/(OM[ubound(OM)-1+ND]-OM[ubound(OM)-2+ND]));
MA(C,SP1);
end;



好 明天我試試

謝謝您熱心的協助

感恩


由 ccutmis 在 2010-04-08 09:23 發表:

引用:
最初由 mead 發表
好 明天我試試

謝謝您熱心的協助

感恩



參考 總版主及KV1566兄的程式碼,個人作了一些修改,
剛才試過台當月、加權及台積電各分鐘的週期,
跟大家分享^^,希望有幫助!

N:=300;
if datatype=11 or datatype<=5 then begin
OM:=OPENMINUTES(TIME);
MX:=OM-ref(OM,1); //取得當前週期
MX:=if(MX<0,ref(MX,2),MX); //修正跨日問題
SP1:N/MX,linethick0;
MA(CLOSE,SP1);
end;


由 mead 在 2010-04-08 09:48 發表:

引用:
最初由 ccutmis 發表
參考 總版主及KV1566兄的程式碼,個人作了一些修改,
剛才試過台當月、加權及台積電各分鐘的週期,
跟大家分享^^,希望有幫助!

N:=300;
if datatype=11 or datatype<=5 then begin
OM:=OPENMINUTES(TIME);
MX:=OM-ref(OM,1); //取得當前週期
MX:=if(MX<0,ref(MX,2),MX); //修正跨日問題
SP1:N/MX,linethick0;
MA(CLOSE,SP1);
end;



謝謝 ccutmis 大大您熱心的參予和協助

我測試看看

謝謝 感恩


由 cgjj 在 2010-04-08 10:05 發表:

引用:
最初由 cgjj 發表
CK:=date<>ref(date,1);
SP:=barslast(CK)+1;
N:ref(SP,SP) linethick0;
N:=N[datacount];
MA(C,N);

引用:
最初由 mead 發表
可以了 謝謝總版主的幫忙

謝謝 感恩



這段在加權和期貨都可以用
不是已經確認 ok 了嗎, 還有什麼問題嗎?


由 mead 在 2010-04-08 10:07 發表:

ccutmis大大 不行ㄋㄟ
你的SP1無法固定

以三分K來說好了;在還沒到三分K時
第一個分SP1=300
第二個分SP1=150
第三個分SP1=100(此時已滿足三分鐘)

而我們要的是任何時刻;在三分K的日均線是ma(C,100);
在六分K的日均線是ma(C,50);

餘類推

以上報告測試結果 謝謝您熱心協助

感恩


由 ccutmis 在 2010-04-08 11:34 發表:

引用:
最初由 mead 發表
ccutmis大大 不行ㄋㄟ
你的SP1無法固定

以三分K來說好了;在還沒到三分K時
第一個分SP1=300
第二個分SP1=150
第三個分SP1=100(此時已滿足三分鐘)

而我們要的是任何時刻;在三分K的日均線是ma(C,100);
在六分K的日均線是ma(C,50);

餘類推

以上報告測試結果 謝謝您熱心協助

感恩



不好意思,是我測試時沒考慮到分鐘線不足的情況,
這邊再加上分鐘線不足時的處理,希望合用
對了,另外有個地方請您留意...就是在開盤第一分鐘時是否正常


N:=300;
if datatype=11 or datatype<=5 then begin
OM:=OPENMINUTES(TIME);
MX:=OM-ref(OM,1); //取得當前週期
MX:=if(MX<0,ref(MX,2),MX); //修正跨日問題
MX:=if(MX<>ref(MX,1),ref(MX,2),MX); //修正分鐘線不足的問題
SP1:INTPART(N/MX),linethick0;
MA(CLOSE,SP1);
end;

{剛才測試到在加權會有點小問題,所以改了一些地方}
{測試的結果跟總版主及KV兄的結果相同}


由 mead 在 2010-04-08 14:42 發表:

引用:
最初由 ccutmis 發表
不好意思,是我測試時沒考慮到分鐘線不足的情況,
這邊再加上分鐘線不足時的處理,希望合用
對了,另外有個地方請您留意...就是在開盤第一分鐘時是否正常


N:=300;
if datatype=11 or datatype<=5 then begin
OM:=OPENMINUTES(TIME);
MX:=OM-ref(OM,1); //取得當前週期
MX:=if(MX<0,ref(MX,2),MX); //修正跨日問題
MX:=if(MX<>ref(MX,1),ref(MX,2),MX); //修正分鐘線不足的問題
SP1:INTPART(N/MX),linethick0;
MA(CLOSE,SP1);
end;

{剛才測試到在加權會有點小問題,所以改了一些地方}
{測試的結果跟總版主及KV兄的結果相同}



謝謝 明天我再測測看

感恩


由 mead 在 2010-04-09 08:51 發表:

經測試都OK了

謝謝總版主、KV156兄、ccutmis兄的熱心協助

謝謝 感恩


由 peter109 在 2010-04-09 15:54 發表:

引用:
最初由 ccutmis 發表
不好意思,是我測試時沒考慮到分鐘線不足的情況,
這邊再加上分鐘線不足時的處理,希望合用
對了,另外有個地方請您留意...就是在開盤第一分鐘時是否正常


N:=300;
if datatype=11 or datatype<=5 then begin
OM:=OPENMINUTES(TIME);
MX:=OM-ref(OM,1); //取得當前週期
MX:=if(MX<0,ref(MX,2),MX); //修正跨日問題
MX:=if(MX<>ref(MX,1),ref(MX,2),MX); //修正分鐘線不足的問題
SP1:INTPART(N/MX),linethick0;
MA(CLOSE,SP1);
end;

{剛才測試到在加權會有點小問題,所以改了一些地方}
{測試的結果跟總版主及KV兄的結果相同}



不錯唷 給您拍拍手

__________________
至誠能勝天下至偽
至拙能勝天下至巧


由 ccutmis 在 2010-04-09 19:08 發表:

引用:
最初由 peter109 發表
不錯唷 給您拍拍手


還有很多不足的地方要學習~謝謝PETER


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


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

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