BUY(COND,V,Type,P);的格式問題。 [金字塔]
- 咨詢內容:
請教:如果我用 if then begin 語句定義了一系列的開倉條件 以及開倉價格 ,那么在接下來的寫開倉命令
還是要按照BUY(COND,V,Type,P);的格式寫嗎? 這是cond已經在前面定義一大堆了,后面如何處理?
- 金字塔客服:
這個有什么疑問嗎?cond寫好后,后面就是下單數量,下單類型,下單價格
- 用戶回復:
我是初學者,在自己練習學寫海龜模型,其中遇到了些問題,寫出來的代碼在K線圖上沒有交易顯示,而且測試只有一次開倉,到最后測試日強制平倉。還有這個問題,一直困擾我,估計很多初學者也會遇到:如果我用 if then begin 語句定義了一系列的開倉條件 以及開倉價格 ,那么在接下來的寫開倉命令 還是要按照BUY(COND,V,Type,P);的格式寫嗎? 這是cond已經在前面定義一大堆了,后面如何處理
這是我的代碼,大神給指導下唄,也有利于其他初學者學習。謝謝//聲明參數input:D20(20,10,60,1);;input:D10(10,5,30,1);input:ATRL(13,5,30,1);input: risk(1,0.5,5,0.1)
//聲明變量VARIABLE:H20:=close;VARIABLE:L20:=CLOSE;VARIABLE:H10:=Close;VARIABLE:L10:=CLOSE;
//VARIABLE :_DEBUG: = 1 ; //是否輸出前臺交易指令 (借鑒)
VARIABLE:myenterprice:=0; //初始開倉價格;VARIABLE:myexitprice:=0;//初始平倉價格VARIABLE:units:=0;//交易單位VARIABLE:position:=0;//初始倉位VARIABLE:sendorderthisbar:=0;Variable:units:=0;Variable:tunits:=0;VARIABLE:jdcond:=0;VARIABLE:pdcond:=0;VARIABLE:dzcond:=0;VARIABLE:jkcond:=0;VARIABLE:pkcond:=0;VARIABLE:kzcond:=0;
H20:=ref(HHV(h,20),1);L20:=ref(LLV(l,20),1);H10:=ref(HHV(h,10),1);L10:=ref(LLV(l,10),1);
KD:=c>H20; //開多條件PD:=c<L10; //平多條件KK:=c<L20; //開空條件PK:=c>H10; //平空條件N:=ma(TR,ATRL);units:=ASSET*risk*0.01/N;
//建立倉位if BARPOS=1 then begin end; //初始化; if position=0 and BARPOS>D20 and h>l then begin //建立多頭倉位 if KD then BEGIN myentryprice:=if(open>H20+MINDIFF, open ,H20+MINdiff); buy(KD,units,LIMITR,myentryprice); position:=1; tuntis:=1; sendoederthisbar:=1; end; //建立空頭倉位 if KK then begin myentryprice:=if(open<L20-MINDIFF ,open ,L20-MINDIFF); BUYSHORT( KK,units,LIMITR,myentryprice); position:=-1; tunits:=1; sendorderthisbar:=1; end end
// jdcond:=( position=1 and BARPOS>D20 and H>l ) ; if jdcond then begin //多頭加倉 WHILE (h>myentryprice+0.5*N) and tunits<4 do begin myentryprice:=if(open>myentryprice+0.5*N,open,myentryprice+0.5*N); myentryprice:=CEILING(myentryprice/MINDIFF)*Mindiff; buy( (h>myentryprice+0.5*N) and tunits<4 ,units,LIMITR,myentryprice); position:=1; tunits:=tunits+1; sendoederthisbar:=1; end //多頭離場 pdcond:= pd and sendorderthisbar=0 ; if pdcond then begin myexitprice:=if(open<L10-MINDIFF,open,L10-MINDIFF); sell( pdcond, 0,limitr,myexitprice); position:=0; tunits:=0; end //多頭止損 dzcond:=( low<myentryprice-2*N and position=1 and sendorderthisbar=0) if dzcond then begin myexitprice:=if(open<myentryprice-2*N,open,myentryprice-2*N); myexitprice:=floor(myexitprice/MINDIFF)*mindiff; sell( dzcond,0,limitr,myexitprice); position:=0; tunits:=0; ENd; end //加倉 jkcond:= (position=-1 and BARPOS>d20 and H>l) ; if jkcond then begin //空頭加倉 WHILE (L<myentryprice-0.5*N) and tunits<4 do begin myentryprice:=if(open<myentryprice-0.5*N,open,myentryprice-0.5*N); myentryprice:=floor(myentryprice/MINDIFF)*Mindiff; buyshort( (L<myentryprice-0.5*N) and tunits<4,units,LIMITR,myentryprice); position:=-1; tunits:=tunits+1; sendoederthisbar:=1; end //空頭離場 pkcond:= pk and sendorderthisbar=0 ; if pkcond then begin myexitrice:=if(open>H10+MINDIFF,open,h10+MINDIFF); sellshort( pkcond,0,limitr,myexitprice); position:=0; tunits:=0; end //空頭止損 kzcond:=( h>myentryprice+2*N and position=-1 and sendorderthisbar=0) if kzcond then begin myexitprice:=if(open>myentryprice+2*N,open,myentryprice+2*N); myexitprice:=CEILING(myexitprice/MINDIFF)*mindiff; sellshort( kzcond,0,limitr,myexitprice); position:=0; tunits:=0; ENd; end
//信號語句排列規則——先平后開//“費率設置”按鈕——用于合理設置模型“費率”,以便在圖形上正確輸出如下帳戶信息:{持倉:holding,linethick0;資產:asset,noaxis;可用現金:cash(0),linethick0;} - 網友回復:
1循環是用來干什么的?這樣寫是為了實現什么目標?
[此貼子已經被作者于2014/5/12 9:55:22編輯過]
2還不理解嗎?條件,價格照樣寫進去啊,buy里面的參數不能省略。你以為前面定義好條件和價格之后,就只要寫個buy 就能運行的嗎? - 網友回復: 這個是比照金字塔系統里面的海龜原程序寫的,循環是加倉到4次為止。 我再試試 原系統里面設置了一個VARIABLE : _DEBUG = 1 ;后面就用_DEBUG代替所有定義的開倉條件了,不知道這個下劃線的變量是什么意思,下劃線有什么特殊功能嗎?
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容