![]() |
在這個頁面顯示本主題全部的 5 個文章 |
奇狐社區論壇 (http://www.chiefox.com.tw/bbs/index.php)
- 問題交流 (http://www.chiefox.com.tw/bbs/forumdisplay.php?forumid=28)
-- (求救) 關於 REF 函數的問題 ? (重新敘述問題) (http://www.chiefox.com.tw/bbs/showthread.php?threadid=5550)
(求救) 關於 REF 函數的問題 ? (重新敘述問題)
MyStatus:= REF(MyStatus, 1);
MyStatus := If ("是多頭嗎 ?", 1, MyStatus);
MyStatus: If ("是空頭嗎 ?", 2, MyStatus);
我想要做到, 當多頭條件成立時, MyStatus = 1, 而且一直是 1, 除非空頭條件成立, MyStatus 才由 1 變成 2.
也就是 MyStatus 只有兩種可能的值, 1 or 2.
但是, 我用上述三行指令, 結果卻不是預期的.
"是多頭嗎 ?" 條件成立時, MyStatus 是等於 1 , 若是條件不成立, MyStatus 卻是跑出 0. 同樣的, "是空頭嗎 ?" 條件成立時, MyStatus 是等於 2 , 若是條件不成立, MyStatus 卻也是跑出 0.
1. 請問各位高手如何解決 ? 或是有其他寫法 ?
2. 請問 MyStatus 如何給 "初值" ? (因為第一個 K 線, MyStatus 應該沒有值 !)
拿比較簡單的例子來說, 例如多頭的條件是 "MACD 交叉向上" , 當此條件在此 K 線位置成立時, 系統就算進入多頭狀態, 當來到下一個 K 線位置, 已經不會再交叉了, 因為交叉位置在前一個 K 線已發生, 所以 "現在是否為多頭 ?" 的測驗條件結果雖然為否, 但是系統應該還是維持在多頭狀態才對 ! 所以我才需要引用 REF(MyStatus, 1) 來作為目前的 MyStatus .
不曉得我有沒有把問題敘述清楚 ?
多頭:=xxxxx;
mystatus:if(多頭,1,2);
引用:
最初由 kkkkkk 發表
多頭:=xxxxx;
mystatus:if(多頭,1,2);
a:cross("macd.diff","macd.dea"),colorwhite;
ba:=barslast(a);
b:cross("macd.dea","macd.diff"),coloryellow;
bb:=barslast(b);
Mystatus1:if(bb>ba,1,2); //如果你不顧股票開市第一個信號時用此,否則要用下面的式子
sa:=barssince(a);
sb:=barssince(b);
dd:=barpos>=if(sa[datacount]>sb[datacount],datacount-sa[datacount],datacount-sb[datacount]) and barpos<if(sa[datacount]>sb[datacount],datacount-sb[datacount],datacount-sa[datacount]);
MyStatus:if(barpos<if(sa[datacount]>sb[datacount],datacount-sa[datacount],datacount-sb[datacount]),0,if((sa[datacount]>sb[datacount] and dd) or bb>ba,1,2)),colormagenta;
It's work ! 謝謝 !!
全部時間均為台灣時間, 現在時間為06:07 | 在這個頁面顯示本主題全部的 5 個文章 |
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved.