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