具體點(diǎn)位的程序化編寫 [文華財(cái)經(jīng)]
-
咨詢內(nèi)容:
?老師好,可否幫助設(shè)計(jì)一個(gè)很簡單的程序,做的是香港的恒生指數(shù),從早晨 9:15開始到下午16:30 結(jié)束,不做夜盤。 大概這樣做: 看秒鐘的K先,以早晨9:30分0秒0分的開盤價(jià)為基準(zhǔn)點(diǎn)。當(dāng)行情上升到10個(gè)點(diǎn),買入一手(爭取正好在第10個(gè)點(diǎn)的位置,而不是在“附近”,看能否做到,如做不到也沒關(guān)系),如果虧15個(gè)點(diǎn)則賣出并反手做一手(也是,爭取在正好虧15個(gè)點(diǎn)的時(shí)候做空反手,而不是附近,爭取一下)。 如果行情是跌落,也一樣,跌到10個(gè)點(diǎn),賣出一手,然后,如果虧損15個(gè)點(diǎn),反手買入,這樣,如此循環(huán)第做下去,指導(dǎo)行情結(jié)束。 另外,可否再加一個(gè)平倉條件,就是當(dāng)盈利100個(gè)點(diǎn)的時(shí)候,也是平倉,同時(shí)開倉(同方向)一手,重復(fù)以前的,這新的一手,如果虧15個(gè)點(diǎn)則反手,這樣,行情會(huì)在一開始的時(shí)候有買賣,然后在漲、跌100個(gè)點(diǎn)的時(shí)候也有買賣,都是虧損15個(gè)點(diǎn)平倉,否則走到收盤的時(shí)候。? 謝謝老師,這其實(shí)是兩個(gè)程序,放在一起了,好在都很簡單。?
?
?來源:程序化99
-
文華技術(shù)人員:
思路需要核實(shí):
1.盈利100點(diǎn)平倉,并同向開倉一手,是指比如多頭情況下盈利100點(diǎn)賣平后再買開一手?
這個(gè)是無法同時(shí)做到的,只能做到同時(shí)反向開倉,您調(diào)整一下思路,這里先按同時(shí)反向開倉給您編寫
2.走到收盤,收盤前是否清倉?如需清倉需要收盤前多長時(shí)間清倉?
這里先按照不清倉給您編寫
3.剛好10點(diǎn)或15點(diǎn),這樣的條件可以編寫(如下形式),但是條件較難滿足,您了解下
參考:
OO:=VALUEWHEN(TIME=093000,O); AA:=TIME>093000&&TIME<163000; C=OO+10*MINPRICE&&COUNTSIG(BK,BARPOS)=0&&AA,BK(1); C=OO-10*MINPRICE&&COUNTSIG(SK,BARPOS)=0&&AA,SK(1); (C=BKPRICE-15*MINPRICE||C=BKPRICE+100*MINPRICE)&&BKVOL>0&&AA,SPK(1); (C=SKPRICE+15*MINPRICE||C=SKPRICE-100*MINPRICE)&&SKVOL>0&&AA,BPK(1);
?
?來源: www.tumamayizhan.com
-
文華客服:
?老師您好,繼續(xù)這個(gè)問題,我有幾個(gè)問題。 您編的水平確實(shí)很高,加上我是菜鳥,還是消化了一回兒。 我的問題有三個(gè):?
第一,這個(gè)模型,如果我改為過濾模型(以為自始至終我都是一手在操作的),就是把諸如BK(1) 改為BK, spk(1) 也改為spk,最后加上AUTOFILL;, 這樣,理論上應(yīng)該測試的結(jié)果和沒改之前您的模型結(jié)果是一樣的,因?yàn)榘凑漳哪P停彩侵挥幸皇植僮鳎瑳]有兩手或以上的情形,為什么改成過濾模型了之后,測試的結(jié)果會(huì)有很大的不同呢? 我應(yīng)該相信哪一個(gè)?? 第二,您在上面問的很對,我是要當(dāng)天平倉的,就是在16:30日盤接受的時(shí)候平倉,我自己直接加了一個(gè) TIME>162959 CLOSEOUT;?可是,為什么我加了這個(gè),語法上沒有錯(cuò),但執(zhí)行的時(shí)候,60天周期只執(zhí)行了兩三天,這是為什么? 您可否在這基礎(chǔ)上,直接幫我改一下,改成不論如何做,最后16:30分平倉? 第三, 您所編的程序,就是漲跌100點(diǎn),是動(dòng)態(tài)的平倉且反手的,就是說比如一開始是20000點(diǎn),從20010點(diǎn)開始買入,如果沒有跌,到20110就平倉賣出反手,經(jīng)過幾次震蕩(每虧15個(gè)點(diǎn)反手一次),到20200還會(huì)繼續(xù)平倉賣出反手(就是盈利100點(diǎn)時(shí)候),而我的意思是,如果過了20100點(diǎn)還繼續(xù)漲,就不再每一百點(diǎn)平倉反手了,而是一直做到當(dāng)天結(jié)束。 (下跌也是一個(gè)意思!),也就意味著,我不是要求動(dòng)態(tài)的每波動(dòng)100個(gè)點(diǎn)(其實(shí)是盈利100點(diǎn))都平倉,而是,比如20000是基準(zhǔn)點(diǎn),只有在21100 和19890 的時(shí)候 會(huì)作反手,否則就等到日盤結(jié)束就平倉了。 您可否幫我這樣改一下,我估計(jì),這樣改似乎可以,就是 (C=BKPRICE-15*MINPRICE||C=BKPRICE+100*MINPRICE)&&BKVOL>0&&AA,SPK(1);(C=SKPRICE+15*MINPRICE||C=SKPRICE-100*MINPRICE)&&SKVOL>0&&AA,BPK(1)??
改成(C=BKPRICE-15*MINPRICE||C=OO+100*MINPRICE)&&BKVOL>0&&AA,SPK(1);(C=SKPRICE+15*MINPRICE||C=OO-100*MINPRICE)&&SKVOL>0&&AA,BPK(1);
就是把BKPRICE和SKPRICE 都改成OO, 您看對嗎? 但是我還有一個(gè)要求,就是可否設(shè)一個(gè)變量,讓它記錄下來分別在基準(zhǔn)價(jià)格(比如一開始的20000點(diǎn))附近上下開平倉了多少回,做個(gè)記錄,然后分別也在100點(diǎn)漲和跌之后,每一回的震蕩(開倉,平倉)次數(shù)又有多少回,把這三個(gè)數(shù)字給做個(gè)動(dòng)態(tài)的記錄,您看可否? (三個(gè)記錄分別是: 從20010到19990直接,來回走了多少回,已經(jīng)從19890到19900, 和 20100到20110之間走了多少次,做個(gè)記錄?)? ,您看可以嗎?? 謝謝了,說起來很啰嗦,老師做起來應(yīng)該是幾句話的事情。 感謝!?
-
網(wǎng)友回復(fù):
第一,過濾模型和非過濾模型呈現(xiàn)的結(jié)果都是準(zhǔn)確
存在差異是因?yàn)檫^濾模型存在信號過濾機(jī)制,開倉信號的下個(gè)信號必須是平倉信號
而非過濾模型屬于加倉的思路,開倉信號的下個(gè)信號可能還是開倉信號,所以就導(dǎo)致了兩種模型的信號記錄存在差異
-------
第二,這是因?yàn)闀r(shí)間設(shè)置為TIME>162959,只有當(dāng)163000時(shí)的K線有數(shù)據(jù)時(shí)才有可能按照您的思路準(zhǔn)確平倉
否則如果163000這一秒沒有數(shù)據(jù),那么就不會(huì)觸發(fā)清倉指令,或者是在夜盤時(shí)段執(zhí)行清倉指令也是有可能的
-------
第三,您的編寫方式不是十分準(zhǔn)確,您是指超過100點(diǎn)盈利后就一直持有直到尾盤平倉?
另外,您所說的記錄三個(gè)數(shù)值,后面兩個(gè)是指記錄盈利100點(diǎn)后的震蕩次數(shù)?
但是如果盈利超過100點(diǎn)一直持有到尾盤平倉的話期間是不會(huì)有信號震蕩的,暫時(shí)先給您編寫盈利100點(diǎn)震蕩次數(shù)
根據(jù)您的思路,這樣編寫試試看
OO:VALUEWHEN(TIME=093000,O);AA:=TIME>093000&&TIME<162930;C=OO+10*MINPRICE&&COUNTSIG(BK,BARPOS)=0&&AA,BK(1);C=OO-10*MINPRICE&&COUNTSIG(SK,BARPOS)=0&&AA,SK(1);C=BKPRICE-15*MINPRICE&&BKVOL>0&&AA&&COUNT(C>BKPRICE+100*MINPRICE,BARSBK)=0,SPK(1);C=SKPRICE+15*MINPRICE&&SKVOL>0&&AA&&COUNT(C<SKPRICE-100*MINPRICE,BARSSK)=0,BPK(1);BKVOL>0&&AA&&COUNT(C>BKPRICE+100*MINPRICE,BARSBK)=1,SPK(1);SKVOL>0&&AA&&COUNT(C<SKPRICE-100*MINPRICE,BARSSK)=1,BPK(1);CLOSESEC<=30,CLOSEOUT;AA:COUNTSIG(BPK,BARSLAST(TIME=093000)+1)+COUNTSIG(SPK,BARSLAST(TIME=093000)+1),NODRAW;//僅在盈利100點(diǎn)前為準(zhǔn)確數(shù)值?
-
網(wǎng)友回復(fù):
?老師好,關(guān)于您上面回答的第二個(gè)問題還是不是很清楚: 為什么您編的程序好好的,但是我加上在當(dāng)天期末全部平倉,就60天內(nèi)只執(zhí)行兩天,我就十分的疑惑。這樣吧,還是用您編的這個(gè)程序:?
OO:=VALUEWHEN(TIME=093000,O);AA:=TIME>093000&&TIME<163000;C=OO+10*MINPRICE&&COUNTSIG(BK,BARPOS)=0&&AA,BK(1);C=OO-10*MINPRICE&&COUNTSIG(SK,BARPOS)=0&&AA,SK(1);(C=BKPRICE-15*MINPRICE||C=BKPRICE+100*MINPRICE)&&BKVOL>0&&AA,SPK(1);(C=SKPRICE+15*MINPRICE||C=SKPRICE-100*MINPRICE)&&SKVOL>0&&AA,BPK(1);
但是,把AA的條件改成: AA:=AA:=TIME>093000&&TIME<162600;? //就是,在每天下午16點(diǎn)26分前執(zhí)行該程序。然后加上一個(gè)
TIME>162600, CLOSEOUT; 或者 BP(SKVOL); SP(BKVOL); 這樣的程序應(yīng)該可以運(yùn)行了吧? 可是我在60天周期運(yùn)行時(shí),還是只執(zhí)行兩三天,不知道為什么,您能夠給我一個(gè)完整的程序嗎? 謝謝老師!? 完整的程序就是在16:26分 全部平倉。
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 511411198 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價(jià)格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容