 |
KV1566
中級會員
註冊日期: Jun 2009
來 自:
文章數量: 95 |
使用partline!
原碼: input:N(20,0,999);
多空指標:MA(C,N);
partline(多空指標>ref(多空指標,1),多空指標),colorRed;
partline(多空指標=ref(多空指標,1),多空指標),colorWhite;
partline(多空指標<ref(多空指標,1),多空指標),colorGreen;
|
|
向版主報告此篇 |  |
|
2009-08-13 16:34 |
|
|
|  |
 |
crownschen
資深會員
註冊日期: Aug 2008
來 自:
文章數量: 154 |
請問 本公式若是改為只有二色而已,應如何撰寫呢?
1. 由上而下轉折時,〈走平〉及〈向下〉為綠線。
2. 由下而上轉折時,〈走平〉及〈向上〉為紅線。
說明:同樣是〈走平〉,於峰部是綠線,於谷部則是紅線。
拜託!幫幫忙,指導一下。
|
|
向版主報告此篇 |  |
|
2009-08-14 16:38 |
|
|
|  |
 |
KV1566
中級會員
註冊日期: Jun 2009
來 自:
文章數量: 95 |
引用: 最初由 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;
|
|
向版主報告此篇 |  |
|
2009-08-14 17:40 |
|
|
|  |
 |
crownschen
資深會員
註冊日期: Aug 2008
來 自:
文章數量: 154 |
非常謝謝您的指導,您實在太高明了。我非常佩服您,非常感激您。
對您千謝萬謝,並以90度鞠躬,向您行個大禮。並竭誠地祝福您,蒸蒸日上,鵬程萬里,輝煌騰達。
|
|
向版主報告此篇 |  |
|
2009-08-15 21:46 |
|
|
|  |
 |
SK393217
中級會員
註冊日期: Aug 2009
來 自:
文章數量: 42 |
作一點修改,該如何寫??
若我要改成,該如何寫??
1.空轉多:MA20轉為向上且收價站上MA20轉為多頭,直到MA20向下且收價跌破MA10才轉為空頭. 中間如果有MA10向下但收價未跌破MA10仍維持原本多頭.
2.多轉空:MA20轉為向下且收價跌破MA20轉為空頭,直到MA20向上且收價站上MA20才轉為多頭.中間如果有MA20向上但收價未站上MA20仍維持原本空頭.
|
|
向版主報告此篇 |  |
|
2009-08-30 10:16 |
|
|
|  |
 |
KV1566
中級會員
註冊日期: Jun 2009
來 自:
文章數量: 95 |
回覆: 作一點修改,該如何寫??
引用: 最初由 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;
|
|
向版主報告此篇 |  |
|
2009-08-30 18:11 |
|
|
|  |
 |
SK393217
中級會員
註冊日期: Aug 2009
來 自:
文章數量: 42 |
原本的條件有點筆誤,重新修正
對不起,原本的條件有點筆誤,害你寫出來的程式有點複雜,我這個新手也無法看懂,應該全部都是用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;
|
最後由 SK393217 在 2009-08-31 14:03 編輯 |
向版主報告此篇 |  |
|
2009-08-30 20:59 |
|
|
|  |
 |
KV1566
中級會員
註冊日期: Jun 2009
來 自:
文章數量: 95 |
回覆: 原本的條件有點筆誤,重新修正
引用: 最初由 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;
|
|
向版主報告此篇 |  |
|
2009-09-01 08:42 |
|
|
|  |
 |
KV1566
中級會員
註冊日期: Jun 2009
來 自:
文章數量: 95 |
回覆: 如何產生一條水平的虛線??
引用: 最初由 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;
|
|
向版主報告此篇 |  |
|
2009-09-02 22:52 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|