 |
www999
初級會員
註冊日期: Jan 2005
來 自:
文章數量: 22 |
[問題]畫線問題
小弟目前想做一個在分線上 每日低點到後面有破這個低點的k棒連一條線,沒破就連到最後的k棒.
也已經將每日低點找到 記錄在nLL變數裡:
當nLL=0 表不是低點, nLL記錄是非0表示此根k棒是低點並將最低價記錄於nLL裡
並在當日的nStopLL變數中記錄再過幾根k棒會破此日低價
也在當日的nStopKN變數中記錄破此日低價的序號
可是就是找不出如何畫出這2個k棒中的方法,希望能幫我解惑 感恩!!
nKN:=BarsCount( Close ) ;
nL:=low;
nLL:=low;
nStopLL:=low;
nStopKN:=low;
nDate:=Date;
<%
VL = FFL.VarData("nL")
VDate = FFL.VarData("nDate")
VKN = FFL.VarData("nKN")
VLL = FFL.VarData("nLL")
VStopLL = FFL.VarData("nStopLL")
VStopKN = FFL.VarData("nStopKN")
LT = UBound( VLL )
nTemp = 0
nM = 0
for m= 1 to LT-1
VLL(m)=0
VStopLL(m)=0
VStopKN(m)=0
if VDate(m)<>VDate(m-1) then
VLL(nM) = VL(nM)
nTemp = VL(m)
nM = m
else
if nTemp>VL(m) then
nTemp = VL(m)
nM = m
end if
end if
next
for m= 1 to LT-1
if VLL(m)<>0 then
for n= m+1 to LT-1
if VL(n)<VLL(m) then
VStopLL(m) = n - m
VStopKN(m) = VKN(n)
n = LT-1
end if
next
if VStopLL(m)=0 then
VStopLL(m) = LT-1-m
VStopKN(m) = VKN(LT-1)
end if
end if
next
FFL.VarData( "nLL" ) = VLL
FFL.VarData( "nStopLL" ) = VStopLL
FFL.VarData( "nStopKN" ) = VStopKN
%>
DRAWICON(nLL<>0,low-3,1);
DrawNumber(nLL<>0,nLL-5,nStopLL,1);
DrawNumber(nLL<>0,nLL-10,nStopKN,1);
|
|
向版主報告此篇 |  |
|
2007-11-28 00:26 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18094 |
回覆: [問題]畫線問題
引用: 最初由 www999 發表
小弟目前想做一個在分線上 每日低點到後面有破這個低點的k棒連一條線,沒破就連到最後的k棒.
也已經將每日低點找到 記錄在nLL變數裡:
當nLL=0 表不是低點, nLL記錄是非0表示此根k棒是低點並將最低價記錄於nLL裡
並在當日的nStopLL變數中記錄再過幾根k棒會破此日低價
也在當日的nStopKN變數中記錄破此日低價的序號
可是就是找不出如何畫出這2個k棒中的方法,希望能幫我解惑 感恩!!
..........
看看這是不是您要的
原碼:
CK:=barpos=1 or date<>ref(date,1); //日首根
CK2:=refx(CK,1) or barpos=datacount; //日未根
LP:=LLVBARS(Low,BARSLAST(CK)+1);
DL:=SETVAL(CK2,0,-LP,1);
DL:=if(ref(DL,1)=DL,0,DL); //為今日最低
L1P:=ref(LP,BARSLAST(CK)+1)+BARSLAST(CK)+1;
L1:=ref(LOW,L1P); //前日最低價
DR:=LOW<L1 and SUM(LOW<L1,BARSLAST(CK)+1)=1; //為破前日最低首根
DR:=if(CK2 and SUM(DR,BARSLAST(CK)+1)=0,1,DR); //未破前日最低則設今日最未根
DRAWSL(DR,low,(Low-L1)/L1P,L1P,1);
|
|
向版主報告此篇 |  |
|
2007-11-28 13:31 |
|
|
|  |
 |
www999
初級會員
註冊日期: Jan 2005
來 自:
文章數量: 22 |
先謝謝版大的解答
關於版大的程式有3的地方 跟小弟想的條件有點出入 不好意思沒清楚表答
每天的分線最低價開始畫及每天產生1根線是正確的.出入的地方
1.繪出來的是水平線
2.不只是判斷隔日是否有跌破這條水平線,也許有可能在10天後的盤中某根k線才做跌破,也可能3天30天都可能
而水平線的終點就是在跌破的那根k線為止(水平線的高度就是您計算的分線日低點)
3.假如這個水平線到(資料的最後一根k棒例如今天11/28號13:45)那根也未跌破時 就要將水平線的終點設在有資料的
最後一根k棒
|
|
向版主報告此篇 |  |
|
2007-11-28 14:49 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18094 |
引用: 最初由 www999 發表
先謝謝版大的解答
關於版大的程式有3的地方 跟小弟想的條件有點出入 不好意思沒清楚表答
每天的分線最低價開始畫及每天產生1根線是正確的.出入的地方
1.繪出來的是水平線
2.不只是判斷隔日是否有跌破這條水平線,也許有可能在10天後的盤中某根k線才做跌破,也可能3天30天都可能
而水平線的終點就是在跌破的那根k線為止(水平線的高度就是您計算的分線日低點)
3.假如這個水平線到(資料的最後一根k棒例如今天11/28號13:45)那根也未跌破時 就要將水平線的終點設在有資料的
最後一根k棒
原碼:
LL:=Low;
CK:=barpos=1 or date<>ref(date,1); //日首根
CK2:=refx(CK,1) or barpos=datacount; //日未根
LP:=LLVBARS(LL,BARSLAST(CK)+1);
DL:=SETVAL(CK2,0,-LP,1);
DL:=if(ref(DL,1)=DL,0,DL); //為今日最低
DRP:=C*0;
for i=lbound(DL) to datacount do begin
if DL[i]=1 then begin
for j=i+1 to datacount do begin
if LL[j]<LL[i] then break;
end;
J:=if(j>datacount,datacount,j);
DRP[i]:=j-i+1;
end;
end;
DRAWSL(DL and DRP>0,LL,0,DRP,3);
|
|
向版主報告此篇 |  |
|
2007-11-28 16:23 |
|
|
|  |
 |
www999
初級會員
註冊日期: Jan 2005
來 自:
文章數量: 22 |
版主您好:
昨天花了一天的時間研究後 總算比較確認奇狐勝券公式執行的模式
當指標開啟時整個計算一次,之後要等到即時盤k棒增加或k棒變動才會再整個計算一次.
但就減少總K棒數來說,會使得這個程式便得無效,因為已破過日低的不會再破一次,而那些到最後k棒未破的低點都常在數千根或數萬根之前
以我的看盤時間來說 開盤時開機看 收盤研究後關機,
今天是不必即時算出今天的日低k棒的位置,因為那是隔天才會判斷是否有破低的問題,而我也早關機了.
所以這意謂著,算日低k棒的這幾行程式,其實只要開啟指標時,算一次就足夠了,以減低即時盤算的負擔
當然更進階的判斷是連有破過低訊號都不用再判斷...
所以我想請問的是 如何做才能讓計算日低k棒部份 只在開啟指標後做1次 其後都保留供後面計算,降低即時盤計算負擔,又能保有多k線計算的功能 謝謝 
|
|
向版主報告此篇 |  |
|
2007-11-29 11:34 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|