請問如何定義K棒並取得該K棒的 O,H,L,C 如圖所示
下跌關鍵K
當2號K低點低於1號K時 下跌關鍵K為2號K
當3號K低點低於下跌關鍵K低時 下跌關鍵K變成3號K
當4號K低點低於下跌關鍵K低時 下跌關鍵K變成4號K
5號K 收盤必須大於當下關鍵K(4號K)的高 才能取代4號K成為上漲的關鍵K
否則下跌關鍵K依然維持為4號K
當6號K低點低於下跌關鍵K低時 關鍵K=6號K
以此類推直到15號K收盤站上14號K的高點時 15號K變成上漲關鍵K
當16號K高點高於15號K時 16號K變成上漲關鍵K
當18號K高點高於16號K時 18號K變成上漲關鍵K
當18號K高點高於19號K時 19號K變成上漲關鍵K
當22號K收盤低於19號上漲關鍵K時 22號K成為下跌關鍵K.....
因為小弟不是很清楚MC怎麼寫
但是可以給您一些建議或是看法
1. 先宣告 上漲關鍵K 與 下跌關鍵K 二個參數
2. 寫一隻函數判斷 上漲關K
3. 寫一隻函數判斷 下跌關K
For Example: (舉例用..... ,看懂後請自行轉MC code)
///回傳上漲關K
K_object GetUpKeyPointK()
{
//這裡可以有二種作法
/*
1.直接取值 Min(close[]) and Min(low[]) 令 收盤最低的值為 下跌關K (此為第一種)
2.跑一個迴圈 找出最低的收盤價格 並取得 下跌關K = GetDownKeyPointK() (此為第二種)
//條件判斷
//當16號K高點高於15號K時 16號K變成上漲關鍵K
//當18號K高點高於16號K時 18號K變成上漲關鍵K
//當18號K高點高於19號K時 19號K變成上漲關鍵K
//這是一種作法
if( thisK.High >下跌關K.High) //跟目前的K作條件比對
Return ThisK;
//另一種作法 需要宣告 KP, Bool UpFlag
for(int i = index-20; i<index; i++)
{
if( thisK.High >下跌關K.High)
{
UpFlag = True;
KP = thisK;
}
if(UpFlag)
{
if( thisK.High >KP.High
KP = thisK;
}
}
Return KP;
*/
}
以上為 GetUpKeyPointK 演算法
僅提供參考
若有謬誤還請多多包涵。 |
|