jeff73168 發表於 17-7-18 12:14

求救~部份策略MC程式碼不會寫~求助請諸位大大們

各位大大們啟:
敝人有一策略,但苦於部份的策略程式碼不會寫,故而於線上請求諸位大大們能伸出援手,予以協助寫程式碼,敝人特甚感激之致.
部份策略如下:
一. MACD指標柱狀體峰(似山峰狀)背離可比對至前6波之策略程式碼 :
   A . 正柱狀體峰"頭背離"(價格創新高,柱狀體峰沒創新高),且當波與前一波若無頭背離現象時,可再往前2波作比對,直至前10波止。

      B . 負柱狀體峰"底背離"(價格創新低,柱狀體峰沒創新低), 且當波與前一波若無底背離現象時,可再往前2波作比對,直至前10波止。

[*]    說明 : 有些柱狀體峰已形成背離,但當波與前一波比對卻無符合背離條件,因此須再往前波作比對方才會有背離現象,為不錯失
               良機,因此而擬出可往前波之柱狀體峰及所對之價格是否有背離條件之比對策略,而比對至前10波為止,若都無背離現象,則表
            背離條件不符合。

            A . 即正柱狀體峰以有見最高之柱狀體(柱狀差離值最高者)後縮頭時,成山峰形狀為第1波(當波),再經行情循環至負柱狀體峰
                  形後再伸長為另正柱狀體峰時,有見最高柱狀體峰頂時(柱狀差離值最高者)後再縮頭,即再形成正柱狀峰形狀時,就成新的
                  正柱狀峰第一波(當波),原前面的正柱狀體峰就被擠推為正柱狀峰波的前1波了。若行情續走柱狀體縮頭幾根後,正柱狀體
                   再往上伸長後才再縮頭時(仍處在正柱差離狀態),則又形成另一有高點之柱狀體峰形態時,則應視為另一新的正柱狀體峰
                   了,而成為當波亦為新的第1波,而前述原前面的正柱狀峰,則就被擠推為前2波了,若仍還有此情況時,又再形成當波(仍
                   為正柱差離狀態,屬第二度再由正柱差離狀態再突出成波狀),前述原前面的正柱狀峰,則就再往前推之為前3波了,則依此
                   類推。而不限於須經過負柱差離峰狀後,再回正柱狀山所形成之峰波,才算正柱狀波。而比對波與波的高低波,則是以各
                   波峰頂的柱狀差離值為作比對之依據。


               B . 負柱狀體峰波亦與正柱狀山相反之。唯建議負柱狀體峰波之比對,則以各波峰底之柱狀差離值之絶對值來比高低,為較易作
                  比對或程式碼之書寫之。
                  
二 . 柱狀體峰與前波比小:
   A . 正柱狀體峰與前波峰比小(正柱狀體峰與正柱狀體峰比) , 且可前波比對至前六波:
      B . 負柱狀體峰與前波峰比小(負柱狀體峰與負柱狀體峰比) , 且可前波比對至前六波:

   說明:正柱狀體峰與前波峰比小(即以波峰頂之柱狀差離值與另波峰柱差離值比),即與前6波內的任一波,有比第1波(當波)小,即屬條
                件符合,最多比對至前6波為止。反之負柱狀體峰底與前波比小波(以絶對值來比)則亦然。


以上懇請諸位大大能惠予協助,不吝賜教,敝人則銘感五內!謝謝!!


JEFF 上
















                  


















apollochung 發表於 17-7-19 23:31

這樣的idea,估計不太有辦法寫得出來,因為無法量化的東西太多了。
比如說背離吧,請問要怎麼 "精確的" 定義背離呢?
我說的不是 "用眼睛看到的" 背離,而是要很精確的定義出,幾根bar以內價創新高,但MACD Diff沒有創新高?
還有何謂MACD Diff的圓頂?一般的定義方法是在n根bar之內,最高價在中間附近,兩邊低,這個才叫做 "頂"
可是頂有很多種,照上面這樣的定義,各種圓的尖的,在n根bar之內有兩個尖三個尖的都會算進去
所以,你需要的是 "精確地描述" 你所要的pattern
等你有辦法精確地描述時,你就寫得出來了

我目前想到的,給您參考:
我會將MACD Diff做兩個MA,當兩個MA交叉時,大部分就是頂出現的時候,接下來就是你的其他過濾判斷

MACDDiff1 = Average(MACDDiff, FastLength);
MACDDiff2 = Average(MACDDiff, SlowLength);
Condition1 = (MACDDiff1 <= MACDDiff2) and (MACDDiff > MACDDiff); //cross over
If (Condition1) then TopCheck = True;

這樣,就把有發生圓頂的時候都給mark出來了,
接下來,就是用For迴圈往回檢查,當TopCheck = True的時候就去做你的判斷,順便counter + 1
這樣就可以順便數你要往回幾波

祝你成功

jeff73168 發表於 17-7-21 11:27

謝謝Apollochung大大的教導!
頁: [1]
查看完整版本: 求救~部份策略MC程式碼不會寫~求助請諸位大大們