一 軟件使用
1.1快捷鍵切換分析周期
在圖形分析窗口可用以下快捷鍵切換分析周期:
0 分筆成交
1 1分鐘線
2 5分鐘線
3 15分鐘線
4 30分鐘線
5 60分鐘線
6 日線
7 周線
8 月線
9 年線
如何快速切換多分鐘、多秒、多小時(shí)或者多日線周期
敲擊鍵盤輸入“12SEC” 或“S12”:調(diào)用12秒線;
敲擊鍵盤輸入“14MIN”或“M14”:調(diào)用14分鐘線;
敲擊鍵盤輸入“6HOUR”:調(diào)用6小時(shí)線;
敲擊鍵盤輸入“D8”:調(diào)用8日線;
其他周期同理輸入。
[n+] 數(shù)字n后,再鍵入“+”,表示n秒K線
[n-] 數(shù)字n后,再鍵入“-”,表示n分鐘K線
[n*] 數(shù)字n后,再鍵入“*”,表示n小時(shí)K線
[n/] 數(shù)字n后,再鍵入“/”,等筆K線,表示每根k線的筆數(shù)相等
[M]、[Mn] 多分鐘線(輸入M3回車可切換到3分鐘線)
[S]、[Sn] 多秒線(輸入S3回車可切換到3秒線)
1.2金字塔的連續(xù)合約如何換月
遵循兩個(gè)原則
(1)第一天,成交量大于當(dāng)前連續(xù)合約, 第二天早上,就換月
(2)但如果,是因?yàn)楫?dāng)前主力所連合約漲停或跌停引起的成交量減少,則不會(huì)換月
需要做以下三步,分筆成交數(shù)據(jù),要完整(如不完整,請(qǐng)下載),
(1)工具--數(shù)據(jù)--數(shù)據(jù)管理器,"收盤清盤"里,
選對(duì)應(yīng)市場(chǎng),勾選保存分筆成交,然后"執(zhí)行收盤"
就會(huì)把分筆數(shù)據(jù)保存在本地.
(2)工具--選項(xiàng)--維護(hù),里面,"分筆成交存儲(chǔ)",天數(shù)調(diào)整大
(3)工具--選項(xiàng)--常規(guī),里面,"K線圖僅使用當(dāng)日分筆\1分?jǐn)?shù)據(jù)"前的勾去掉
此主題相關(guān)圖片如下:選項(xiàng).jpg
分時(shí)圖上的紅綠線用法說(shuō)明:紅綠柱揭示主動(dòng)性買賣盤的力量對(duì)比。紅柱越長(zhǎng),表明主動(dòng)性買盤強(qiáng);綠柱越長(zhǎng),表明主動(dòng)性賣盤強(qiáng).
具體解釋:
以0軸為界,紅柱向上,且一個(gè)比一個(gè)高為上漲,低于0以下為綠柱為跌
分時(shí)圖中,白線上穿黃線,在黃線以上的運(yùn)動(dòng)都是上漲的波浪運(yùn)動(dòng),黃線下方的運(yùn)動(dòng)都是下跌,具體的大趨勢(shì)方向,還要以K線為準(zhǔn)。分時(shí)內(nèi)的紅綠柱只代表在短時(shí)間之內(nèi)的力量的強(qiáng)弱
分時(shí)圖中黃線作為多空的分界比紅綠柱準(zhǔn)確的多
代碼實(shí)現(xiàn)如下
昨收盤:DYNAINFO(3),COLORRED,LINETHICK2;
refc:=DYNAINFO(3);
redgr:=(SMA(C,2,1)-SMA(C,6,1))*2.1;//紅綠柱
STICKLINE(redgr>0,refc,refc+redgr,0.1,0),Color5050FF;
STICKLINE(redgr<=0,refc,refc+redgr,0.1,0),ColorCyan;
1.5(真實(shí)波幅)計(jì)算公式,是哪個(gè)周期的波幅
在哪個(gè)周期上使用,就是那個(gè)周期的真實(shí)波幅。
TR:MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
“真實(shí)”表現(xiàn)在考慮了新K線可能產(chǎn)生的跳空
1.6日線上的最高價(jià)/最低價(jià)比1分或者5分鐘圖上高/低
日線生成是使用的交易所當(dāng)日給出的開高低收?qǐng)?bào)價(jià),而分鐘K線是使用當(dāng)日分筆數(shù)據(jù)生成,對(duì)于國(guó)內(nèi)期貨分筆數(shù)據(jù)是交易所每隔0.5秒一次的快照數(shù)據(jù),在行情變化劇烈時(shí),這0.5秒會(huì)撮合很多筆交易,但是交易所只給了間隔0.5秒的快照,也就是傳遞過(guò)來(lái)的分筆數(shù)據(jù)不是所有成交報(bào)價(jià)的。故在極端位置會(huì)出現(xiàn)分鐘線與日線有不一致的情況。
1.7疊加主圖的交易系統(tǒng)公式怎么會(huì)有白色的箭頭
白色箭頭是未成交標(biāo)志,交易系統(tǒng)測(cè)試時(shí),對(duì)于價(jià)格在當(dāng)日高低價(jià)之外的模擬委托價(jià)格視為無(wú)效委托而為白色箭頭標(biāo)記(例如海龜交易算法不斷的發(fā)出止損指令),用戶可以在選項(xiàng)->視圖->將“顯示未成交標(biāo)志”鉤選去掉,就會(huì)不顯示的。
1.8基礎(chǔ)數(shù)據(jù)
金字塔的基礎(chǔ)數(shù)據(jù)是”分筆成交數(shù)據(jù)、1分鐘、5分鐘、日線數(shù)據(jù)“,其他周期類型的數(shù)據(jù)都是根據(jù)這四種數(shù)據(jù)計(jì)算得來(lái),因此,只需要下載這四種基礎(chǔ)數(shù)據(jù)本地?cái)?shù)據(jù)就是完整的。
1分鐘,5分鐘,日線, 5分鐘數(shù)據(jù)補(bǔ)齊后,15分鐘,60分鐘不需要繼續(xù)補(bǔ)充。
金字塔的歷史數(shù)據(jù)補(bǔ)充采取點(diǎn)播模式,即補(bǔ)充當(dāng)前圖表打開的品種,系統(tǒng)會(huì)自動(dòng)判斷你上一次登陸數(shù)據(jù)與當(dāng)前最新數(shù)據(jù)差多少,然后自動(dòng)補(bǔ)最后這一段的,但是如果您是中間數(shù)據(jù)缺失,那么自動(dòng)補(bǔ)數(shù)據(jù)功能就無(wú)效了,您就需要手工來(lái)補(bǔ)。自動(dòng)補(bǔ)數(shù)據(jù)功能僅是補(bǔ)充您所圖表上打開的品種,沒(méi)有打開的則不會(huì)去補(bǔ)充,如果您需要全部的品種數(shù)據(jù)都齊全,那么只能通過(guò)手工補(bǔ)充數(shù)據(jù)。15分,60分的周期數(shù)據(jù)是由5分鐘生成的,自定義分鐘周期取決于您所使用的周期是否是5的整數(shù)倍,是的話取5分鐘,否則取1分鐘。
1.9K線圖上,小數(shù)位顯示少了
圖形/坐標(biāo)上,應(yīng)是兩位小數(shù)的品種只顯示一位小數(shù)
金字塔在圖形上的顯示價(jià)格單位采取了智能模式,即千位只顯示一位小數(shù),萬(wàn)位則不顯示,您可以在選中中進(jìn)行關(guān)閉。工具菜單->選項(xiàng)->視圖 然后將“價(jià)格/單位自動(dòng)縮位顯示”這個(gè)選項(xiàng)去掉即可。
1.10函數(shù)orderqueue,順序下單
函數(shù)orderque,順序下單
功能描述:有A和B兩個(gè)單子,A在對(duì)列前面,B緊跟A。只有當(dāng)A單子有以下情況,才會(huì)下委托單B(1)收到成交回報(bào);(2)下單失敗;(3)撤單(一旦隊(duì)列下單不成交撤單后,再次委托會(huì)將委托追單排到最后)。
使用時(shí)請(qǐng)務(wù)必注意,在策略里的報(bào)單至少需要2筆以上委托單。
“交易---下單設(shè)置---程序化交易”選項(xiàng)中,有關(guān)于隊(duì)列等待超時(shí)的等待規(guī)則設(shè)置
順序下單超時(shí)等待N秒(0表示無(wú)限等待):設(shè)置后表示程序化交易時(shí)使用orderqueue函數(shù)隊(duì)列的超時(shí)等待時(shí)間。
(1)順序遞交:當(dāng)勾選本選項(xiàng)后,使用orderqueue指令報(bào)單時(shí),如果前面的報(bào)單超過(guò)這個(gè)設(shè)置值而未成交或者未撤單時(shí),就不再進(jìn)行隊(duì)列等待,而是直接報(bào)單出去。例如將超時(shí)等待設(shè)置為10秒,就表示排在隊(duì)列第一個(gè)位置的動(dòng)作(假設(shè)這個(gè)動(dòng)作的名字是A)等待了10秒后,不管在它之前委托單是否成交或者撤銷,動(dòng)作A都將不再等待,而是直接委托出去。同理,此時(shí),排在A后面的動(dòng)作(單子B)開始10秒倒計(jì)時(shí),等超時(shí)后,也會(huì)委托出去。
(2)之前報(bào)單完全成交后再順序遞交:勾選本選項(xiàng)后,只有在報(bào)單隊(duì)列里的上一筆委托完全成交后才會(huì)委托報(bào)單下一筆。一旦上一筆交易出現(xiàn)委托失敗或者撤單等情況,后面的委托隊(duì)列會(huì)被完全清空。使用此項(xiàng)時(shí)請(qǐng)務(wù)必注意,在策略里的報(bào)單至少需要2筆以上委托單,如果只往隊(duì)列報(bào)單一筆,那么金字塔將會(huì)在2秒鐘之后才開始處理這一筆報(bào)單。
1.11"非主力合約持倉(cāng)提醒"的功能
"非主力合約持倉(cāng)提醒"的功能,點(diǎn)了今后不再提醒,現(xiàn)在想要這個(gè)提醒的功能。怎么辦?
此設(shè)置在注冊(cè)表里,注冊(cè)表路徑為HKEY_CURRENT_USER\Software\Weisoft\金字塔\MsgInfoDlg,修改以下設(shè)置
MainKeyReport 0 //0---提醒;1---不提醒
此主題相關(guān)圖片如下:注冊(cè)表.jpg
1.12 SETREGVAL函數(shù)設(shè)置的全局變量注冊(cè)表路徑是什么
HKEY_CURRENT_USER\Software\Weisoft\金字塔
1.13如何打開老的defalut(150).stk
記得先備份原來(lái)的Weisoft Stock\Document目錄下的Default(150).stk文件
關(guān)閉金字塔
(1)在Weisoft Stock\Document\Backup這個(gè)目錄下,存的都是策略備份
你可以找到一個(gè)你想恢復(fù)的最近的一個(gè)后綴為.BAK的文件
(2)復(fù)制粘貼到Weisoft Stock\Document目錄下,修改文件名及后綴為Default(150).stk
1.14 主圖K線不見了,如何調(diào)出
【金字塔使用技巧】---主圖K線不見了,如何調(diào)出
在主圖上,點(diǎn)鼠標(biāo)右鍵→“插入內(nèi)容/公式”,會(huì)看到如圖所示的“公式選擇器”里,選中左邊“公式組”/系統(tǒng)→右邊“公式列表”/MAIN,點(diǎn)確定,主圖里就可以看到K線了。
此主題相關(guān)圖片如下:公式.jpg
1.15設(shè)置策略資金和開始時(shí)間
設(shè)置策略資金和開始時(shí)間
50萬(wàn)的資金設(shè)置從某一個(gè)時(shí)間開始,請(qǐng)問(wèn)該如何設(shè)置?
1.設(shè)置分配的資金
交易系統(tǒng)編輯器里,“費(fèi)率設(shè)置”---“交易費(fèi)用”里,初始資金里設(shè)置50萬(wàn)
2.設(shè)置開始時(shí)間
K線圖里,“右鍵 ——窗格屬性”—“常規(guī)”里,指定開始時(shí)間
此主題相關(guān)圖片如下:開始時(shí)間.jpg
或者在程序的前面加一條語(yǔ)句時(shí)間限制 if date<1130304 then exit;
1.16為什么設(shè)置開始時(shí)間不同,會(huì)對(duì)信號(hào)位置有影響
為什么指定開始時(shí)間設(shè)置不同的話會(huì)對(duì)信號(hào)的位置有影響?我設(shè)置指定開始時(shí)間2013年 2月25日開始和2013年3月3日開始,會(huì)有不同的信號(hào)?一個(gè)在3月4日10:30分的K線有信號(hào),另一個(gè)則沒(méi)有?
答:肯定有影響的,原因在于你策略中需要比較多的k線才能確定信號(hào)。
比如你在策略中使用了ma(c,30),當(dāng)k線數(shù)量少于30時(shí),這個(gè)ma值是不對(duì)的,所以必須要大于30根k線后你的信號(hào)才能穩(wěn)定。同樣你使用“快速”功能時(shí)一定要小心,k線設(shè)置過(guò)小會(huì)導(dǎo)致信號(hào)變化。可以用下列方法來(lái)確定最小需要k線的數(shù)量,在“快速”中設(shè)置一個(gè)數(shù)a,用k線回放看一下信號(hào)變化情況,為了保險(xiǎn)起見,一般對(duì)于新手要求一天內(nèi)的信號(hào)不變化,那么這個(gè)a就可以。個(gè)人經(jīng)驗(yàn),不一定是真理,僅供參考。
1.17同一策略,為什么信號(hào)會(huì)不同
我有兩個(gè)金字塔的實(shí)盤帳戶在用,為什么信號(hào)都不同.
數(shù)據(jù)不一致引起的,參與運(yùn)算的數(shù)據(jù)長(zhǎng)短不同,會(huì)出現(xiàn)信號(hào)的不同.
就比方說(shuō),如果你的策略里有跨周期調(diào)用數(shù)據(jù)
1分鐘取2小時(shí)跨周期指標(biāo),如果一個(gè)電腦上可以取到昨天的指標(biāo)數(shù)據(jù)。而另一個(gè)電腦上只能取到前天的,不能取到昨天的數(shù)據(jù)。就會(huì)導(dǎo)致兩者的信號(hào)不一致。這就是由兩者使用的歷史K線數(shù)不同引起的。
跨周期引用數(shù)據(jù),目前是不會(huì)自動(dòng)的補(bǔ)充數(shù)據(jù)的,需要您手工的保證有這些數(shù)據(jù).
http://www.weistock.com/bbs/dispbbs.asp?boardid=16&Id=332問(wèn)題4中的調(diào)試技巧,將公式運(yùn)行時(shí)的一些關(guān)鍵變量記錄下來(lái),跟蹤看看.
[此貼子已經(jīng)被作者于2013/11/21 13:14:45編輯過(guò)]
....
[此貼子已經(jīng)被作者于2013/6/27 10:28:31編輯過(guò)]
...
[此貼子已經(jīng)被作者于2013/6/27 10:27:36編輯過(guò)]
二代碼功能編寫實(shí)現(xiàn)
2.1函數(shù)參數(shù)缺省值中間不能空缺
幾乎所有的編程語(yǔ)言函數(shù)缺省值都是中間不能空缺的,只能從后面空缺;請(qǐng)仔細(xì)查看函數(shù),不要杜撰參數(shù)。
拿后臺(tái)程式化交易開多指令為例:錯(cuò)誤示例-------tbuy(zd,1,mkt,'003028',’IF12’);以為只要使用了mkt指令后,價(jià)格就不需要填寫了,這是錯(cuò)誤的方法,(3)中給出了正確寫法。
(1)正確寫法:tbuy(zd,1,mkt);
后面的參數(shù)金字塔將自行按默認(rèn)處理。
(2)正確寫法:tbuy(zd,1,lmt,c,0) ;
后面的帳號(hào)和品種均按默認(rèn)處理。
(3)錯(cuò)誤寫法:tbuy(zd,1,mkt,'003028',’IF12’)
中間的兩個(gè)委托價(jià)格沒(méi)有填寫,金字塔會(huì)吧'003028', ’IF12’當(dāng)做價(jià)格來(lái)處理,
正確寫法:tbuy(zd,1,mkt,0,0,'003028',’IF12’) ;
7個(gè)參數(shù)一一對(duì)應(yīng)。
2.2限定交易次數(shù)或者當(dāng)天不平倉(cāng)
【金字塔使用技巧】----限定一天交易次數(shù)
variable:num=0;// 全局變量,來(lái)控制當(dāng)天交易次數(shù)
cs:=5;//限定一天最多交易5次
ma5:=ma(5,close);
ma20:=ma(20,close);
con1:=cross(ma5,ma20);
con2:=cross(ma20,ma5);
if cond2 and holding>0 then sell(1,1,market);
if cond1 and holding=0 and lossnum<5 then
begin
buy(1,1,market);
num:=num+1;
end
if time=closetime(0) then num:=0;// 商品期貨,收盤的同時(shí),num賦值為0
//收盤num不賦值為0,第二天就不再開倉(cāng)了
【金字塔使用技巧】----當(dāng)日虧損超過(guò)5次,則不再交易[圖表程序化交易]
當(dāng)日虧損交易次數(shù)超過(guò)5次,則不再開倉(cāng)如何寫?----圖表交易
部分示例(1) :
variable:lossnum=0;// 全局變量,平倉(cāng)時(shí)判斷一下是盈利/虧損,若虧損lossnum就加1
cs:=5;//限定一天最多虧損5次
ma5:=ma(5,close);
ma20:=ma(20,close);
con1:=cross(ma5,ma20);
con2:=cross(ma20,ma5);
if cond2 and holding>0 then
begin
sell(1,1,thisclose);
if c<enterprice then lossnum:=lossnum+1;
end
if cond1 and holding=0 and lossnum<cs then buy(1,1,thisclose);
if time=closetime(0) then lossnum:=0;// 商品期貨,收盤的同時(shí),lossnum賦值為0
//收盤lossnum不賦值為0,第二天就不再開倉(cāng)了
【金字塔使用技巧】----次交易日起賣出如何編寫
[圖表程序化交易] N分鐘周期下,買入后,要求從次一個(gè)交易日起開始賣出(不能從下一根K線起),這個(gè)“次交易日起”條件如何實(shí)現(xiàn)?
variable:flag=0;// 全局變量,買開倉(cāng)時(shí)賦值為1
if cond1 and holding=0 then
begin
buy(1,1,market);
flag:=1;
end
if cond2 and holding>0 and flag=0 then sell(1,1,thisclose);
if time=CLOSETIME(0) then flag:=0;//收盤的同時(shí),flag賦值為0
2.3限定公式運(yùn)行的交易帳號(hào)/機(jī)器碼/周期/有效期/品種/期貨交易所
【金字塔使用技巧】----限定交易賬戶為351579使用
if not(strcmp(taccount( 1),'351579')=0) then exit; //限定交易賬戶為351579使用
drawtextex(1 ,0 ,2 ,2 ,taccount(1));
if not(strcmp(taccount( 1),'351579')=0) then
begin
drawtextex(1,1,500,500,'授權(quán)賬號(hào)不正確-非351579,程序無(wú)法使用');
exit;
end
【金字塔使用技巧】----限定機(jī)器碼為888888888的機(jī)器使用
【金字塔使用技巧】----限定周期,比如1分鐘
if DATATYPE<>1 then
begin
drawtextex(1,1,50,950,'本程序使用1分鐘周期,請(qǐng)切換到1分鐘周期');exit;
end
【金字塔使用技巧】----限定有效期
//銅的代碼為CU
DRAWTEXTEX(1 ,0 ,2 ,2 ,stkname); //品種名稱
if STRCMP(STRLEFT(STKLABEL ,2 ), 'CU')<>0 then exit;
【金字塔使用技巧】----限定公式只在國(guó)內(nèi)4個(gè)期貨交易所品種上運(yùn)行
//中金所、上海、大連、鄭州
SH:=STRCMP(MARKETLABEL,'ZJ')=0 OR STRCMP(MARKETLABEL,'SQ')=0 OR STRCMP(MARKETLABEL,'DQ')=0 OR STRCMP(MARKETLABEL,'ZQ')=0;
IF NOT(SH=1) THEN EXIT;
2.4限定交易時(shí)段下單(剔除集合競(jìng)價(jià))
【金字塔使用技巧】----限定交易時(shí)段下單(剔除集合競(jìng)價(jià))--圖表程序化
// opentime(1)開盤時(shí)間 closetime(0)收盤時(shí)間
// DYNAINFO(207)交易所時(shí)間
time>opentime(1) and time<closetime(0) and not(islastbar) or (DYNAINFO(207)>opentime(1) and DYNAINFO(207)<closetime(0) and islastbar)
【金字塔使用技巧】----限定交易時(shí)段下單(剔除集合競(jìng)價(jià))--后臺(tái)程序化
// DYNAINFO(207)交易所時(shí)間
DYNAINFO(207)>opentime(1) and DYNAINFO(207)<closetime(0) and islastbar
【金字塔使用技巧】----收盤前1分鐘--圖表程序化
M1:= T0TOTIME(TIMETOT0(CLOSETIME(0))-60); //收盤前1分鐘
M15:=T0TOTIME(TIMETOT0(CLOSETIME(0))-60*15); //收盤前15分鐘
【金字塔使用技巧】----顯示當(dāng)前未走完K線還剩多長(zhǎng)時(shí)間
M1:TIME0-TIMETOT0(DYNAINFO(207)),LINETHICK0;//剩余秒數(shù)
【金字塔使用技巧】----用時(shí)間參數(shù)限定何時(shí)平倉(cāng)--圖表程序化
一分鐘環(huán)境下,當(dāng)天第n個(gè)30分鐘K線內(nèi)開倉(cāng)的倉(cāng)位,要求在第n個(gè)30分鐘K內(nèi)平倉(cāng),也就是第n+1個(gè)30分鐘K線剛開始前平倉(cāng)。
ma5:ma(close,2);
ma15:ma(close,5);
//5日均線上穿10日均線,開多
buycond:=CROSS(ma5,ma15);
if buycond then buy(holding=0,1,market);
N:=barslast(date<>ref(date,1))+1;
r2:=mod(N,30);
if r2=29 then sell(holding>0,1,limitr,c);//在第29分鐘平倉(cāng);
2.5均線變色
均線變色
//5日均線,連續(xù)3個(gè)向上后(即今天的數(shù)值大于昨天的,連續(xù)3個(gè)),均線用紅色顯示,
//連續(xù)3個(gè)向下后,用綠色顯示;
//如果數(shù)值有上有下,用白色顯示。
mc:ma(close,5),colorwhite;
rmc:=ref(mc,1);
partline(all(mc>=rmc,3),mc,colorred);
partline(all(mc<=rmc,3),mc,colorgreen);
2.6之字高點(diǎn)連線OR低點(diǎn)連線
【金字塔使用技巧】----之字高點(diǎn)連線OR低點(diǎn)連線
//把之字每一個(gè)之字高點(diǎn)之間,連成線
//把之字每一個(gè)之字低點(diǎn)之間,連成線
//A:代表之字線
A:ZIG(4,0.5);
POLYLINE(cross(A,refx(A,1)),A,COLORRED,1,VTSOLID);//高點(diǎn)連線
POLYLINE(cross(refx(A,1),A),A,COLORgreen,1,VTSOLID);//低點(diǎn)連線
【金字塔使用技巧】----自己編寫波段高價(jià)/低價(jià)
//波段高價(jià)-紅色標(biāo)出
//波段低價(jià)-綠色標(biāo)出
A:=ZIG(4,0.1);
DRAWTEXT(cross(A,refx(A,1)),h+2*mindiff,NUMTOSTR(h,0),COLORRED);//波段高價(jià)-紅色
DRAWTEXT(cross(refx(A,1),A),l,NUMTOSTR(l,0),COLORGREEN);//波段低價(jià)-綠色
2.7監(jiān)控指數(shù),對(duì)具體品種下單
[后臺(tái)程序化交易] 監(jiān)控指數(shù)
IF13,對(duì)具體合約IF01下單,注意事項(xiàng) (1).監(jiān)控里只用監(jiān)控指數(shù)----如IF13
(2).注意下單價(jià)格
限價(jià)單委托:忌用CLOSE,因?yàn)檫@樣會(huì)導(dǎo)致用指數(shù)的最新價(jià)下委托單;用DYNAINFO2( 7,'IF01')取股指01合約的最新價(jià)去下委托單,具體如下示例
//限價(jià)—優(yōu)2個(gè)最小變動(dòng)價(jià)掛單
tbuy(1,1,LMT, DYNAINFO2 (7,'IF01')+2*MINDIFF,0,'','IF01');
tbuy(1,1,MKT,0,0,'','IF01');//市價(jià)掛平倉(cāng)單
2.8想開單成交以后就掛平單
[后臺(tái)程序化交易] 想讓它開單成交以后就掛平單,如何實(shí)現(xiàn)?
以開多平多為例說(shuō)明如下:
邏輯上
1.先判斷上一筆單子的類型,如果上一次信號(hào)類型為開多
2.上一筆開多委托沒(méi)有未成交單
在滿足條件1和條件2的情況下
3.掛平多單
//TTYPE(1)=1上一筆委托是開多;TISPRVREMAIN(1)=0上一筆開多已經(jīng)成交(沒(méi)有未成交),則掛平倉(cāng)單--市價(jià)
IF TTYPE(1)=1 AND TISPRVREMAIN(1)=0 THEN tsell(1,1,MKT,0,0,'','IF00');//市價(jià)掛平倉(cāng)單
//如果想在開倉(cāng)價(jià)基礎(chǔ)上加2點(diǎn)掛平倉(cāng)單子,修改如下
IF TTYPE(1)=1 AND TISPRVREMAIN(1)=0 THEN tsell(1,1,LMT,TENTERPRICE-2,0,'','IF00');
2.9后臺(tái)—平倉(cāng)反手
[后臺(tái)程序化交易] 平倉(cāng)反手
ma5:ma(close,5);
ma15:ma(close,15);
//5日均線上穿15日均線,平空開多
if CROSS(ma5,ma15) and Tholding < 0 then
begin
Tsellshort(1, 0, mkt);
Tbuy(1, 1, mkt);
end
IF CROSS(ma5,ma15) AND Tholding = 0 THEN Tbuy(1, 1, mkt,0,0);
//5日均線下破10日均線,平多開空
if CROSS(ma15,ma5) and Tholding > 0 then
begin
Tsell(1, 0, mkt,0,0);
Tbuyshort(1, 1, mkt,0,0);
end
IF CROSS(ma15,ma5) AND Tholding = 0 THEN Tbuyshort(1, 1, mkt,0,0);
[后臺(tái)程序化交易] 公式中發(fā)郵件,如何實(shí)現(xiàn)?
ma5:ma(close,5);
ma15:ma(close,15);
//5日均線上穿15日均線,平空開多
if CROSS(ma5,ma15) and Tholding < 0 then
begin
Tsellshort(1, 0, mkt);
Tbuy(1, 1, mkt);
if ISLASTBAR then SENDMAIL(1 ,'123456@QQ.COM','開多','平空開多');//發(fā)郵件
end
IF CROSS(ma5,ma15) AND Tholding = 0 THEN Tbuy(1, 1, mkt,0,0);
//5日均線下破10日均線,平多開空
if CROSS(ma15,ma5) and Tholding > 0 then
begin
Tsell(1, 0, mkt,0,0);
Tbuyshort(1, 1, mkt,0,0);
if ISLASTBAR then SENDMAIL(1 ,'123456@QQ.COM','開空','持倉(cāng)變了-平多開空'); //發(fā)郵件
end
IF CROSS(ma15,ma5) AND Tholding = 0 THEN Tbuyshort(1, 1, mkt,0,0);
[此貼子已經(jīng)被作者于2013/8/26 14:37:23編輯過(guò)]
2.11TIME/CURRENTTIME/ DYNAINFO(207) 區(qū)別
【金字塔使用技巧】---- TIME 和 CURRENTTIME 區(qū)別
TIME:取周期時(shí)間;返回序列數(shù)據(jù)
CURRENTTIME:用戶本地計(jì)算機(jī)系統(tǒng)時(shí)間;--返回常數(shù)
DYNAINFO(207):交易所時(shí)間;--返回常數(shù)
TIME返回值是一組序列值,在不同的K線上能看到不同的值。如果是9點(diǎn)開盤,1分鐘周期的第一個(gè)K線就是090100,而5分鐘則是090500。
CURRENTTIME返回值只有一個(gè),永遠(yuǎn)都是計(jì)算機(jī)最新系統(tǒng)時(shí)間。DYNAINFO(207) 返回值只有一個(gè),永遠(yuǎn)都是交易所最近一筆行情時(shí)間。如果用戶需要精確的時(shí)間做某些事情,請(qǐng)使用CURRENTTIME或DYNAINFO(207)。圖表程序化交易必須要使用一組序列數(shù)據(jù),故盡量不要在圖表程序化交易策略上使用返回常數(shù)的CURRENTTIME或DYNAINFO(207)。
如果使用CURRENTTIME請(qǐng)定期更新您的系統(tǒng)時(shí)間,保證時(shí)間的準(zhǔn)確性,可在“工具->選項(xiàng)->升級(jí)和時(shí)間”進(jìn)行更新。
2.12Holding,THolding,THolding2函數(shù)
Holding,THolding,THolding2的區(qū)別:
Holding:主要用在圖表程序化交易中,得到[圖表中當(dāng)前顯示品種(這里只有一個(gè)品種,疊加品種不算)]的虛擬持倉(cāng)量,與帳戶無(wú)關(guān).多倉(cāng)返回正數(shù),空倉(cāng)返回負(fù)數(shù).在發(fā)出 Buy , Sell 等指令后,立即減去相應(yīng)的持倉(cāng)手?jǐn)?shù),不管指令最后有沒(méi)有成交.要注意的是,圖表程序化交易不支持鎖倉(cāng),也就是如果 Holding 為正數(shù)(多倉(cāng))時(shí),如果使用 BuyShort 指令開空單,是無(wú)效的.此時(shí) Holding 值不會(huì)因 BuyShort 指令而改變.
THolding:主要在后臺(tái)程序化交易中使用,得到[當(dāng)前帳戶的][所有監(jiān)控品種的(可能同時(shí)監(jiān)控幾個(gè)品種,但因?yàn)橛玫氖峭粋€(gè)交易策略,所以所有品種的持倉(cāng)數(shù)量相同)]可用持倉(cāng)量,不包括已委托掛單還未成交的量.多倉(cāng)返回正數(shù),空倉(cāng)返回負(fù)數(shù).所謂可用的持倉(cāng)量,是指在 TBuy 指令發(fā)出后不會(huì)馬上變化(因?yàn)榇藭r(shí)還沒(méi)有 TBuy 回來(lái),所以這個(gè)量不會(huì)變化),只有成交后才會(huì)變化.TSell 指令發(fā)出后立即變化(因?yàn)檫@個(gè)量已經(jīng)發(fā)到交易所去委托掛單了,不可再重復(fù)支配);撤單后恢復(fù)可用持倉(cāng);成交后 THolding 的值不變.
THolding2:主要在后臺(tái)程序化交易中使用,得到[當(dāng)前帳戶的][所有監(jiān)控品種的(可能同時(shí)監(jiān)控幾個(gè)品種,但因?yàn)橛玫氖峭粋€(gè)交易策略,所以所有品種的持倉(cāng)數(shù)量相同)]總共持倉(cāng)量,包括已委托掛單還未成交的量.多倉(cāng)返回正數(shù),空倉(cāng)返回負(fù)數(shù). TBuy 指令發(fā)出后不會(huì)馬上變化(因?yàn)榇藭r(shí)還沒(méi)有 TBuy 回來(lái),所以這個(gè)量不會(huì)變化),只有成交后才會(huì)變化.TSell 指令發(fā)出后也不會(huì)變化(因?yàn)檫@個(gè)量雖然已經(jīng)發(fā)到交易所去委托掛單了,但還沒(méi)有成交);撤單后不影響總共持倉(cāng)量;成交后增減相應(yīng)持倉(cāng)量.
2.13 TRIMPRICE函數(shù)
【金字塔使用技巧】---- TRIMPRICE函數(shù)
TRIMPRICE函數(shù)為數(shù)字整理函數(shù),主要用于程序化交易的下單價(jià)格整理.該函數(shù)在調(diào)用時(shí)需要從系統(tǒng)中讀取相關(guān)配置信息,所以該函數(shù)對(duì)系統(tǒng)資源消耗較大,尤其是在多核處理器優(yōu)化時(shí)調(diào)用該函數(shù),更是會(huì)導(dǎo)致系統(tǒng)的速度大幅降低.
一般該函數(shù)用于下單時(shí)對(duì)指定價(jià)格進(jìn)行整理以避免下錯(cuò)單。
w:=mindiff*o;
kdj:=max(高點(diǎn),o)+w;
kkj:=min(低點(diǎn),o)-w;
if kd then
begin
平空:sellshort(holding<0,0,limitr,trimprice(kkj)); //平空
開多:buy(holding=0,asset,limitr,trimprice(kdj)); //開多
end
使用了IF...TEHN控制語(yǔ)句,只有在KD的條件滿足時(shí)才執(zhí)行trimprice函數(shù)的調(diào)用工作
[此貼子已經(jīng)被作者于2013/6/20 17:33:24編輯過(guò)]