到奇狐勝券首頁 奇狐社區論壇 購買奇狐勝券 試用奇狐勝券
 
論壇首頁 你可以在這裡編輯你的資料,查看短訊,訂閱主題和論壇參數等等 免費會員註冊 會員列表 論壇幫助 論壇日曆 論壇搜索 加入我的最愛 登出論壇  
奇狐社區論壇 : Powered by vBulletin version 2.3.0 奇狐社區論壇 > 指標公式 > 問題交流 > [問題]畫線問題
  上一主題   下一主題
作者
主題 發表新主題    回覆主題
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);

向版主報告此篇 | 查IP位址
Old Post 2007-11-28 00:26
www999 現在離線 點選這裡查看 www999 的個人資料 點選這裡給 www999 傳送一條短訊 查找更多關於 www999 的文章 增加 www999 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

回覆: [問題]畫線問題

引用:
最初由 www999 發表
小弟目前想做一個在分線上 每日低點到後面有破這個低點的k棒連一條線,沒破就連到最後的k棒.
也已經將每日低點找到 記錄在nLL變數裡:
當nLL=0 表不是低點, nLL記錄是非0表示此根k棒是低點並將最低價記錄於nLL裡
並在當日的nStopLL變數中記錄再過幾根k棒會破此日低價
也在當日的nStopKN變數中記錄破此日低價的序號
可是就是找不出如何畫出這2個k棒中的方法,希望能幫我解惑 感恩!!
..........





看看這是不是您要的
原碼:

CK
:=barpos=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);

向版主報告此篇 | 查IP位址
Old Post 2007-11-28 13:31
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
www999
初級會員

註冊日期: Jan 2005
來  自:
文章數量: 22

先謝謝版大的解答

關於版大的程式有3的地方 跟小弟想的條件有點出入 不好意思沒清楚表答

每天的分線最低價開始畫及每天產生1根線是正確的.出入的地方
1.繪出來的是水平線
2.不只是判斷隔日是否有跌破這條水平線,也許有可能在10天後的盤中某根k線才做跌破,也可能3天30天都可能
而水平線的終點就是在跌破的那根k線為止(水平線的高度就是您計算的分線日低點)
3.假如這個水平線到(資料的最後一根k棒例如今天11/28號13:45)那根也未跌破時 就要將水平線的終點設在有資料的
最後一根k棒

向版主報告此篇 | 查IP位址
Old Post 2007-11-28 14:49
www999 現在離線 點選這裡查看 www999 的個人資料 點選這裡給 www999 傳送一條短訊 查找更多關於 www999 的文章 增加 www999 至你的好友列表 編輯/刪除訊息 引用回覆
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=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(DLto datacount do begin
  
if DL[i]=1 then begin
    
for j=i+1 to datacount do begin
      
if LL[j]<LL[ithen break;
    
end;
    
J:=if(j>datacount,datacount,j);
    
DRP[i]:=j-i+1;
  
end;
end;
DRAWSL(DL and DRP>0,LL,0,DRP,3);

向版主報告此篇 | 查IP位址
Old Post 2007-11-28 16:23
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
www999
初級會員

註冊日期: Jan 2005
來  自:
文章數量: 22

感謝版主 解惑 我會好好研究這個寫法的!!

向版主報告此篇 | 查IP位址
Old Post 2007-11-28 16:27
www999 現在離線 點選這裡查看 www999 的個人資料 點選這裡給 www999 傳送一條短訊 查找更多關於 www999 的文章 增加 www999 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

盤中要用, 總K棒數要設少一點喔
它計算的負荷較重喔

向版主報告此篇 | 查IP位址
Old Post 2007-11-28 16:34
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
www999
初級會員

註冊日期: Jan 2005
來  自:
文章數量: 22

版主您好:

昨天花了一天的時間研究後 總算比較確認奇狐勝券公式執行的模式
當指標開啟時整個計算一次,之後要等到即時盤k棒增加或k棒變動才會再整個計算一次.

但就減少總K棒數來說,會使得這個程式便得無效,因為已破過日低的不會再破一次,而那些到最後k棒未破的低點都常在數千根或數萬根之前

以我的看盤時間來說 開盤時開機看 收盤研究後關機,
今天是不必即時算出今天的日低k棒的位置,因為那是隔天才會判斷是否有破低的問題,而我也早關機了.
所以這意謂著,算日低k棒的這幾行程式,其實只要開啟指標時,算一次就足夠了,以減低即時盤算的負擔
當然更進階的判斷是連有破過低訊號都不用再判斷...

所以我想請問的是 如何做才能讓計算日低k棒部份 只在開啟指標後做1次 其後都保留供後面計算,降低即時盤計算負擔,又能保有多k線計算的功能 謝謝

向版主報告此篇 | 查IP位址
Old Post 2007-11-29 11:34
www999 現在離線 點選這裡查看 www999 的個人資料 點選這裡給 www999 傳送一條短訊 查找更多關於 www999 的文章 增加 www999 至你的好友列表 編輯/刪除訊息 引用回覆
cgjj
總版主

註冊日期: Oct 2003
來  自:
文章數量: 18094

應該是您看的非常長吧
很多指標幾千根就已足夠
再遠的線當日要達到也不容易
如何應用您自行多多考量吧

有新數據進來是一定會觸發公式重新計算的
故無法指定開啟指標時做1次,其後都保留供後面計算

有個方式可達到您要的功效
您可以於昨日將公式於最末根有畫出來的線
用畫線工具跟著描繪一次
這樣盤中就不用再套用公式嚕

向版主報告此篇 | 查IP位址
Old Post 2007-11-29 12:39
cgjj 現在離線 點選這裡查看 cgjj 的個人資料 點選這裡給 cgjj 傳送一條短訊 查找更多關於 cgjj 的文章 增加 cgjj 至你的好友列表 編輯/刪除訊息 引用回覆
全部時間均為台灣時間, 現在時間為17:50 發表新主題    回覆主題
  上一主題   下一主題
顯示可列印版本 | 訂閱此主題

論壇跳轉:
主題評分:

論壇規定:
你不可以發表新主題
你不可以回覆文章
你不可以上傳附件
你不可以編輯自己的文章
HTML語法禁止
vB 語法核准
表情符號核准
貼圖語法[IMG]核准
 

本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。

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

簡愛洋行 製作 Copyright 2003-. All Rights Reserved.  聯絡我們