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

奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- MA(20)向上或向下 (http://www.chiefox.com.tw/bbs/showthread.php?threadid=11956)


由 SK393217 在 2009-08-13 16:22 發表:

不高興 MA(20)向上或向下

我是新手,我想請教前輩們,以下公式要如何寫.
1.多空指標線為MA(20).
2. MA 20向上為紅線.走平為白線,向下為綠線.

謝謝


由 KV1566 在 2009-08-13 16:34 發表:

使用partline!

原碼:
input:N(20,0,999); 多空指標:MA(C,N); partline(多空指標>ref(多空指標,1),多空指標),colorRed; partline(多空指標=ref(多空指標,1),多空指標),colorWhite; partline(多空指標<ref(多空指標,1),多空指標),colorGreen;


由 crownschen 在 2009-08-14 16:38 發表:

請問 本公式若是改為只有二色而已,應如何撰寫呢?
1. 由上而下轉折時,〈走平〉及〈向下〉為綠線。
2. 由下而上轉折時,〈走平〉及〈向上〉為紅線。
說明:同樣是〈走平〉,於峰部是綠線,於谷部則是紅線。
拜託!幫幫忙,指導一下。


由 KV1566 在 2009-08-14 17:40 發表:

引用:
最初由 crownschen 發表
請問 本公式若是改為只有二色而已,應如何撰寫呢?
1. 由上而下轉折時,〈走平〉及〈向下〉為綠線。
2. 由下而上轉折時,〈走平〉及〈向上〉為紅線。
說明:同樣是〈走平〉,於峰部是綠線,於谷部則是紅線。
拜託!幫幫忙,指導一下。


這個比較難,得動點手腳了!我幫你寫,但不要問我原理,自己去思考,這樣才會進步!

原碼:
input:N(20,0,999); 多空指標:MA(C,N),linethick0; 多空指標方向:=多空指標*0; for i=ubound(多空指標) downto lbound(多空指標)+1 do begin if 多空指標[i]>多空指標[i-1] then 多空指標方向[i]:=1; else if 多空指標[i]<多空指標[i-1] then 多空指標方向[i]:=0; else 多空指標方向[i]:=多空指標方向[i+1]; end; partline(多空指標方向,多空指標),colorRed; partline(not(多空指標方向),多空指標),colorGreen;


由 crownschen 在 2009-08-15 21:46 發表:

非常謝謝您的指導,您實在太高明了。我非常佩服您,非常感激您。
對您千謝萬謝,並以90度鞠躬,向您行個大禮。並竭誠地祝福您,蒸蒸日上,鵬程萬里,輝煌騰達。


由 KV1566 在 2009-08-16 00:33 發表:

引用:
最初由 crownschen 發表
非常謝謝您的指導,您實在太高明了。我非常佩服您,非常感激您。
對您千謝萬謝,並以90度鞠躬,向您行個大禮。並竭誠地祝福您,蒸蒸日上,鵬程萬里,輝煌騰達。


您太客氣了!

不好意思,那個程式中有一點點小小的錯誤!當最後一天的平均線若是剛好走平時,便會出錯!
因此,將之稍微修改如下:
原碼:
input:N(20,0,999); 多空指標:MA(C,N),linethick0; 多空指標方向:=多空指標*0; for i=ubound(多空指標) downto lbound(多空指標)+1 do begin if 多空指標[i]>多空指標[i-1] then 多空指標方向[i]:=1; else if 多空指標[i]<多空指標[i-1] then 多空指標方向[i]:=0; else if i<>ubound(多空指標) then 多空指標方向[i]:=多空指標方向[i+1]; else 多空指標方向[i]:=多空指標方向[i-1]; end; partline(多空指標方向,多空指標),colorRed; partline(not(多空指標方向),多空指標),colorGreen;


由 SK393217 在 2009-08-30 10:16 發表:

作一點修改,該如何寫??

若我要改成,該如何寫??

1.空轉多:MA20轉為向上且收價站上MA20轉為多頭,直到MA20向下且收價跌破MA10才轉為空頭. 中間如果有MA10向下但收價未跌破MA10仍維持原本多頭.
2.多轉空:MA20轉為向下且收價跌破MA20轉為空頭,直到MA20向上且收價站上MA20才轉為多頭.中間如果有MA20向上但收價未站上MA20仍維持原本空頭.


由 KV1566 在 2009-08-30 18:11 發表:

回覆: 作一點修改,該如何寫??

引用:
最初由 SK393217 發表
若我要改成,該如何寫??

1.空轉多:MA20轉為向上且收價站上MA20轉為多頭,直到MA20向下且收價跌破MA10才轉為空頭. 中間如果有MA10向下但收價未跌破MA10仍維持原本多頭.
2.多轉空:MA20轉為向下且收價跌破MA20轉為空頭,直到MA20向上且收價站上MA20才轉為多頭.中間如果有MA20向上但收價未站上MA20仍維持原本空頭.


你這兩組條件,多空時間是不會完全一致的,所以,分開來寫,你自己再加以修改取捨!
放在圖上方的圈圈是第一條件,紅色為多頭,綠色為空頭
放在圖下方的圈圈是第二條件,一樣,綠色為空頭,紅色為多頭
原碼:
input:P1(10,0,999); input:P2(20,0,999); CC:=C; MA1:ma(C,P1); MA2:ma(C,P2); 多頭:=MA2*0; 空頭:=MA2*0; for i=lbound(多頭)+1 to ubound(多頭) do begin if 多頭[i-1]<>1 and MA2[i]>MA2[i-1] and CC[i]>MA2[i] then 多頭[i]:=1; else if 多頭[i-1]=1 and MA2[i]<MA2[i-1] and CC[i]<MA1[i] then 多頭[i]:=0; else 多頭[i]:=多頭[i-1]; if 空頭[i-1]<>1 and MA2[i]<MA2[i-1] and CC[i]<MA2[i] then 空頭[i]:=1; else if 空頭[i-1]=1 and MA2[i]>MA2[i-1] and CC[i]>MA1[i] then 空頭[i]:=0; else 空頭[i]:=空頭[i-1]; end; drawicon(多頭=1,0,10),align4; drawicon(多頭=0,0,11),align4; drawicon(空頭=1,0,11),align5; drawicon(空頭=0,0,10),align5;


由 SK393217 在 2009-08-30 20:59 發表:

原本的條件有點筆誤,重新修正

對不起,原本的條件有點筆誤,害你寫出來的程式有點複雜,我這個新手也無法看懂,應該全部都是用MA20才對,這樣的話程式是不是會變的比較簡單,再次請教,謝謝


1.空轉多:MA20轉為向上且收價站上MA20轉為多頭,直到MA20向下且收價跌破MA20才轉為空頭. 中間如果有MA20向下但收價未跌破MA20仍維持原本多頭.
2.多轉空:MA20轉為向下且收價跌破MA20轉為空頭,直到MA20向上且收價站上MA20才轉為多頭.中間如果有MA20向上但收價未站上MA20仍維持原本空頭.

我自己用最笨的方法修改,測試ok,但我想問是否可以改得更簡潔??
CC:=C;
MAN:ma(C,8);

UP:=MAN*0;
DW:=MAN*0;
for i=lbound(UP)+1 to ubound(UP) do begin
if UP[i-1]<>1 and MAN[i]>MAN[i-1] and CC[i]>MAN[i] then UP[i]:=1;
else if UP[i-1]=1 and MAN[i]<MAN[i-1] and CC[i]<MAN[i] then UP[i]:=0;
else UP[i]:=UP[i-1];
if DW[i-1]<>1 and MAN[i]<MAN[i-1] and CC[i]<MAN[i] then DW[i]:=1;
else if DW[i-1]=1 and MAN[i]>MAN[i-1] and CC[i]>MAN[i] then DW[i]:=0;
else DW[i]:=DW[i-1];
end;
PARTLINE(UP,MAN) colorred,linethick2;
PARTLINE(DW,MAN) colorgreen,linethick2;


由 KV1566 在 2009-09-01 08:42 發表:

回覆: 原本的條件有點筆誤,重新修正

引用:
最初由 SK393217 發表
對不起,原本的條件有點筆誤,害你寫出來的程式有點複雜,我這個新手也無法看懂,應該全部都是用MA20才對,這樣的話程式是不是會變的比較簡單,再次請教,謝謝


1.空轉多:MA20轉為向上且收價站上MA20轉為多頭,直到MA20向下且收價跌破MA20才轉為空頭. 中間如果有MA20向下但收價未跌破MA20仍維持原本多頭.
2.多轉空:MA20轉為向下且收價跌破MA20轉為空頭,直到MA20向上且收價站上MA20才轉為多頭.中間如果有MA20向上但收價未站上MA20仍維持原本空頭.

我自己用最笨的方法修改,測試ok,但我想問是否可以改得更簡潔??
CC:=C;
MAN:ma(C,8);

UP:=MAN*0;
DW:=MAN*0;
for i=lbound(UP)+1 to ubound(UP) do begin
if UP[i-1]<>1 and MAN[i]>MAN[i-1] and CC[i]>MAN[i] then UP[i]:=1;
else if UP[i-1]=1 and MAN[i]<MAN[i-1] and CC[i]<MAN[i] then UP[i]:=0;
else UP[i]:=UP[i-1];
if DW[i-1]<>1 and MAN[i]<MAN[i-1] and CC[i]<MAN[i] then DW[i]:=1;
else if DW[i-1]=1 and MAN[i]>MAN[i-1] and CC[i]>MAN[i] then DW[i]:=0;
else DW[i]:=DW[i-1];
end;
PARTLINE(UP,MAN) colorred,linethick2;
PARTLINE(DW,MAN) colorgreen,linethick2;


因為你的UP與DW所發出的多空訊息是一致的,便不需要再分為兩組判斷,可直接用UP這一組即可!
UP=1為原本的UP=1,UP=0為DW=1。這樣就可縮減程式碼了!
原碼:
CC:=C; MAN:ma(C,8); UP:=MAN*0; for i=lbound(UP)+1 to ubound(UP) do begin if UP[i-1]<>1 and MAN[i]>MAN[i-1] and CC[i]>MAN[i] then UP[i]:=1; else if UP[i-1]=1 and MAN[i]<MAN[i-1] and CC[i]<MAN[i] then UP[i]:=0; else UP[i]:=UP[i-1]; end; PARTLINE(UP=1,MAN) colorred,linethick2; PARTLINE(UP=0,MAN) colorgreen,linethick2;


由 SK393217 在 2009-09-02 21:33 發表:

如何產生一條水平的虛線??

另再請教KV先進:
我的公式已設好BB及BL產生的條件,
我想在BB的低點產生一條水平的虛線,向右一直延伸直到BL.

感激.


由 KV1566 在 2009-09-02 22:52 發表:

回覆: 如何產生一條水平的虛線??

引用:
最初由 SK393217 發表
另再請教KV先進:
我的公式已設好BB及BL產生的條件,
我想在BB的低點產生一條水平的虛線,向右一直延伸直到BL.
感激.


看這是不是你要的結果,若不是,你可以依此加以修正:
原碼:
CC:=C; MAN:ma(C,8); UP:=MAN*0; for i=lbound(UP)+1 to ubound(UP) do begin if UP[i-1]<>1 and MAN[i]>MAN[i-1] and CC[i]>MAN[i] then UP[i]:=1; else if UP[i-1]=1 and MAN[i]<MAN[i-1] and CC[i]<MAN[i] then UP[i]:=-1; else UP[i]:=UP[i-1]; end; PARTLINE(UP=1,MAN) colorred,linethick2; PARTLINE(UP=-1,MAN) colorgreen,linethick2; for i=ubound(UP)-1 downto lbound(UP) do begin if UP[i]=UP[i+1] then UP[i+1]:=0; end; x1:=barslast(UP); partline(x1<>0 and ref(UP,x1)=1,ref(L,x1)),colorRed,linedot; partline(x1<>0 and ref(UP,x1)=-1,ref(H,x1)),colorGreen,linedot;


由 cgjj 在 2009-09-03 09:22 發表:

回覆: 如何產生一條水平的虛線??

引用:
最初由 SK393217 發表
另再請教KV先進:
我的公式已設好BB及BL產生的條件,
我想在BB的低點產生一條水平的虛線,向右一直延伸直到BL.

感激.



您這問題不是與下面連結的問題是同一個嗎
http://www.chiefox.com.tw/bbs/showt...53540#post53540

也跟您說過, 同一問題不要一再重複發問
http://www.chiefox.com.tw/bbs/showt...53530#post53530

給您提示
http://www.chiefox.com.tw/bbs/showt...53548#post53548

是要希望引導您去思考, 嘗試自己解決
這樣才能有所成長
若您思考不出來, 可於原發問處回覆我們
把難處提出我們會協助您
不要又把同問題又另起文章發問

重複發問
對論壇管理者和觀看者都是個困擾
讓A網友回您, B網友也回您
不同地方卻是同一問題
也會造成資源重複浪費


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


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

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