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

下載本文檔

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

文檔簡介

RSl交易系統(tǒng)(TB版)核心交易邏輯:一、RSI計(jì)算函數(shù)參數(shù)定義NumericLength(14):計(jì)算周期,初始值為14。NumericOverSold(30):超賣閾值,初始值為30。NumericOverBought(70):超買閾值,初始值為70。變量定義NumericSeriesNetChgAvg(0):平均凈變化值序列,初始值為0。NumericSeriesTotChgAvg(0):總變化平均值序列,初始值為0。NumericSF(0):平滑因子,初始值為0。NumericChange(0):價(jià)格變化值,初始值為0。NumericChgRatio(0):變化比率,初始值為0。NumericRSIValue:RSI值,用于存儲(chǔ)計(jì)算后的RSI值。計(jì)算邏輯初始化階段(當(dāng)前K線數(shù)小于等于周期數(shù)減1時(shí)):計(jì)算NetChgAvg為當(dāng)前收盤價(jià)與14根K線前收盤價(jià)的差值除以14。計(jì)算TotChgAvg為當(dāng)前收盤價(jià)與前一根收盤價(jià)差值的絕對值的14周期平均值。計(jì)算階段(當(dāng)前K線數(shù)大于周期數(shù)減1時(shí)):更新NetChgAvg和TotChgAvg使用指數(shù)平滑法,平滑因子SF為1/周期數(shù)。RSI值計(jì)算:如果TotChgAvg不為0,則計(jì)算ChgRatio為NetChgAvg除以TotChgAvg。RSI值=50*(ChgRatio+1)。二、RSI信號交易邏輯參數(shù)定義(新增參數(shù))NumericStopPoint(45):止損點(diǎn),此參數(shù)直接用于RSI交易信號計(jì)算。NumericProfitPoint(100):盈利點(diǎn),此參數(shù)在給出的文檔中未直接用于RSI交易信號計(jì)算。NumericStopLossSet(30):止損設(shè)置,用于計(jì)算止損價(jià)格。交易邏輯入場邏輯:當(dāng)不在多頭倉位且RSI值小于30時(shí),以開盤價(jià)買入。當(dāng)不在空頭倉位且RSI值大于70時(shí),以開盤價(jià)賣空。出場邏輯:當(dāng)持倉多頭且價(jià)格觸及入場價(jià)減去止損設(shè)置乘以最小變動(dòng)點(diǎn)時(shí),以該價(jià)格賣出平倉。當(dāng)持倉空頭且價(jià)格觸及入場價(jià)加上止損設(shè)置乘以最小變動(dòng)點(diǎn)時(shí),以該價(jià)格買回平倉。持倉期間價(jià)格跟蹤:跟蹤并記錄持倉后的最高價(jià)和最低價(jià),用于可能的止損或盈利計(jì)算。三、輔助邏輯集合競價(jià)和小節(jié)休息過濾:通過CallAuctionFilter()函數(shù)過濾不適合交易的時(shí)段。交易日志記錄:通過Commentary函數(shù)輸出交易相關(guān)信息,如最高價(jià)、最低價(jià)、入場價(jià)等。四、RSI交易系統(tǒng)通過計(jì)算RSI值來判斷市場的超買和超賣狀態(tài),并據(jù)此生成交易信號。系統(tǒng)包含入場、出場邏輯,以及持倉期間的價(jià)格跟蹤和交易日志記錄功能。通過參數(shù)配置和邏輯設(shè)計(jì),該系統(tǒng)旨在為交易者提供基于市場動(dòng)量的交易指導(dǎo)。函數(shù)Average(求平均)代碼解釋:ParamsNumericSeriesPrice(1);//聲明數(shù)值型序列參數(shù)Price,賦值為1.//NumericLength(10);//聲明數(shù)值型參數(shù)Length,賦值為10.//VarsNumericAvgValue;//聲明數(shù)值型變量AvgValude。//BeginAvgValue=Summation(Price,Length)/Length;//這個(gè)Summation函數(shù),我們之前已經(jīng)說過,這邊直譯就是:求10個(gè)周期的平均價(jià)格。//ReturnAvgValue;//把AvgValue值返回給主函數(shù)。//EndRSI指標(biāo)代碼:ParamsNumericLength(14);//聲明數(shù)值型參數(shù)Length,初始值為14.//NumericOverSold(30);//聲明數(shù)值型參數(shù)OverSold,初始值為30.//NumericOverBought(70);//聲明數(shù)值型參數(shù)OverBought,初始值為70.//VarsNumericSeriesNetChgAvg(0);//聲明數(shù)值型序列變量NetChgAvg,賦值0.//NumericSeriesTotChgAvg(0);//聲明數(shù)值型序列變量TotChgAvg,賦值0.//NumericSF(0);//聲明數(shù)值型變量SF,賦值0.//NumericChange(0);//聲明數(shù)值型變量Change,賦值0.//NumericChgRatio(0);//聲明數(shù)值型變量ChgRatio,賦值0.//NumericRSIValue;//聲明數(shù)值型變量RSIValue。//BeginIf(CurrentBar<=Length-1)//假如當(dāng)前k線數(shù)位小于等于14-1,執(zhí)行花括號語句。//{NetChgAvg=(Close-Close[Length])/Length;//一樣的Close[Length],就是從當(dāng)前K線數(shù)位倒推回去14根,則句子意思:NetChgAvg=(當(dāng)前收盤價(jià)-前14根k線的收盤價(jià))/14.//TotChgAvg=Average(Abs(Close-Close[1]),Length);//先說這個(gè)Abs,意思為返回參數(shù)的絕對值,參數(shù)絕對值是參數(shù)去掉正負(fù)號后的數(shù)值。所以Abs里邊的括號得到數(shù)值肯定是正數(shù)。Average函數(shù),同樣的,就是把參數(shù)的絕對值跟周期,返回去求值,再把值給反饋回來就行。語句意思:TotChgAvg的值等于,求當(dāng)前收盤價(jià)-去前一根收盤價(jià)的14周期均值。//}Else//就是第14根k線后的,執(zhí)行下列語句。//{SF=1/Length;//隨周期變化的比重系數(shù)SF。//Change=Close-Close[1];//當(dāng)前k線收盤價(jià)-前一根收盤價(jià)。//NetChgAvg=NetChgAvg[1]+SF*(Change-NetChgAvg[1]);//這回不用改成數(shù)學(xué)式的表達(dá)式了,直譯它,NetChgAvg=前一個(gè)NetChgAvg值+比重系數(shù)SF*(變量Change-前一個(gè)NetChgAvg值。)TotChgAvg=TotChgAvg[1]+SF*(Abs(Change)-TotChgAvg[1]);//同理,直譯了,記得英文字符后的[1],意思都是從當(dāng)前往回推,中括號里的值是根據(jù)你的需求改的。//}If(TotChgAvg<>0)//從上面公式求得的TotChgAvg數(shù)值,假如不等于0.//{ChgRatio=NetChgAvg/TotChgAvg;//變量ChgRatio值等于變量NetChgAvg值除以變量TotChgAvg值。//}else//變量TotChgAvg等于0的情況。//{ChgRatio=0;//等于0了。//}RSIValue=50*(ChgRatio+1);//用上面的得到的值,根據(jù)這個(gè)公式,可以求出RSIValue的值了。//PlotNumeric("RSI",RSIValue);//線RSI的值為RSIValue。//PlotNumeric("超買",OverBought);//畫出超買線,值為OverBought=70。//PlotNumeric("超賣",OverSold);//畫出超賣線,值為OverSold=30。//EndRSI信號代碼:ParamsNumericLength(14);NumericOverSold(30);NumericOverBought(70);NumericStopPoint(45);NumericProfitPoint(100);NumericStopLossSet(30);VarsNumericSeriesNetChgAvg(0);NumericSeriesTotChgAvg(0);NumericSF(0);NumericChange(0);NumericChgRatio(0);NumericSeriesRSIValue;NumericSeriesHighestAfterEntry;NumericSeriesLowestAfterEntry;NumericMinPoint;NumericMyEntryPrice;Numericmyprice;Numericmyexitprice;BeginIf(CurrentBar<=Length-1){NetChgAvg=(Close-Close[Length])/Length;TotChgAvg=Average(Abs(Close-Close[1]),Length);}Else{SF=1/Length;Change=Close-Close[1];NetChgAvg=NetChgAvg[1]+SF*(Change-NetChgAvg[1]);TotChgAvg=TotChgAvg[1]+SF*(Abs(Change)-TotChgAvg[1]);}If(TotChgAvg<>0){ChgRatio=NetChgAvg/TotChgAvg;}else{ChgRatio=0;}RSIValue=50*(ChgRatio+1);//集合競價(jià)和小節(jié)休息過濾If(!CallAuctionFilter())Return;If(MarketPosition<>1&&RSIValue[1]<30){Buy(1,Open);}If(MarketPosition==1&&RSIValue[1]>70){Sell(1,Open);}If(MarketPosition<>-1&&RSIValue[1]>70){SellShort(1,Open);}If(MarketPosition==-1&&RSIValue[1]<30){BuyToCover(1,open);}If(BarsSinceentry==0){HighestAfterEntry=Close;LowestAfterEntry=Close;If(MarketPosition<>0){HighestAfterEntry=Max(HighestAfterEntry,AvgEntryPrice);LowestAfterEntry=Min(LowestAfterEntry,AvgEntryPrice);}}else{HighestAfterEntry=Max(HighestAfterEntry,High);LowestAfterEntry=Min(LowestAfterEntry,Low);}Commentary("HighestAfterEntry="+Text(HighestAfterEntry));Commentary("LowestAfterEntry="+Text(LowestAfterEntry));Commentary("MyEntryPrice="+Text(MyEntryPrice));MinPoint=MinMove*PriceScale;MyEntryPrice=AvgEntryPrice;If(MarketPosition==1){if(Low<=MyEntryPrice-StopLossSet*MinPoint){MyExitPrice=MyEntryPrice-StopLossSet*MinPoint;Sell(0,MyExitPrice);}}elseif(MarketPosition==-1){If(High>=MyEntryPrice+StopLossSet*MinPoint){MyExitPrice=MyEntryPrice+StopLossSet*MinPoint;BuyToCover(0,MyExitPrice);}}End信號代碼注解:Params//參數(shù)定義NumericLength(14);//計(jì)算周期NumericOverSold(30);//超賣閾值NumericOverBought(70);//超買閾值NumericStopPoint(45);//止損點(diǎn)NumericProfitPoint(100);//盈利點(diǎn)NumericStopLossSet(30);//止損設(shè)置Vars//變量定義NumericSeriesNetChgAvg(0);//平均凈變化值系列NumericSeriesTotChgAvg(0);//總變化平均值系列NumericSF(0);//平滑因子NumericChange(0);//價(jià)格變化值NumericChgRatio(0);//變化比率NumericSeriesRSIValue;//RSI值系列NumericSeriesHighestAfterEntry;//入場后的最高值系列NumericSeriesLowestAfterEntry;//入場后的最低值系列NumericMinPoint;//最小變動(dòng)點(diǎn)NumericMyEntryPrice;//入場價(jià)格Numericmyprice;//價(jià)格Numericmyexitprice;//出場價(jià)格Begin//主程序開始If(CurrentBar<=Length-1)//如果當(dāng)前柱數(shù)小于計(jì)算周期減1{NetChgAvg=(Close-Close[Length])/Length;//計(jì)算平均凈變化值TotChgAvg=Average(Abs(Close-Close[1]),Length);//計(jì)算總變化平均值}Else//否則{SF=1/Length;//計(jì)算平滑因子Change=Close-Close[1];//計(jì)算價(jià)格變化NetChgAvg=NetChgAvg[1]+SF*(Change-NetChgAvg[1]);//更新平均凈變化值TotChgAvg=TotChgAvg[1]+SF*(Abs(Change)-TotChgAvg[1]);//更新總變化平均值}If(TotChgAvg<>0)//如果總變化平均值不為0{ChgRatio=NetChgAvg/TotChgAvg;//計(jì)算變化比率}else//否則{ChgRatio=0;//變化比率為0}RSIValue=50*(ChgRatio+1);//計(jì)算RSI值//集合競價(jià)和小節(jié)休息過濾If(!CallAuctionFilter())Return;//如果不滿足過濾條件,返回If(MarketPosition<>1&&RSIValue[1]<30)//如果倉位不為多頭且RSI值小于超賣閾值{Buy(1,Open);//買入}If(MarketPosition==1&&RSIValue[1]>70)//如果倉位為多頭且RSI值大于超買閾值{Sell(1,Open);//賣出}If(MarketPosition<>-1&&RSIValue[1]>70)//如果倉位不為空頭且RSI值大于超買閾值{SellShort(1,Open);//賣空}If(MarketPosition==-1&&RSIValue[1]<30)//如果倉位為空頭且RSI值小于超賣閾值{BuyToCover(1,open);//空頭平倉}If(BarsSinceentry==0)//如果入場柱數(shù)為0{HighestAfterEntry=Close;//初始化入場后的最高值LowestAfterEntry=Close;//初始化入場后的最低值If(MarketPosition<>0)//如果倉位不為0{HighestAfterEntry=Max(HighestAfterEntry,AvgEntryPrice);//更新最高值LowestAfterEntry=Min(LowestAfterEntry,AvgEntryPrice);//更新最低值}}else//否則{HighestAfterEntry=Max(HighestAfterEntry,High);//更新最高值LowestAfterEntry=Min(Lo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論