 |
Markchu7
資深會員
註冊日期: Nov 2007
來 自:
文章數量: 1518 |
[問題]是否須用到迴圈請協助!
WMAH:=IF(DBCK,H,MA((2*H+XC)/3,MM2));
WMAL:=IF(DBCK,L,MA((2*L+XC)/3,MM2));
TOP:HHV(WMAH,34);
BOT:LLV(WMAL,34);
MM13RG:MIN(20,MAX(2,MA(H-L,MM13)));
SPOINT34:=WMAH=HHV(WMAH,34),LINETHICK;
BPOINT34:=WMAL=LLV(WMAL,34),LINETHICK;
DNSP:BARSLAST(SPOINT34)+1,LINETHICK;
UPSP:BARSLAST(BPOINT34)+1,LINETHICK;
DNSTOP:LLV(MIN(TOP,LLV(WMAH,DNSP)+MM13RG),DNSP),LINETHICK;
UPSTOP:HHV(MAX(BOT,HHV(WMAL,UPSP)-MM13RG),UPSP),LINETHICK;
以上是我的源碼!以SPOINT34規則為例!
我想讓'收盤價跌破UPSTOP N根K棒也成立'並重新計算DNSTOP,這樣就有一條新的DNSTOP!當'收盤價站上新的DNSTOP N根K棒'則BPOINT34也成立'並重新計算新的UPSTOP,如此循環不斷!
像這樣重複將計算出的結果,再丟回條件再作計算,實在超出能力範圍,希望版主協助!感恩!
|
最後由 Markchu7 在 2020-04-08 10:57 編輯 |
向版主報告此篇 |  |
|
2020-04-08 10:54 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18190 |
回覆: [問題]是否須用到迴圈請協助!
引用: 最初由 Markchu7 發表
WMAH:=IF(DBCK,H,MA((2*H+XC)/3,MM2));
WMAL:=IF(DBCK,L,MA((2*L+XC)/3,MM2));
TOP:HHV(WMAH,34);
BOT:LLV(WMAL,34);
MM13RG:MIN(20,MAX(2,MA(H-L,MM13)));
SPOINT34:=WMAH=HHV(WMAH,34),LINETHICK;
BPOINT34:=WMAL=LLV(WMAL,34),LINETHICK;
DNSP:BARSLAST(SPOINT34)+1,LINETHICK;
UPSP:BARSLAST(BPOINT34)+1,LINETHICK;
DNSTOP:LLV(MIN(TOP,LLV(WMAH,DNSP)+MM13RG),DNSP),LINETHICK;
UPSTOP:HHV(MAX(BOT,HHV(WMAL,UPSP)-MM13RG),UPSP),LINETHICK;
以上是我的源碼!以SPOINT34規則為例!
我想讓'收盤價跌破UPSTOP N根K棒也成立'並重新計算DNSTOP,這樣就有一條新的DNSTOP!當'收盤價站上新的DNSTOP N根K棒'則BPOINT34也成立'並重新計算新的UPSTOP,如此循環不斷!
像這樣重複將計算出的結果,再丟回條件再作計算,實在超出能力範圍,希望版主協助!感恩!
所有的計算根基都是在 HHV(WMAH,34)
並沒有重新計算的空間吧,因為34 是定值
|
|
向版主報告此篇 |  |
|
2020-04-08 11:19 |
|
|
|  |
 |
Markchu7
資深會員
註冊日期: Nov 2007
來 自:
文章數量: 1518 |
對不起!沒說清楚!
正式的條件式應該是如此:
SPOINT34:=WMAH=HHV(WMAH,34) OR CROSS(ALL(C<UPSTOP,N),0.8);
那是否有迴圈的問題?
門外漢的傻問題,見笑了!
|
|
向版主報告此篇 |  |
|
2020-04-08 11:47 |
|
|
|  |
 |
Markchu7
資深會員
註冊日期: Nov 2007
來 自:
文章數量: 1518 |
所以說是門外漢!定值?不懂!
是要數列嗎?那這樣可以嗎?
DBCK:=(DATATYPE<>12 AND ISREGULARFBAR) or TRADEDATE<>REF(TRADEDATE,1) or BARPOS=1 OR (DATATYPE=12 AND TIME=084520),LINETHICK;
SP:=BARSLAST(DBCK)+1,LINETHICK;
MM34:=IF(SP<=34,SP,34);
|
|
向版主報告此篇 |  |
|
2020-04-08 13:04 |
|
|
|  |
 |
Markchu7
資深會員
註冊日期: Nov 2007
來 自:
文章數量: 1518 |
這是公式的全部!
那就不考慮SPOINT34的部分!
規則更改如下:
SPOINT:CROSS(ALL(C<UPSTOP,IF(UPSP<M,N1,N)),0.8);就重新計算DNSTOP!
BPOINT:CROSS(ALL(C>DNSTOP,IF(DNSP<M,N1,N)),0.8);就重新計算UPSTOP!
如此重複循環,請問版主是否可行?若可行就有勞版主協助!感恩!
|
最後由 Markchu7 在 2020-04-08 16:52 編輯 |
向版主報告此篇 |  |
|
2020-04-08 16:45 |
|
|
|  |
 |
Markchu7
資深會員
註冊日期: Nov 2007
來 自:
文章數量: 1518 |
對不起!疏忽一些小細節!補足後的源碼,請版主協助!
DBCK:=(DATATYPE<>12 AND ISREGULARFBAR) or TRADEDATE<>REF(TRADEDATE,1) or BARPOS=1 OR (DATATYPE=12 AND TIME=084520),LINETHICK;
SP:=BARSLAST(DBCK)+1,LINETHICK;
MM2:=IF(SP<=2,SP,2);
MM13:=IF(SP<=13,SP,13);
MM34:=IF(SP<=34,SP,34);
XC:=(O+H+L+C*3)/6;
WMAH:=IF(DBCK,H,MA((2*H+XC)/3,MM2));
WMAL:=IF(DBCK,L,MA((2*L+XC)/3,MM2));
TOP:HHV(WMAH,MM34),COLOR00FF00,LINETHICK3;
BOT:LLV(WMAL,MM34),COLORFF00FF,LINETHICK3;
MM13RG:MIN(20,MAX(2,MA(H-L,MM13)));
SPOINT34:=WMAH=HHV(WMAH,MM34),LINETHICK,LINETHICK;
BPOINT34:=WMAL=LLV(WMAL,MM34),LINETHICK;
DNSP:BARSLAST(SPOINT34)+1,LINETHICK;
UPSP:BARSLAST(BPOINT34)+1,LINETHICK;
DNSTOP:LLV(MIN(TOP,LLV(WMAH,DNSP)+MM13RG),DNSP),COLORBLUE,LINETHICK1;
UPSTOP:HHV(MAX(BOT,HHV(WMAL,UPSP)-MM13RG),UPSP),COLORRED,LINETHICK1;
SPOINT:CROSS(ALL(C<UPSTOP,IF(UPSP<M,N1,N)),0.8);//重新計算DNSTOP!
BPOINT:CROSS(ALL(C>DNSTOP,IF(DNSP<M,N1,N)),0.8);//重新計算UPSTOP!
KLINE(O,H,L,C,0);
Markchu7 附帶上了此圖片:
|
|
向版主報告此篇 |  |
|
2020-04-08 19:27 |
|
|
|  |
 |
cgjj
總版主

註冊日期: Oct 2003
來 自:
文章數量: 18190 |
引用: 最初由 Markchu7 發表
對不起!疏忽一些小細節!補足後的源碼,請版主協助!
DBCK:=(DATATYPE<>12 AND ISREGULARFBAR) or TRADEDATE<>REF(TRADEDATE,1) or BARPOS=1 OR (DATATYPE=12 AND TIME=084520),LINETHICK;
SP:=BARSLAST(DBCK)+1,LINETHICK;
MM2:=IF(SP<=2,SP,2);
MM13:=IF(SP<=13,SP,13);
MM34:=IF(SP<=34,SP,34);
XC:=(O+H+L+C*3)/6;
WMAH:=IF(DBCK,H,MA((2*H+XC)/3,MM2));
WMAL:=IF(DBCK,L,MA((2*L+XC)/3,MM2));
TOP:HHV(WMAH,MM34),COLOR00FF00,LINETHICK3;
BOT:LLV(WMAL,MM34),COLORFF00FF,LINETHICK3;
MM13RG:MIN(20,MAX(2,MA(H-L,MM13)));
SPOINT34:=WMAH=HHV(WMAH,MM34),LINETHICK,LINETHICK;
BPOINT34:=WMAL=LLV(WMAL,MM34),LINETHICK;
DNSP:BARSLAST(SPOINT34)+1,LINETHICK;
UPSP:BARSLAST(BPOINT34)+1,LINETHICK;
DNSTOP:LLV(MIN(TOP,LLV(WMAH,DNSP)+MM13RG),DNSP),COLORBLUE,LINETHICK1;
UPSTOP:HHV(MAX(BOT,HHV(WMAL,UPSP)-MM13RG),UPSP),COLORRED,LINETHICK1;
SPOINT:CROSS(ALL(C<UPSTOP,IF(UPSP<M,N1,N)),0.8);//重新計算DNSTOP!
BPOINT:CROSS(ALL(C>DNSTOP,IF(DNSP<M,N1,N)),0.8);//重新計算UPSTOP!
KLINE(O,H,L,C,0);
整體程式來看
不是只有 重新計算 DNSTOP 和 UPSTOP 而已!!!
是幾乎要全部重新計算!!!
你所有的計算最初之根基點,皆為 DBCK
也就是說 SPOINT 或 BPOINT 成立後,要把下一根視為 DBCK 成立之處,然後整個重新計數運算(若沒有理解錯誤的話)
這需求基本上是一定要用迴圈了,且有些部分甚至不能用內建函數直接算,弄出來計算負荷可能會不輕,程式複雜度頗高!!!
請您自己先驗算過(例如用Excel)
先去驗證 SPOINT 和 BPOINT 成立後,從頭起算出的新值曲線,就是您實際所要的無誤。
若沒有十分確定邏輯,恕不協助此部分(僅當寫法範例,不接受事後調改)。
|
|
向版主報告此篇 |  |
|
2020-04-08 22:17 |
|
|
|  |
 |
Markchu7
資深會員
註冊日期: Nov 2007
來 自:
文章數量: 1518 |
感恩版主的說明!從以前的一些發問不難發現吾人並無一丁點的程式寫作基礎,都是從論壇一點一滴的累積,以及弧友版主的不吝指點,才有現在的一些些概念,程式的複雜性真的非吾人所能臆測,真是抱歉也實在非常感恩!
我這兩天會仔細地核對數據,確認後再告知版主結果是否請版主協助!總之非常謝謝奇狐一百分的服務!
感恩!
|
|
向版主報告此篇 |  |
|
2020-04-09 06:20 |
|
|
|  |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|