|
自編公式實(shí)現(xiàn)Winner函數(shù)
CC := DYNAINFO(7); { 今日收盤(pán) }
ww := IF(L>CC, 0, IF(H<CC, 1, (CC-L+0.01)/(H-L+0.01))); { 每日獲利盤(pán) }
Winner: DMA(ww, VOL/CAPITAL)*100; { 獲利盤(pán) }
感謝胡呵的WINNER算法(作者:girlkiller)
感謝胡呵提供WINNER算法,對(duì)照分析家WINNER和胡呵的WINNER(簡(jiǎn)稱HUWIN)有以下微小區(qū)別;
1,HUWIN中的價(jià)格加減幅度對(duì)20元以下的股票設(shè)置為0.05時(shí)與WINNER實(shí)際值接近,按0.01HUWIN的數(shù)據(jù)一般<WINNER數(shù)據(jù).
2,由于參考動(dòng)態(tài)價(jià)格,使得HUWIN無(wú)法對(duì)歷史的HUWIN保留當(dāng)時(shí)的真實(shí)數(shù)據(jù),具體可對(duì)照600608等股票,只能保持當(dāng)天的HUWIN.因此,選股測(cè)試是用WINNER較好,因?yàn)閃INNER對(duì)歷史保留.
但HUWIN能在分時(shí)線中表達(dá),WINNER則不能,這是HUWIN的優(yōu)點(diǎn).
另外,從HUWIN可見(jiàn)籌碼移動(dòng)的基本算法,指南針用戶如盲目相信籌碼分布,謹(jǐn)防在籌碼分布變粉色是莊家出逃(據(jù)說(shuō)粉色是底部的征兆),因此,HUWIN給我們提供的不僅僅是算法....
WINNER提供的是參考數(shù),即在特定算法下的籌碼表達(dá)式,并不是真實(shí)的籌碼變動(dòng),但此種方法的確有很好的參考價(jià)值,我作過(guò)實(shí)驗(yàn),將股本CAPITAL定在2億,每日的VOL/CAPITAL恒定不便,在恒生指數(shù)和NASDAQ等市場(chǎng)居然一樣有效.
(11)、我用分析家公式
很久以來(lái),我幻想著用一種什么軟件或公式亦或招數(shù)之類.在證券市場(chǎng)上撈他一大筆天上掉下來(lái)的橫財(cái)!
可事實(shí)給了我一個(gè)響亮的耳光......
自從我用了分析家,似乎是我看到點(diǎn)亮光.分析家軟件就其本身來(lái)講,給了大家一個(gè)有很大自由的好工具----僅僅是工具而已!!!工具是什么?是提高效率的東西;是本身功能,能力等等的延伸.而非克敵制勝的法寶.分析家公式也不可能也不應(yīng)該是印錢(qián)的機(jī)器!(我在這里并不是散布"公式無(wú)用論",問(wèn)題恰恰相反).這就自然使我們想到"用"的問(wèn)題.
首先最重要的前提應(yīng)是(公式)有沒(méi)有用的問(wèn)題?其實(shí)這個(gè)問(wèn)題就是戰(zhàn)爭(zhēng)與武器的關(guān)系問(wèn)題,大家可能都非常清楚了,用不著我廢話了.我今天想談一談人與武器的問(wèn)題即"用"的問(wèn)題,這里有網(wǎng)友說(shuō)了,你給我一個(gè)100%的公式,我肯定賺錢(qián).我說(shuō)不但賺不上,還可能賠!!!本人這些天來(lái)五戰(zhàn)五捷,獲利30%強(qiáng).就不完全憑公式,當(dāng)然也絕對(duì)離不開(kāi)公式,應(yīng)公式可自動(dòng)預(yù)警;可幫我快速選股;可幫我快速界定條件進(jìn)行決策......
想必大家都看過(guò)青木先生的<<戰(zhàn)勝莊家>>吧?!在那本書(shū)的結(jié)尾講的"手指與明月"的典故.表面看應(yīng)該是個(gè)距離問(wèn)題吧!進(jìn)一步是否可理解為思想方法問(wèn)題呢?由于本人打字速度的原因,沒(méi)看過(guò)的朋友到書(shū)攤找一找吧.我一直是很崇拜這套書(shū)的,可不是看到那300萬(wàn)呀?!
最贊成的就是曾先生黑馬搖籃的廣告詞50%公式+50%智慧=100%財(cái)富,對(duì)我來(lái)說(shuō)我想改一下將"智慧"改成看盤(pán)經(jīng)驗(yàn),看盤(pán)功夫等等笨招,因?yàn)槲液鼙?不是聰明人談不到智慧二字-----大實(shí)話
談一談近幾日用公式"快速賺錢(qián)"的經(jīng)驗(yàn):
買(mǎi)股之前目標(biāo)的客觀公正的條件(因夾雜著貪婪和恐懼的買(mǎi)股票感覺(jué)是不可靠的)要靠公式去尋找(最大限度的發(fā)揮公式的優(yōu)勢(shì);工具的優(yōu)勢(shì)!這時(shí)分析家公式發(fā)揮了前所未有的功能)
這里給大家一個(gè)公式.僅供參考,賺錢(qián)與否,與本人,本站,曾先生無(wú)關(guān)等等等......
c/L>=1.099 (太簡(jiǎn)單了吧!記得fxj008先生說(shuō)過(guò):兇狠的能一招治敵的招數(shù)能有能有多少套路呢?)
在應(yīng)用時(shí)堅(jiān)決遵循:
1.不求賺錢(qián),但決不能賠錢(qián);(要求找好買(mǎi)入點(diǎn),力爭(zhēng)當(dāng)日收盤(pán)賺1.5%以上)
2.見(jiàn)利就走,決不戀戰(zhàn); (強(qiáng)度不夠,靠感覺(jué)即經(jīng)驗(yàn))
3.發(fā)現(xiàn)強(qiáng)莊,一跟到底; (不賺白不賺!白賺誰(shuí)不賺!)
說(shuō)心里話,看了1.2.3.總覺(jué)得還沒(méi)說(shuō)清,有一種到不出來(lái)的感覺(jué)?! 在操作上尤其在短線上操盤(pán)策略和盤(pán)中捕捉法應(yīng)是大有講究的,可能就是曾先生指的智慧吧?!
有關(guān)本公式的詳細(xì)使用方法請(qǐng)不要來(lái)信詢問(wèn),在此僅想舉例說(shuō)明我怎么"用"分析家公式的問(wèn)題!在此僅想拋磚引玉,告訴網(wǎng)友們友好公式是賺錢(qián)的前提,
(12)、正確判斷漲跌停的公式寫(xiě)法
“如何找出自最近一次漲停以出現(xiàn)過(guò)跌停的股票呢?”
首先必須指出:用C*1.0和C*0.9計(jì)算漲跌停價(jià)是錯(cuò)誤的,沒(méi)有考慮到四舍五入的因素,因此按此思路寫(xiě)出的公式也是錯(cuò)誤的。如果正確判斷一只股票是否漲�;虻�,是許多朋友不會(huì)寫(xiě)的,因此這是一個(gè)普遍性的問(wèn)題。
下面是判斷漲停和跌停的正確寫(xiě)法:
=======================================
WS:=MOD(REF(C,1)*100,10)/100; { 昨收價(jià)的分?jǐn)?shù)位 }
FD:=REF(C,1)/10-IF(WS<0.05,WS,WS-0.10)/10; { 漲�;虻5姆� }
漲停: C=REF(C,1)+FD; { 是否漲停 }
跌停: C=REF(C,1)-FD; { 是否跌停 }
{ 注: 不適用ST,PT,和以0.001元為最小計(jì)價(jià)單位的上海B股}
=======================================
要找出自最近一次漲停以出現(xiàn)過(guò)跌停的股票,只要加入下面的句子就行了。
=======================================
BARSLAST(漲停)>BARSLAST(跌停) { 自上次漲停以來(lái)有無(wú)跌停 }
(13)、由macd指標(biāo)想到了公式的客觀性
大家請(qǐng)看:
DIFF := EMA(CLOSE,12) - EMA(CLOSE,26);
DEA := EMA(DIFF,9);
MACD := 2*(DIFF-DEA);
m1:=macd>ref(macd,1) and diff<dea;
m1 and count(m1,10)=1 and c>ma(c,55) {and abs(macd)>0.2 }and count(macd<0,5)>=5
稍懂點(diǎn)分析家公式的朋友們一看便知,是macd綠色柱狀線,由最長(zhǎng)剛變短而給出買(mǎi)點(diǎn)的公式......
事情是這樣的:近幾天我的一個(gè)朋友經(jīng)過(guò)對(duì)某只股票進(jìn)行了所謂"認(rèn)真觀察""反復(fù)研究"得出結(jié)論:一只股票的macd指標(biāo)的綠色柱狀線一但最長(zhǎng)(這有點(diǎn)說(shuō)不清,因?yàn)殚L(zhǎng)了還可以再長(zhǎng),是相對(duì)的,這里大家注意到了公式中加了abs(macd)>0.2可我遺憾的告訴您,不加還好,有了這條成功率不升反降!)變短就準(zhǔn)有一波行情.打進(jìn)了****股,就等著賺錢(qián)哪!
有興趣的朋友可對(duì)以上公式進(jìn)行測(cè)試,會(huì)發(fā)現(xiàn)結(jié)果一般,不應(yīng)具有一般意義上的操作價(jià)值,可為什么我的那個(gè)朋友卻把這一所謂"規(guī)律"當(dāng)成金科玉律了哪?我覺(jué)得深究其原因,應(yīng)該是人的潛意識(shí)中那個(gè)"貪"字吧.這就需要在這個(gè)市場(chǎng)中進(jìn)行艱苦的磨練了,估計(jì)也練成了,手里的錢(qián)也練沒(méi)了!但這不等于說(shuō)我們就束手無(wú)策了嗎?
回頭看一下開(kāi)頭的公式,對(duì)!分析家----雖然它有這樣或那樣的不足,但編個(gè)公式簡(jiǎn)單驗(yàn)證一下,一個(gè)客觀的,明確的尺子量完的結(jié)果就展現(xiàn)在我們面前了.
固執(zhí)與靈活,主觀與客觀.用分析家公式完美的統(tǒng)一了.機(jī)器會(huì)在瞬間找出不合格的股票的,骨子里的"貪心"能不受一點(diǎn)震動(dòng)嗎?一場(chǎng)面紅耳赤的爭(zhēng)論不復(fù)存在了......
(14)、 我編分析家公式-可用的未來(lái)數(shù)據(jù)
朋友們一看文題,就得問(wèn):"含未來(lái)數(shù)據(jù)的公式還能應(yīng)用?"回答是肯定的.能!請(qǐng)大家看一下的測(cè)試結(jié)果:
1997年1月1日-2001年4月7日 5天5% 中價(jià)計(jì)算:默認(rèn)即(高+低+收)/3
測(cè)試股票數(shù):1097 共發(fā)出指示:807 成功指示:802 失敗指示:5 未完成指示:0 平均成功率:99.38%, 成功率達(dá)到50%的股票有:43.2% 利潤(rùn)1總平均:13.93% 利潤(rùn)1最大值:41.84% 利潤(rùn)1最小值:4.55% 利潤(rùn)2總平均:10.12% 利潤(rùn)2最大值:41.84% 利潤(rùn)2最小值:-14.16%
1997年1月1日-2001年4月7日 5天5% 中價(jià)計(jì)算:收
測(cè)試股票數(shù):1097 共發(fā)出指示:807 成功指示:620 失敗指示:187 未完成指示:0 平均成功率:76.83%, 成功率達(dá)到50%的股票有:35.5% 利潤(rùn)1總平均:10.47% 利潤(rùn)1最大值:37.23% 利潤(rùn)1最小值:0.57% 利潤(rùn)2總平均:6.20% 利潤(rùn)2最大值:37.23% 利潤(rùn)2最小值:-16.85%
一旦你知道這是由于未來(lái)數(shù)據(jù)造成的就會(huì)很失望吧.不過(guò)我讀了一下公式的內(nèi)容發(fā)現(xiàn),是可以變通使用的,而且沒(méi)有未來(lái)數(shù)據(jù)了,實(shí)踐效果也較好.
請(qǐng)看公式內(nèi)容:
CLOSE/OPEN>=1.099 AND BACKSET(L>REF(H,1),2)
現(xiàn)在要變通了......假如,所選的股票5日內(nèi)沒(méi)有5%的漲幅,而且今日的最低價(jià)在<第一天>收盤(pán)價(jià)附近,依公式測(cè)試結(jié)果在至少<第四天>,至多<第五天>就應(yīng)賺5%,也就是說(shuō)本公式僅在兩日內(nèi)就賺5%!!!但這里有三個(gè)小問(wèn)題需要考慮:1.分析家軟件的測(cè)試方法;2.買(mǎi)點(diǎn);3.賣(mài)點(diǎn).
首先,分析家的測(cè)試方法是依<中價(jià)計(jì)算>,在測(cè)試中中價(jià)計(jì)算應(yīng)該為依<收盤(pán)價(jià)>.
其次,買(mǎi)價(jià)就可選在C/O>=1.099這一天的收盤(pán)了,但要在第三天用這個(gè)買(mǎi)價(jià)買(mǎi)(如果能買(mǎi)到的話,不防提高個(gè)1%-1.5%----少賺點(diǎn)嗎,別太貪心了!).
最后,賣(mài)出價(jià)請(qǐng)到測(cè)試結(jié)果中去找5日內(nèi)最高價(jià)有幾次沒(méi)賺5%,即最高利潤(rùn)小于5%的股票有幾家?重算一下成功率:
86家最高價(jià)(利潤(rùn)1)小于5% 共發(fā)指示807 (807-86)/807=89.34% 成功率高達(dá)89.34% 就把這個(gè)條件定為"美好未來(lái)1" 吧.
現(xiàn)在就簡(jiǎn)單的設(shè)想一下幾個(gè)結(jié)果可能不全面,還得請(qǐng)網(wǎng)友們共同研究)
一種可能,在買(mǎi)價(jià)買(mǎi)入股票,只要在明后天的兩日內(nèi)把賣(mài)單埋在買(mǎi)價(jià)加5%的位置,就去守株待兔吧,精確點(diǎn)說(shuō)2天賺2%(扣除印花稅和傭金1.5%+買(mǎi)入時(shí)多給的1.5%);
二種可能,其實(shí)對(duì)這種強(qiáng)勢(shì)股來(lái)說(shuō),買(mǎi)入的當(dāng)天收盤(pán)就有很大可能已經(jīng)漲很高了
這樣的例子很多,不一一列舉了,請(qǐng)大家用我給的公式(美好未來(lái)1)好好研究一下,有心得別忘了我;
三種可能,買(mǎi)入的當(dāng)天,這支股票打一長(zhǎng)上影線7-8%,兩天內(nèi)隨不一定不上影,但上影線的一半的地方的利潤(rùn)也不只2%吧;
第四種可能......止損!!!!!!
這樣一來(lái)公式轉(zhuǎn)變成(美好未來(lái)1):
BARSLAST(ref(c,1)/ref(o,1)>=1.099 and l>ref(h,1))=1
結(jié)論:用"原始公式"搞測(cè)試;"美好未來(lái)1"實(shí)際操作.好了,汽車上太顛簸,就寫(xiě)這些吧.
(15)、短線RSI選股指標(biāo)設(shè)計(jì)
站長(zhǎng)按:HP朋友設(shè)計(jì)的這個(gè)指標(biāo),從短線角度勝率不俗,且分布十分均勻,有很好的實(shí)戰(zhàn)意義!
由于此公式選出的股票漲幅不是很大,所以目標(biāo)利潤(rùn)定為5%
首先從分析家自帶的RSI開(kāi)始,當(dāng)股價(jià)從低位開(kāi)始上漲時(shí)6日RSI
會(huì)上穿24日RSI,初始公式為:
cross(rsi1,rsi3)
此時(shí)此公式所發(fā)出的指示有一部分出現(xiàn)在高位,甚至頂部,通
過(guò)觀察,可以發(fā)現(xiàn)在低位發(fā)出的指示有一些共同點(diǎn),即12日RSI
小于40,6日RSI小于50,并且最近5天內(nèi)RSI曾低于20,所以在
公式中加入以下限制:
rsi2<40 and count(rsi1<20,5)>=1 and rsi1<50
經(jīng)過(guò)測(cè)試(99.1.1-00.7.7),發(fā)現(xiàn)此公式的失敗指示主要發(fā)出在
99年9-12月,此時(shí)大盤(pán)不景氣,于是加入以下限制:
c/ref(c,1)<indexc/ref(indexc,1)
以下測(cè)試條件均為20日5%(請(qǐng)注意目標(biāo)利潤(rùn)為5%)
-------------------------------------------------------
99.1.1-00.7.7
測(cè)試股票數(shù):984
共發(fā)出指示:250 成功指示:202 失敗指示:48 未完成指示:0
平均成功率:80.80%, 成功率達(dá)到50%的股票有:18.8%
利潤(rùn)1總平均:15.30% 利潤(rùn)1最大值:88.51% 利潤(rùn)1最小值:0.00%
利潤(rùn)2總平均:11.19% 利潤(rùn)2最大值:88.51% 利潤(rùn)2最小值:-13.41%
-------------------------------------------------------
97.1.1-00.7.7
測(cè)試股票數(shù):984
共發(fā)出指示:443 成功指示:345 失敗指示:98 未完成指示:0
平均成功率:77.88%, 成功率達(dá)到50%的股票有:29.3%
利潤(rùn)1總平均:13.94% 利潤(rùn)1最大值:88.51% 利潤(rùn)1最小值:0.00%
利潤(rùn)2總平均:9.64% 利潤(rùn)2最大值:88.51% 利潤(rùn)2最小值:-27.26%
-------------------------------------------------------
如果要用此公式選股,只需在條件選股窗口中選中此公式,并
把條件設(shè)定為HPRSI大于P1(P1為0)。
(16)、編程接口全攻略
為什么使用編程接口
由于分析家的自編公式缺乏循序、選擇及循環(huán)三大基本結(jié)構(gòu)中的循環(huán)結(jié)構(gòu),因而不能編制某些公式,作為補(bǔ)救措施,匯天奇公司推出編程接口。編程接口的優(yōu)點(diǎn)是能實(shí)現(xiàn)任意算法,運(yùn)算效率高,保密性強(qiáng);缺點(diǎn)是需要額外的知識(shí),調(diào)試?yán)щy,善未完善。所以,筆者建議盡量避免使用它。
使用編程接口需要什么基礎(chǔ)知識(shí)及軟件
原始的編程接口是以 C 語(yǔ)言提供,以 Win32 動(dòng)態(tài)連接庫(kù)的形式實(shí)現(xiàn)的,所以任何一個(gè)可以生成 Win32
動(dòng)態(tài)連接庫(kù)的開(kāi)發(fā)工具,都可以用于編寫(xiě)擴(kuò)展函數(shù),如 Delphi、BCB、VC、VB 等。
由于分析家軟件是用 VC 編寫(xiě)的,故匯天奇公司推薦使用 VC 作為開(kāi)發(fā)工具。有鑒于此,筆者編寫(xiě)了 VC 6.0 下的
Custom AppWizard ,可自動(dòng)生成程序框架,并作一些必要的設(shè)置,可節(jié)省不少時(shí)間。如果使用 VC ,只需學(xué)習(xí) C
語(yǔ)言,不必懂得 C++ 知識(shí),更不必掌握 MFC ,要求可說(shuō)是相當(dāng)?shù)土恕?br>
本文以 VC 為例,講述擴(kuò)展函數(shù)的編制。
擴(kuò)展函數(shù)的命名及引用
擴(kuò)展函數(shù)的命名有以下規(guī)定:
1.函數(shù)名稱須符合 C 語(yǔ)言的規(guī)定,并需全部大寫(xiě).
2.函數(shù)必須以下述A,B兩種形式之一聲明,請(qǐng)用實(shí)際函數(shù)名稱替代xxxxxxxx。
__declspec(dllexport) int xxxxxxxx(CALCINFO* pData);
---------- A
__declspec(dllexport) int xxxxxxxxVAR(CALCINDO* pData);
---------- B
3.上述形式A用于聲明不帶參數(shù)或全部參數(shù)為常數(shù)的函數(shù);
形式B用于聲明參數(shù)1為序列數(shù)的函數(shù);兩種函數(shù)的區(qū)別在于后者以VAR結(jié)尾.
4.函數(shù)名稱長(zhǎng)度不能超過(guò) 15 字節(jié),動(dòng)態(tài)連接庫(kù)文件名不能超過(guò) 9 字節(jié)(不包括擴(kuò)展名),動(dòng)態(tài)庫(kù)名稱不能叫
SYSTEM,EXPLORER ;
擴(kuò)展函數(shù)的引用分兩個(gè)步驟:
1、將生成的動(dòng)態(tài)連接庫(kù)拷貝到分析家目錄下;
2、編寫(xiě)一個(gè)公式,引用動(dòng)態(tài)連接庫(kù)中的擴(kuò)展函數(shù),格式如下:
"動(dòng)態(tài)庫(kù)名稱@函數(shù)名稱"(參數(shù)表)
例如,您編了一個(gè)擴(kuò)展函數(shù)叫 FUNCTION() ,有兩個(gè)常數(shù)參數(shù),生成的動(dòng)態(tài)連接庫(kù)叫 formula.dll ,引用為
"formula@Fuction"(16,8) ,注意一對(duì)半角雙引號(hào)的位置,庫(kù)名及函數(shù)名不區(qū)分大小寫(xiě)。
數(shù)據(jù)結(jié)構(gòu)
編程接口的一大任務(wù)是數(shù)據(jù)的傳遞,包括將原始數(shù)據(jù)傳遞給擴(kuò)展函數(shù)及將運(yùn)算結(jié)果傳遞回分析家。這是通過(guò)函數(shù)的參數(shù) CALCINFO*
pData 實(shí)現(xiàn)的,結(jié)構(gòu) CALCINFO 的定義在頭文件FxjFunc.h或Analyst.h中,簡(jiǎn)介如下:
typedef struct tagCALCINFO
{
const DWORD m_dwSize; //本結(jié)構(gòu)的大小,可用于分配內(nèi)存
const DWORD m_dwVersion; //調(diào)用軟件版本(V2.10 : 0x210)
const DWORD m_dwSerial; //調(diào)用軟件序列號(hào)
const char* m_strStkLabel; //股票代碼
const BOOL m_bIndex; //大盤(pán)
//數(shù)據(jù)數(shù)量(pData,pDataEx,pResultBuf 指向的數(shù)組大小)
const int m_nNumData;
//常規(guī)數(shù)據(jù)數(shù)組指針,注意:當(dāng)m_nNumData==0時(shí)可能為 NULL
const STKDATA* m_pData;
//擴(kuò)展數(shù)據(jù)數(shù)組指針,用于描述分筆成交買(mǎi)賣(mài)盤(pán),注意:可能為 NULL
const STKDATAEx* m_pDataEx;
const int m_nParam1Start; //參數(shù)1有效位置,詳見(jiàn)注4、5
const float* m_pfParam1; //調(diào)用參數(shù)1
const float* m_pfParam2; //調(diào)用參數(shù)2
const float* m_pfParam3; //調(diào)用參數(shù)3
const float* m_pfParam4; //調(diào)用參數(shù)3
float* m_pResultBuf; //結(jié)果緩沖區(qū)
const DATA_TYPE m_dataType; //數(shù)據(jù)類型
const float* m_pfFinData; //財(cái)務(wù)數(shù)據(jù)
} CALCINFO;
注:
1.函數(shù)調(diào)用參數(shù)由m_pfParam1--m_pfParam4帶入,若為NULL則表示該參數(shù)無(wú)效.
2.當(dāng)一個(gè)參數(shù)無(wú)效時(shí),則其后的所有參數(shù)均無(wú)效.
如:m_pfParam2為NULL,則m_pfParam3,m_pfParam4一定為NULL.
3.參數(shù)1可以是常數(shù)參數(shù)或序列數(shù)參數(shù),其余參數(shù)只能為常數(shù)參數(shù).
4.若m_nParam1Start<0, 則參數(shù)1為常數(shù)參數(shù),參數(shù)等于*m_pfParam1;
5.若m_nParam1Start>=0,則參數(shù)1為序列數(shù)參數(shù),m_pfParam1指向一個(gè)浮點(diǎn)型數(shù)組,
數(shù)組大小為m_nNumData,數(shù)據(jù)有效范圍為m_nParam1Start--m_nNumData.
在時(shí)間上m_pData[x] 與 m_pfParam1[x]是一致的
結(jié)構(gòu) CALCINFO 中用到的其它數(shù)據(jù)結(jié)構(gòu)定義可在同一頭文件中找到,讀者如有疑問(wèn)可自行查閱。
使用 Custom AppWizard 編程
由于 Custom AppWizard
已完成了所有例行的工作,我們只需要讀出原始數(shù)據(jù),對(duì)其進(jìn)行處理后,寫(xiě)入結(jié)果緩沖區(qū)就行了。具體可參閱網(wǎng)友 Normal 的大作,此處不再贅
述。有幾點(diǎn)補(bǔ)充如下:
1、函數(shù)返回 -1 表示錯(cuò)誤或全部數(shù)據(jù)無(wú)效,否則返回第一個(gè)有效值位置,即:
m_pResultBuf[返回值] -- m_pResultBuf[m_nNumData-1]間為有效值。
2、Custom AppWizard 只適用于 VC 6.0 ,不能用于 VC 5.0 。
不使用 Custom AppWizard 編程
手工編程的話,要注意以下幾點(diǎn):
1、函數(shù)參數(shù)傳遞順序必須按照 C 規(guī)則,如果文件擴(kuò)展名用 .cpp ,則函數(shù)聲明必須包含在 extern "C" {}
的括號(hào)中;
2、Project -> Settings... -> C/C++ -> Category: General
-> Preprocessor definitions 中加入 FXJFUNC_EXPORTS ;
3、編譯時(shí)選擇1字節(jié)對(duì)齊,即
Project -> Settings... -> C/C++ -> Category: Code Generation
-> Struct member alignment: 選 1 Byte;
使用其它編程工具的,可參考以上設(shè)置。
不足及期望
編程接口雖然大大增強(qiáng)了公式編制的能力及靈活性,但也存在不足之處。比如,只能被動(dòng)獲取原始數(shù)據(jù),不能主動(dòng)取得其它個(gè)股的指定數(shù)據(jù);還有,不能同時(shí)取得不同周期的數(shù)據(jù);另外,不提供基本的函數(shù)庫(kù),連移動(dòng)平均也得自己動(dòng)手。由上可見(jiàn),編程接口也有其局限性,并非萬(wàn)能。我們期望匯天奇對(duì)其作進(jìn)一步的完善。
(17)、自編公式中迭代問(wèn)題的解決辦法
迭代,利用上次計(jì)算結(jié)果重復(fù)計(jì)算,和遞歸概念相近,不同是遞歸是從后往前推,而迭代是從頭到尾計(jì)算,從前往后推,很多定義是用遞歸定義的,但遞歸占用資源較多,效率較低,所以常常用迭代或回溯實(shí)現(xiàn)。
如階乘的定義:P(n)=P(n-1)*n;
實(shí)現(xiàn)時(shí)則可用迭代:for(P=i=1; i<=n; i++){ P = P*i; }
在分析家公式系統(tǒng)中,既不支持遞歸,又不支持迭代(循環(huán)),難道很多遞歸定義的公式不能實(shí)現(xiàn)嗎?
有一些可以實(shí)現(xiàn)!有兩種方法我們可以嘗試:
1。利用統(tǒng)計(jì)函數(shù)
如OBV指標(biāo),它的算法是:從上市第一天起,逐日累計(jì)股票總成交量,若當(dāng)日收盤(pán)價(jià)高于昨收,則前OBV加當(dāng)日成交量為當(dāng)日OBV,否則減當(dāng)日成交量為當(dāng)日OBV。從算法上看,它是個(gè)典型的需要迭代計(jì)算的例子,但讓我們看看分析家是怎樣實(shí)現(xiàn)的:
SUM(IF(CLOSE>REF(CLOSE,1),VOL,IF(CLOSE<REF(CLOSE,1),-VOL,0)),0)
它用一個(gè)統(tǒng)計(jì)函數(shù)SUM就解決了迭代的問(wèn)題。這種方法能解決每天權(quán)重相同的情況(也就是每一天同等對(duì)待,特點(diǎn)是用只用加減運(yùn)算)。那對(duì)于每天不同權(quán)重的公式怎么辦呢?
2。利用引用函數(shù)
分析家公式系統(tǒng)中有一組引用函數(shù),特別是EMA、DMA、SMA。EMA既是函數(shù),又是指標(biāo),先看看EMA的定義:
EMA(X,N),求X的N日指數(shù)平滑移動(dòng)平均。算法:若Y=EMA(X,N)則Y=[2*X+(N-1)*Y']/(N+1),其中Y'表示上一周期Y值。定義中用了乘除,每天的權(quán)重按指數(shù)規(guī)律變化。這種公式可以用DMA函數(shù)實(shí)現(xiàn)。如我去年編的 成本價(jià)指標(biāo):
CostMA(AMOUNT/VOL/100, VOL/CAPITAL)
這是成本分析中最簡(jiǎn)單的公式,成本分析的原理詳見(jiàn)“成本分布的秘密”一帖,基此思路,應(yīng)可以輕松編出其它成本分布的公式。
|
|