R-Breaker交易系統(tǒng)策略(TB版)_第1頁
R-Breaker交易系統(tǒng)策略(TB版)_第2頁
R-Breaker交易系統(tǒng)策略(TB版)_第3頁
R-Breaker交易系統(tǒng)策略(TB版)_第4頁
R-Breaker交易系統(tǒng)策略(TB版)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

R_Breaker交易系統(tǒng)(TB版)策略概述R_Breaker交易系統(tǒng)是一種基于價(jià)格行為的交易策略,旨在通過計(jì)算關(guān)鍵支撐和阻力水平來捕捉市場(chǎng)中的買賣機(jī)會(huì)。策略中定義了多個(gè)參數(shù)和變量,以動(dòng)態(tài)調(diào)整這些關(guān)鍵水平,并根據(jù)當(dāng)前市場(chǎng)價(jià)格走勢(shì)和持倉情況執(zhí)行相應(yīng)的交易操作。參數(shù)定義notbef:開始時(shí)間參數(shù),默認(rèn)值為9.00(表示上午9點(diǎn))notaft:結(jié)束時(shí)間參數(shù),默認(rèn)值為14.55(表示下午2點(diǎn)55分)f1:相關(guān)計(jì)算系數(shù)1,默認(rèn)值為0.35f2:相關(guān)計(jì)算系數(shù)2,默認(rèn)值為0.07f3:相關(guān)計(jì)算系數(shù)3,默認(rèn)值為0.25reverse:反轉(zhuǎn)參數(shù),默認(rèn)值為1.00rangemin:范圍最小參數(shù),默認(rèn)值為0.2xdiv:除數(shù)參數(shù),默認(rèn)值為3變量定義ssetup:空頭設(shè)置系列bsetup:多頭設(shè)置系列senter:空頭進(jìn)入系列benter:多頭進(jìn)入系列bbreak:多頭突破系列sbreak:空頭突破系列l(wèi)today:今日最低價(jià)格系列hitoday:今日最高價(jià)格系列startnow:開始標(biāo)識(shí)系列div:除數(shù)系列rfilter:過濾條件系列i_reverse:反轉(zhuǎn)計(jì)算值i_rangemin:范圍最小計(jì)算值i_vB:與多頭相關(guān)的數(shù)值i_vS:與空頭相關(guān)的數(shù)值主要邏輯初始化變量:在新的K線開始時(shí),初始化開始標(biāo)識(shí)和除數(shù)變量。當(dāng)日期變化時(shí),重置全局變量,并計(jì)算新的支撐和阻力水平。價(jià)格更新:實(shí)時(shí)更新今日最高價(jià)和最低價(jià)。交易邏輯:在特定時(shí)間區(qū)間內(nèi)(上午9點(diǎn)到下午2點(diǎn)55分),根據(jù)當(dāng)前價(jià)格與預(yù)設(shè)的支撐阻力水平關(guān)系,以及持倉情況,執(zhí)行相應(yīng)的交易操作。當(dāng)價(jià)格滿足空頭或多頭條件時(shí),執(zhí)行賣出或買入操作。持有倉位時(shí),根據(jù)反轉(zhuǎn)條件執(zhí)行平倉操作。若無持倉,且價(jià)格突破多頭或空頭突破水平,則執(zhí)行相應(yīng)的買入或賣出操作。平倉處理:在交易時(shí)間結(jié)束后(下午2點(diǎn)55分到次日開盤前),若持有倉位,則以開盤價(jià)平倉。交易操作空頭賣出:當(dāng)價(jià)格低于空頭進(jìn)入價(jià)時(shí)執(zhí)行賣出。多頭買入:當(dāng)價(jià)格高于多頭進(jìn)入價(jià)時(shí)執(zhí)行買入??疹^平倉:當(dāng)價(jià)格高于進(jìn)場(chǎng)價(jià)一定幅度時(shí)執(zhí)行平倉。多頭平倉:當(dāng)價(jià)格低于進(jìn)場(chǎng)價(jià)一定幅度時(shí)執(zhí)行平倉。特殊處理使用全局變量來記錄特定事件(如時(shí)間變化),以避免重復(fù)執(zhí)行相同操作。通過過濾條件限制交易,確保價(jià)格有足夠的波動(dòng)性。注意事項(xiàng)策略中的時(shí)間參數(shù)notbef和notaft可以直接用時(shí)間值(如0.0900和0.1455)表示,以更直接地控制交易時(shí)段。變量(如i_vB和i_vS)在策略中未明確使用,是預(yù)留用于未來擴(kuò)展。以下是代碼的中文注解:Params//參數(shù)定義Numericnotbef(9.00);//開始時(shí)間參數(shù)Numericnotaft(14.55);//結(jié)束時(shí)間參數(shù)Numericf1(0.35);//相關(guān)計(jì)算系數(shù)1Numericf2(0.07);//相關(guān)計(jì)算系數(shù)2Numericf3(0.25);//相關(guān)計(jì)算系數(shù)3Numericreverse(1.00);//反轉(zhuǎn)參數(shù)Numericrangemin(0.2);//范圍最小參數(shù)Numericxdiv(3);//除數(shù)參數(shù)Vars//變量定義NumericSeriesssetup(0);//空頭設(shè)置系列NumericSeriesbsetup(0);//多頭設(shè)置系列NumericSeriessenter(0);//空頭進(jìn)入系列NumericSeriesbenter(0);//多頭進(jìn)入系列NumericSeriesbbreak(0);//多頭突破系列NumericSeriessbreak(0);//空頭突破系列NumericSeriesltoday(0);//今日最低價(jià)格系列NumericSerieshitoday(9999);//今日最高價(jià)格系列NumericSeriesstartnow(0);//開始標(biāo)識(shí)系列NumericSeriesdiv(0);//除數(shù)系列BoolSeriesrfilter(false);//過濾條件系列Numerici_reverse;//反轉(zhuǎn)計(jì)算值Numerici_rangemin;//范圍最小計(jì)算值Numerici_vB;//可能與多頭相關(guān)的數(shù)值Numerici_vS;//可能與空頭相關(guān)的數(shù)值Begin//主程序開始i_reverse=reverse*(OpenD(0)/100);//計(jì)算反轉(zhuǎn)值i_rangemin=rangemin*(OpenD(0)/100);//計(jì)算范圍最小值if(BarStatus==0)//如果是新的K線{startnow=0;//初始化開始標(biāo)識(shí)div=max(xdiv,1);//設(shè)置除數(shù)}if(Date!=Date[1])//如果日期變化{SetGlobalVar(0,0);//設(shè)置全局變量0為0SetGlobalVar(1,0);//設(shè)置全局變量1為0startnow=startnow+1;//開始標(biāo)識(shí)遞增ssetup=hitoday[1]+f1*(Close[1]-ltoday[1]);//計(jì)算空頭設(shè)置senter=((1+f2)/2)*(hitoday[1]+Close[1])-(f2)*ltoday[1];//計(jì)算空頭進(jìn)入benter=((1+f2)/2)*(ltoday[1]+Close[1])-(f2)*hitoday[1];//計(jì)算多頭進(jìn)入bsetup=ltoday[1]-f1*(hitoday[1]-Close[1]);//計(jì)算多頭設(shè)置bbreak=ssetup+f3*(ssetup-bsetup);//計(jì)算多頭突破sbreak=bsetup-f3*(ssetup-bsetup);//計(jì)算空頭突破hitoday=High;//更新今日最高價(jià)格ltoday=Low;//更新今日最低價(jià)格rfilter=(hitoday[1]-ltoday[1])>=i_rangemin;//設(shè)置過濾條件}if(High>hitoday)//如果當(dāng)前最高價(jià)大于記錄的最高價(jià){hitoday=High;//更新最高價(jià)}if(Low<ltoday)//如果當(dāng)前最低價(jià)小于記錄的最低價(jià){ltoday=Low;//更新最低價(jià)}if(Time*100>=notbefandTime*100<notaftandstartnow>=2andrfilter)//在特定時(shí)間區(qū)間,且滿足其他條件{if(Time!=GetGlobalVar(1)andGetGlobalVar(1)!=0)//如果時(shí)間變化且全局變量1不為0{SetGlobalVar(1,10000);//設(shè)置全局變量1}if(hitoday>=ssetupandmarketposition>-1andGetGlobalVar(1)<1)//滿足空頭條件{If(Low<=(senter+(hitoday-ssetup)/div))//進(jìn)一步判斷{SellShort(1,senter+(hitoday-ssetup)/div);//執(zhí)行空頭賣出操作SetGlobalVar(1,Time);//設(shè)置全局變量1Return;//返回}}if(ltoday<=bsetupandmarketposition<1andGetGlobalVar(1)<1)//滿足多頭條件{If(High>=(benter-(bsetup-ltoday)/div))//進(jìn)一步判斷{Buy(1,benter-(bsetup-ltoday)/div);//執(zhí)行多頭買入操作SetGlobalVar(1,Time);//設(shè)置全局變量1Return;//返回}}if(marketposition==-1)//如果是空頭倉位{SetGlobalVar(0,1);if(High-EntryPrice>=i_reverse)//滿足反轉(zhuǎn)條件{BuyToCover(1,entryprice+i_reverse);//執(zhí)行空頭平倉操作Return;//返回}}if(marketposition==1)//如果是多頭倉位{SetGlobalVar(0,1);if(EntryPrice-Low>=i_reverse)//滿足反轉(zhuǎn)條件{Sell(1,entryprice-i_reverse);//執(zhí)行多頭平倉操作Return;//返回}}if(marketposition==0)//如果沒有倉位{if(High>=bbreakandGetGlobalVar(0)==0)//滿足多頭突破條件{Buy(1,bbreak);//執(zhí)行多頭買入操作Return;//返回}}if(marketposition==0)//如果沒有倉位{if(low<=sbreakandGetGlobalVar(0)==0)//滿足空頭突破條件{SellShort(1,sbreak);//執(zhí)行空頭賣出操作Return;//返回}}}if(Time*100>=notaftandTime<0.1600)//在特定時(shí)間區(qū)間{if(marketposition==-1)//如果是空頭倉位{BuyToCover(1,Open);//執(zhí)行空頭平倉操作}if(marketposition==1)//如果是多頭倉位{Sell(1,Open);//執(zhí)行多頭平倉操作}}End//主程序結(jié)束策略信號(hào)代碼ParamsNumericnotbef(9.00);Numericnotaft(14.55);Numericf1(0.35);Numericf2(0.07);Numericf3(0.25);Numericreverse(1.00);Numericrangemin(0.2);Numericxdiv(3);VarsNumericSeriesssetup(0);NumericSeriesbsetup(0);NumericSeriessenter(0);NumericSeriesbenter(0);NumericSeriesbbreak(0);NumericSeriessbreak(0);NumericSeriesltoday(0);NumericSerieshitoday(9999);NumericSeriesstartnow(0);NumericSeriesdiv(0);BoolSeriesrfilter(false);Numerici_reverse;Numerici_rangemin;Numerici_vB;Numerici_vS;Begini_reverse=reverse*(OpenD(0)/100);i_rangemin=rangemin*(OpenD(0)/100);if(BarStatus==0){startnow=0;div=max(xdiv,1);}if(Date!=Date[1]){SetGlobalVar(0,0);SetGlobalVar(1,0);startnow=startnow+1;ssetup=hitoday[1]+f1*(Close[1]-ltoday[1]);senter=((1+f2)/2)*(hitoday[1]+Close[1])-(f2)*ltoday[1];benter=((1+f2)/2)*(ltoday[1]+Close[1])-(f2)*hitoday[1];bsetup=ltoday[1]-f1*(hitoday[1]-Close[1]);bbreak=ssetup+f3*(ssetup-bsetup);sbreak=bsetup-f3*(ssetup-bsetup);hitoday=High;ltoday=Low;rfilter=(hitoday[1]-ltoday[1])>=i_rangemin;}if(High>hitoday){hitoday=High;}if(Low<ltoday){ltoday=Low;}if(Time*100>=notbefandTime*100<notaftandstartnow>=2andrfilter){if(Time!=GetGlobalVar(1)andGetGlobalVar(1)!=0){SetGlobalVar(1,10000);}if(hitoday>=ssetupandmarketposition>-1andGetGlobalVar(1)<1){If(Low<=(senter+(hitoday-ssetup)/div)){SellShort(1,senter+(hitoday-ssetup)/div);SetGlobalVar(1,Time);Return;}}if(ltoday<=bsetupandmarketposition<1andGetGlobalVar(1)<1){If(High>=(benter-(bsetup-ltoday)/div)){Buy(1,benter-(bsetup-ltoday)/div);SetGlobalVar(1,Time);Return;}}if(marketposition==-1){SetGlobalVar(0,1);if(High-EntryPrice>=i_reverse){BuyToCover(1,entryprice+i_reverse);Return;}}if(marketposition==1){SetGlobalVar(0,1);if(EntryPrice-Low>=i_reverse){Sell(1,entryprice-i_reverse);Return;}}if(marketposition==0){if(High>=bbreakandGetGlobalVar(0)==0){Buy(1,bbreak);Return;}}if(marketposition==0){if(low<=sbreakandGetGlobalVar(0)==0){SellShort(1,sbreak);Return;}}}if(Time*100>=notaftandTime<0.1600){if(marketposition==-1){BuyToCover(1,Open);}if(marketposition==1){Sell(1,Open);}}End另一版本策略代碼ParamsNumericnotbef(9.00);//聲明數(shù)值參數(shù)notbef,初值為9.00,其實(shí)不用這個(gè)直接表示Time>0.0900更方便的。//Numericnotaft(14.55);//聲明數(shù)值參數(shù)notaft,初值為14.55,同理的,可在正文直接表示Time<0.1455。//Numericf1(0.35);//聲明數(shù)值參數(shù)f1,初值為0.35.//Numericf2(0.07);//聲明數(shù)值參數(shù)f2,初值為0.07.//Numericf3(0.25);//聲明數(shù)值參數(shù)f3,初值為0.25.//Numericreverse(1.00);//聲明數(shù)值參數(shù)reverse,初值為1.00.//Numericrangemin(0.2);//聲明數(shù)值參數(shù)rangemin,初值為0.2.//Numericxdiv(3);//聲明數(shù)值參數(shù)xdiv,初值為3.//VarsNumericSeriesssetup(0);//聲明數(shù)值序列變量ssetup,初值0.//NumericSeriesbsetup(0);//聲明數(shù)值序列變量bsetup,初值0.//NumericSeriessenter(0);//聲明數(shù)值序列變量senter,初值0.//NumericSeriesbenter(0);//聲明數(shù)值序列變量benter,初值0.//NumericSeriesbbreak(0);//聲明數(shù)值序列變量bbreak,初值0.//NumericSeriessbreak(0);//聲明數(shù)值序列變量sbreak,初值0.//NumericSeriesltoday(0);//聲明數(shù)值序列變量ltoday,初值0.//NumericSerieshitoday(9999);//聲明數(shù)值序列變量hitoday,初值為9999.//NumericSeriesstartnow(0);//聲明數(shù)值序列變量startnow,初值0.//NumericSeriesdiv(0);//聲明數(shù)值序列變量div,初值0.//BoolSeriesrfilter(false);////聲明布爾型序列變量rfilter,初值為假。//Numerici_reverse;//聲明數(shù)值變量i_reverse.//Numerici_rangemin;//聲明數(shù)值變量i_rangemin.//Numerici_vB;//聲明數(shù)值變量i_vB.//Numerici_vS;//聲明數(shù)值變量i_vS.//Begini_reverse=reverse*(OpenD(0)/100);//變量i_reverse=參數(shù)reverse*(當(dāng)天開盤價(jià)OpenD(0)/100).//i_rangemin=rangemin*(OpenD(0)/100);//變量i_rangemin=參數(shù)rangemin*(當(dāng)天開盤價(jià)OpenD(0)/100).//if(BarStatus==0)//當(dāng)前為第一根k線的。//{startnow=0;//變量startnow=0.//div=max(xdiv,1);//代入相應(yīng)參數(shù),即Max(3,1),可得變量div=3.//}if(Date!=Date[1])//假如當(dāng)前日期不等于前一天的日期的。//{SetGlobalVar(0,0);//全局變量,就是系統(tǒng)本身只定義了一個(gè)GlobalVar全局變量,這個(gè)全局變量一共有0到49共50個(gè)存儲(chǔ)位置,你希望在第一個(gè)位置放進(jìn)一個(gè)數(shù)據(jù)(在本軟件中一般放下的是靜態(tài)數(shù)據(jù),不因K線的移動(dòng)而改變),就用setglobalvar(0,你的數(shù)),放進(jìn)第二個(gè)數(shù)又不希望覆蓋第一個(gè),就用setglobalvar(1,你的數(shù)),最多能放下共50個(gè)靜態(tài)數(shù)據(jù);然后是引用這些數(shù)據(jù)了,就用getglobalvar(存儲(chǔ)位置)等等,這個(gè)全局變量最起碼是生存于當(dāng)前的程序模塊中,比如用戶函數(shù)、技術(shù)指標(biāo)、K形態(tài)、特征走勢(shì)、交易指令中。設(shè)置setglobalvar(0,你的數(shù)),setglobalvar(1,你的數(shù)),setglobalvar(2,你的數(shù)),setglobalvar(3,你的數(shù)),.....可以設(shè)置到setglobalvar(49,你的數(shù)).調(diào)用getglobalvar(0,你的數(shù)),getglobalvar(1,你的數(shù)),getglobalvar(2,你的數(shù)),getglobalvar(3,你的數(shù)),...getglobalvar(49,你的數(shù))。//SetGlobalVar(1,0);//設(shè)置第二個(gè)數(shù)據(jù)位置了,值為0。//startnow=startnow+1;//變量startnow=0+1.//ssetup=hitoday[1]+f1*(Close[1]-ltoday[1]);//代入初始相應(yīng)數(shù)值,即ssetup=9999+0.35*(前一根k線收盤價(jià)-0)。//senter=((1+f2)/2)*(hitoday[1]+Close[1])-(f2)*ltoday[1];//同上代入,senter=((1+0.07)/2)*(9999+Close[1])-0.07*0.//benter=((1+f2)/2)*(ltoday[1]+Close[1])-(f2)*hitoday[1];//同上代入相應(yīng)數(shù)值了。//bsetup=ltoday[1]-f1*(hitoday[1]-Close[1]);//同上的。//bbreak=ssetup+f3*(ssetup-bsetup);//把上面求得的值代入就行了。//sbreak=bsetup-f3*(ssetup-bsetup);//同上。//hitoday=High;//變量hitoday=當(dāng)前最高價(jià)High//ltoday=Low;//變量ltoday=當(dāng)前最低價(jià)Low//rfilter=(hitoday[1]-ltoday[1])>=i_rangemin;//變量rfilter=(前一變量hitoday[1]-前一變量ltoday[1])>=i_rangemin,其實(shí)就是昨天振幅是否大于等于當(dāng)前開盤價(jià)/100*0.2//}if(High>hitoday)//假如當(dāng)前最高價(jià)大于hitoday,一般比如焦炭、螺紋很少大于的,銅、鋅到是可以。//{hitoday=High;//變量hitoday=當(dāng)前最高價(jià)。//}if(Low<ltoday)//假如當(dāng)前最低價(jià)小于ltoday,幾乎沒有品種最低價(jià)小于0的吧。//{ltoday=Low;//變量itoday=當(dāng)前最低價(jià)。//}if(Time*100>=notbefandTime*100<notaftandstartnow>=2andrfilter)//假如時(shí)間大于9點(diǎn),并且小于兩點(diǎn)五十五分,并且變量startnow>=2并且rfilter為真。//{if(Time!=GetGlobalVar(1)andGetGlobalVar(1)!=0)//getglobalvar(1)獲取上面我們已經(jīng)設(shè)置的第二個(gè)位置,假如時(shí)間不等于位置2數(shù)值,并且位置2數(shù)值不等于0的時(shí)候,才執(zhí)行下列語句(顯然我們上邊設(shè)置第二位置值為0,不符合這個(gè)條件的)。//{SetGlobalVar(1,10000);//設(shè)置第二位置,值為10000.//}if(hitoday>=ssetupandmarketposition>-1andGetGlobalVar(1)<1)//假如變量hitoday>=變量ssetup,并且MarketPosition>-1(覺得應(yīng)該寫成<>-1,要不然理解就是沒有持倉,或者可以持有多單時(shí)),并且獲取位置2的數(shù)值(初值0)小于1的。//{If(Low<=(senter+(hitoday-ssetup)/div))//代入上面算得的數(shù)值,假如當(dāng)前最低價(jià)Low<=(變量senter+(變量hitoday-變量ssetup)/3).//{SellShort(1,senter+(hitoday-ssetup)/div);//賣出1手,價(jià)格就是依據(jù)這個(gè)(變量senter+(變量hitoday-變量ssetup)/3)算得的值。//SetGlobalVar(1,Time);//這個(gè)設(shè)置第二位置,值為當(dāng)前時(shí)間,設(shè)置這個(gè)時(shí)間,我也不知道干啥用的。//Return;//不再執(zhí)行。//}}if(ltoday<=bsetupandmarketposition<1andGetGlobalVar(1)<1)//假如變量itoday<=變量bsetup,并且MarketPosition<1,并且獲取位置2的數(shù)值(初值0)小于1的。//{If(High

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論