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

註冊日期: Aug 2010
來  自:
文章數量: 22

問題 [求救]程式的答案怪怪的

於宏達電2498的日線,將游標移到2014/4/16當日,可得以下參數的值(請參考附圖):
R_LD3_END =17
R_LD3_START=20
R_LD3 =137
但我的問題是R_LD3應是146
即附圖白色箭頭所指的當天的最低點
我是用以下程式碼去驗証(在程式碼的最後一行)
right_answer:ref(llv(l,20-17),17) linethick0; (其中20和17是R_LD3_END 和R_LD3_START的值)
求得R_LD3是146

上述程式碼是仿效以下的程式碼(到數第二行的程式碼)
R_LD3:ref(llv(l,R_LD3_start-R_LD3_end),R_LD3_end) linethick0;

請問:為何R_LD3的答案137和用最後一行程式碼,所驗証的答案146,二者不同?



完整程式碼如下:

mm:=ma(c,5);
//-------------------------------------------------------
a1:=c>mm ;//and h>ref(h,1);
yy1:=a1;
//-------------------------------------------------------
b1:=c<mm ;//and l<ref(l,1);
xx1:=b1;
//-------------------------------------------------------
a2:= (ref(c,1)>ref(mm,1) AND c<mm);
b2:= (ref(c,1)<ref(mm,1) AND c>mm);
z1:= a2 OR b2;
zz:=z1;


//==========================================================
grebar:=xx1 and not(zz);
redbar:=yy1 and not(zz);

HD1_end:=if(not(redbar) ,barslast(redbar),0);
LD1_end:=if(not(grebar) ,barslast(grebar),0);

first_red:=cross(LD1_end,HD1_end) colorred;
first_gre:=cross(HD1_end,LD1_end) colorgreen;

R_HD2_end:=sumbars(first_gre,1);
R_HD2_start:=ref(LD1_end,R_HD2_end)+R_HD2_end;
R_HD3_end:=ref(sumbars(first_gre,1),R_HD2_start)+R_HD2_start;
R_HD3_start:=ref(LD1_end,R_HD3_end)+R_HD3_end;
R_LD2_end:=ref(sumbars(first_red,1),sumbars(first_gre,1))+sumbars(first_gre,1);
R_LD2_start:=ref(HD1_end,R_LD2_end)+R_LD2_end;
R_LD3_end:ref(sumbars(first_red,1),R_LD2_start)+R_LD2_start;
R_LD3_start:ref(HD1_end,R_LD3_end)+R_LD3_end;

R_HD1:=hhv(h,LD1_end);
R_HD2:=ref(hhv(h,R_HD2_start-R_HD2_end),R_HD2_end);
R_HD3:=ref(hhv(h,R_HD3_start-R_HD3_end),R_HD3_end);
R_LD1:=ref(llv(l,HD1_end),sumbars(first_red,1));
R_LD2:=ref(llv(l,R_LD2_start-R_LD2_end),R_LD2_end);
R_LD3:ref(llv(l,R_LD3_start-R_LD3_end),R_LD3_end) linethick0;

right_answer:ref(llv(l,20-17),17) linethick0;

yoson168 附帶上了此圖片:

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

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

回覆: [求救]程式的答案怪怪的

引用:
最初由 yoson168 發表
於宏達電2498的日線,將游標移到2014/4/16當日,可得以下參數的值(請參考附圖):
R_LD3_END =17
R_LD3_START=20
R_LD3 =137
但我的問題是R_LD3應是146
即附圖白色箭頭所指的當天的最低點
我是用以下程式碼去驗証(在程式碼的最後一行)
right_answer:ref(llv(l,20-17),17) linethick0; (其中20和17是R_LD3_END 和R_LD3_START的值)
求得R_LD3是146

上述程式碼是仿效以下的程式碼(到數第二行的程式碼)
R_LD3:ref(llv(l,R_LD3_start-R_LD3_end),R_LD3_end) linethick0;

請問:為何R_LD3的答案137和用最後一行程式碼,所驗証的答案146,二者不同?

完整程式碼如下:
........略.........



當然是不同囉, 不同才是正確的
因為驗證的方式錯了

宏達電2498 日線 2014/4/16 當根是這三個值沒錯
R_LD3_END =17, R_LD3_START=20, R_LD3 =137

驗證的方法
right_answer:ref(llv(l,20-17),17) linethick0;
紅字的部分, 運用錯誤

解釋如下:
ref(n,17) 是引用前面第17根的n值
對 2014/04/16 日那根來說
是向前取用 2014/3/21 日那根計算出來的 n值
也就是 2014/3/21 日那根計算出來的 llv(l,R_LD3_start-R_LD3_end) 值

對 2014/3/21 日那根來說:
R_LD3_start 為 52, R_LD3_end 為 42
帶入 llv(l,R_LD3_start-R_LD3_end) 算式中
是計算 llv(l,52-42)

2014/04/16 日那根
是 向前取用 2014/3/21 日那根算出的 llv(l,52-42) 值

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

註冊日期: Aug 2010
來  自:
文章數量: 22

謝謝詳細解答,辛苦了!
再請教您:
那我程式應如何寫,才可獲得我要的答案呢? 即R_LD3應是146(先前第20~17根k線的最低點)

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

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

引用:
最初由 yoson168 發表
謝謝詳細解答,辛苦了!
再請教您:
那我程式應如何寫,才可獲得我要的答案呢? 即R_LD3應是146(先前第20~17根k線的最低點)



按您前面定義的規則
宏達電2498 日線 2014/4/16
R_LD3 應是 137 才對, 而非 146

故, 可能不是 "如何寫?" 的問題

應該是您要如何定義調整規則
規則會影響決定計算結果

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

註冊日期: Aug 2010
來  自:
文章數量: 22

我把我的提問簡潔一下:
在不用ref 的前提下,我如何求得在今天之前的第20到第17根k線之間的最低點
還有什麼涵數或技巧可用?

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

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

引用:
最初由 yoson168 發表
我把我的提問簡潔一下:
在不用ref 的前提下,我如何求得在今天之前的第20到第17根k線之間的最低點
還有什麼涵數或技巧可用?



ref 是必要的
雖可用 變數[n] 方法來直接抓取某一根值, 但就沒那樣便利了

就您現在提的這個例子:
我如何求得在今天之前的第20到第17根k線之間的最低點?
之前的第17根到第20根之間, 共四根K棒
處理方法如下:
ref(LLV(L,4),17);

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

註冊日期: Aug 2010
來  自:
文章數量: 22

TKS,
我再從程式的邏輯去思考

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

論壇跳轉:
主題評分:

論壇規定:
你不可以發表新主題
你不可以回覆文章
你不可以上傳附件
你不可以編輯自己的文章
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.  聯絡我們