http://www.weistock.com/bbs/dispbbs.asp?BoardID=4&ID=2183&skin=0
本示例以后臺自動交易的方式,展現(xiàn)了金字塔實現(xiàn)延遲信號確認(rèn)的工作原理。
本代碼可以實現(xiàn)3天現(xiàn)上穿5天線后,20秒等待信號確認(rèn)后,再發(fā)開倉單。
請選擇固定時間間隔模式運行后臺自動交易,間隔時間設(shè)為1秒
本公式會在運行時產(chǎn)生很多臨時數(shù)據(jù),請用戶再第二天交易前清空這些歷史變量,否則會導(dǎo)致與第二天的臨時變量沖突。方法 工具菜單-》數(shù)據(jù)-》全局變量,進去后,選擇“清空”按鈕
MA1:=MA(CLOSE,3);
MA2:=MA(CLOSE,5);
CROS:=CROSS(MA1,MA2);
CROS2:=CROSS(MA2,MA1);
BUY1:=FALSE;
IF ISLASTBAR THEN
BEGIN
IF CROS THEN
BEGIN
//將當(dāng)前信號周期置全局變量數(shù)據(jù)庫
//數(shù)據(jù)名字前加信號周期,標(biāo)記周期位置
CRTEMP:='TEMP1'&NUMTOSTR( BARPOS, 0);
//讀取原有變量的時間,判斷是否到延時時間
BUYTIME1:=EXTGBDATA(CRTEMP);
BUYTIME2:=TIMETOT0(CURRENTTIME);
DEBUGOUT('D1 %.0f',BUYTIME1);
IF BUYTIME1 > 1 THEN //第一次信號的原數(shù)據(jù)庫讀取會得到0值
BEGIN
DEBUGOUT('D2 %.0f',BUYTIME2 - BUYTIME1);
IF BUYTIME2 - BUYTIME1 > 20 THEN
BEGIN
//大于20秒的延遲,表示信號已經(jīng)得到確認(rèn)
BUY1:=TRUE;
END
END
ELSE
BEGIN
//第一次信號位置記錄
EXTGBDATASET(CRTEMP,TIMETOT0(CURRENTTIME));
END
END
ELSE
BEGIN
//否則表示信號中間消失了
CRTEMP:='TEMP1'&NUMTOSTR( BARPOS, 0);
EXTGBDATASET(CRTEMP,0);
END
END
TBUY(BUY1,1,MKT);
TSELL(CROS2,0,MKT);