《日內(nèi)交易策略--谷物期貨交易實戰(zhàn)指南》中的策略 [開拓者 TB]
- 咨詢內(nèi)容:
《日內(nèi)交易策略--谷物期貨交易實戰(zhàn)指南》中提到的策略。
缺點:有時因r比較小,止損會很??;在有日內(nèi)明顯趨勢的時候,因為止盈,而僅賺到比較小的部分。
怎么改呢?給點意見唄- Params
- vars
- Bool buycon; //開多條件
- Bool sellcon; //開空條件
- Bool specialbuy;
- Bool specialsell;
- Numeric r;
- Numeric temp;
- Numeric MyEntryPrice;
- String sFileName;
- Numeric BST;
- Numeric HD;
- Numeric LD;
- Numeric N;
- Numeric i;
-
- begin
- BST=BarsSinceToday+1;
- sFileName="d:\\my_TB\\RetracementBreakupBT"+Text(CurrentDate)+".log";
- PlotString("barnum",Text(BST),low-5);
- N=BST; //求從開始到前一根K線的最大值最小值,Lowest和LowD求最值都包含了這個K線的最值。
- LD=Low[1];
- For i = 1 To N-1
- {
- temp=LD;
- LD=Min(Low[i],temp);
- }
-
- HD=High[1];
- For i = 1 To N-1
- {
- temp=HD;
- HD=Max(High[i],temp);
- }
-
- FileAppend(sFileName, "\n進(jìn)入第"+Text(BST)+"跟K線");
- FileAppend(sFileName, "\n已知最低點"+Text(LD)+" GetGlobalVar(0)"+Text(GetGlobalVar(0))+" GetGlobalVar(1)"+Text(GetGlobalVar(1))+" GetGlobalVar(2)"+Text(GetGlobalVar(2)));
-
- If(Date != Date[1] || BarStatus == 0)
- {
- SetGlobalVar(0,0); //用全局變量0來做趨勢的指標(biāo),1為向上,0為中立,-1為向下
- SetGlobalVar(1,0); //用全局變量1來表示高點
- SetGlobalVar(2,0); //用全局變量2來表示低點
- SetGlobalVar(3,0); //用全局變量3來表示無持倉的高低點出現(xiàn)在當(dāng)日第幾根K線
- SetGlobalVar(4,0); //用全局變量4來表示孕線數(shù)
- SetGlobalVar(5,0); //用全局變量5來表示回撤激值點
- SetGlobalVar(6,0); //用全局變量6來表示r
- FileAppend(sFileName, "\n 全局變量初始化");
- return; //當(dāng)日的第一根K線,推出、不交易
- }
-
- If(GetGlobalVar(0)==0)
- {
- if (close[1] > open[1])
- {
- SetGlobalVar(0,1);
- SetGlobalVar(1,HD);
- SetGlobalVar(2,LD);
- SetGlobalVar(3,BST-1);
- FileAppend(sFileName,"在第"+Text(BST-1)+"跟K線,確定最初看漲趨勢");
- return;
- }
- else if (close[1] < open[1])
- {
- SetGlobalVar(0,-1);
- SetGlobalVar(1,HD);
- SetGlobalVar(2,LD);
- SetGlobalVar(3,BST-1);
- FileAppend(sFileName,"在第"+Text(BST-1)+"跟K線,確定最初看跌趨勢");
- return;
- }
- else return;
- }
-
-
-
- //四種出現(xiàn)新高新低的新情況
- If(GetGlobalVar(0)==1 And High[1]>GetGlobalVar(1) And MarketPosition==0)
- {
- SetGlobalVar(1,High[1]);
- SetGlobalVar(4,0);
- SetGlobalVar(5,0);
- FileAppend(sFileName,"在上一根K線,有新高點產(chǎn)生,看漲傾向不變。");
- }
-
- If(BST==4) FileAppend(sFileName,"看看第四個K線到不到這【1】"+Text(Low[1])+" "+Text(GetGlobalVar(2))+" "+Text(GetGlobalVar(0)));
-
- If(GetGlobalVar(0)==1 And Low[1]<GetGlobalVar(2) )
- {
- If(BST==4) FileAppend(sFileName,"看看第四個K線進(jìn)不進(jìn)來");
- SetGlobalVar(0,-1);
- SetGlobalVar(2,Low[1]);
- SetGlobalVar(4,0);
- SetGlobalVar(5,0);
- FileAppend(sFileName,"在上一根K線,有新低點產(chǎn)生,由看漲傾向變成看跌傾向。");
- }
- If(GetGlobalVar(0)==-1 And Low[1]<GetGlobalVar(2) And MarketPosition==0)
- {
- SetGlobalVar(2,Low[1]);
- SetGlobalVar(4,0);
- SetGlobalVar(5,0);
- FileAppend(sFileName,"在上一根K線,有新低點產(chǎn)生,看跌傾向不變。");
- }
- If(GetGlobalVar(0)==-1 And High[1]>GetGlobalVar(1) )
- {
- SetGlobalVar(0,1);
- SetGlobalVar(1,High[1]);
- SetGlobalVar(4,0);
- SetGlobalVar(5,0);
- FileAppend(sFileName,"在上一根K線,有新高點產(chǎn)生,由看跌傾向變成看漲傾向。");
- }
-
-
- If( MarketPosition==0)
- {
- If( High[1] < GetGlobalVar(1) And Low[1] >GetGlobalVar(2) ) //孕線
- {
- temp=GetGlobalVar(4)+1;
- SetGlobalVar(4,temp);
- FileAppend(sFileName,"上一根K線為孕線,此時孕線數(shù)為"+Text(GetGlobalVar(4)));
- }
- If(GetGlobalVar(0)==1 And High[1]<High[2] And Low[1]<Low[2]) //看漲時的回撤極值點
- {
- SetGlobalVar(5,Low[1]);
- FileAppend(sFileName,"看漲傾向下有新回撤極值點");
- }
- If(GetGlobalVar(0)==-1 And High[1]>High[2] And Low[1]>Low[2]) //看跌時的回撤極值點
- {
- SetGlobalVar(5,High[1]);
- FileAppend(sFileName,"看跌傾向下有新回撤極值點");
- }
- }
-
-
- specialbuy = (GetGlobalVar(0)==1 And GetGlobalVar(4)==1 And BST==3 And High> GetGlobalVar(1) );
- specialsell= (GetGlobalVar(0)==-1 And GetGlobalVar(4)==1 And BST==3 And Low < GetGlobalVar(2) );
-
- buycon = ( GetGlobalVar(0)==1 And GetGlobalVar(4)>= 2 And High > GetGlobalVar(1));
- sellcon= ( GetGlobalVar(0)==-1 And GetGlobalVar(4)>= 2 And Low < GetGlobalVar(2) );
-
- If((buycon || specialbuy) And MarketPosition==0)
- {
- temp=GetGlobalVar(1);
- Buy(1,temp);
- FileAppend(sFileName,"");
- }
-
- If((sellcon||specialsell) And MarketPosition==0)
- {
- temp=GetGlobalVar(2);
- SellShort(1,temp);
- }
-
- If(GetGlobalVar(1) == 0) FileAppend(sFileName,"計算r時高點為0,異常!");
- If(GetGlobalVar(2) == 0) FileAppend(sFileName,"計算r時低點為0,異常!");
-
- If(GetGlobalVar(5)==0)
- r=GetGlobalVar(1)-GetGlobalVar(2);
- Else If(GetGlobalVar(0)==1)
- r=GetGlobalVar(1)-GetGlobalVar(5);
- Else If(GetGlobalVar(0)==-1)
- r=GetGlobalVar(5)-GetGlobalVar(2);
- FileAppend(sFileName,"計算得出的r為"+Text(r));
-
-
- //止損止盈部分
- MyEntryPrice=AvgEntryPrice;
- If(MarketPosition==1 And BarsSinceEntry>=1)
- {
- If(High>=MyEntryPrice + 2*r)
- {
- temp=MyEntryPrice+2*r;
- If(Open>temp) temp=Open;
- Sell(1,temp);
- SetGlobalVar(4,0);
- SetGlobalVar(1,HD);
- SetGlobalVar(2,LD);
- }Else If(Low<MyEntryPrice-r)
- {
- temp=MyEntryPrice-r;
- If(Open<temp) temp=Open;
- Sell(0,temp);
- SetGlobalVar(1,HD);
- SetGlobalVar(2,LD);
- SetGlobalVar(4,0);
- }
- }Else If(MarketPosition==-1 And BarsSinceEntry>=1)
- {
- If(Low<MyEntryPrice-2*r)
- {
- temp=MyEntryPrice-2*r;
- If(Open<temp) temp=Open;
- BuyToCover(1,temp);
- SetGlobalVar(1,HD);
- SetGlobalVar(2,LD);
- SetGlobalVar(4,0);
- }Else If(High>MyEntryPrice+r)
- {
- temp=MyEntryPrice+r;
- If(Open>temp) temp=Open;
- BuyToCover(1,temp);
- SetGlobalVar(1,HD);
- SetGlobalVar(2,LD);
- SetGlobalVar(4,0);
- }
- }
-
- //尾盤平倉
- If((Date[-1] != InvalidInteger && Date != Date[-1]) || (Date[-1]==InvalidInteger && Date<CurrentDate))
- {
- Sell(1,Close);
- BuyToCover(1,Close);
- }
-
- end
- Params
- TB技術(shù)人員:
可否不設(shè)止盈,改用跟蹤止損,比如用吊燈止損或棘輪止損,這樣就能讓利潤奔跑.
這是棘輪止損的鏈接:http://bbs.tb18.net/thread-19775-1-1.html - TB客服: 剛到論壇這么短的時間,能寫出這個,真是挺不一般的人物呀。
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 1145508240 進(jìn)行 有償 編寫!(不貴!點擊查看價格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容