




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
隨機交易策略(TB版)策略規則1.
參數設置:
InitialStop
:初始止損點。
BreakEvenStop
:保本止損點。
TrailStop
:追蹤止損點。2.
變量聲明:
RandNum
:用于生成隨機數。
BuyOrSell
:決定是買入還是賣出,0代表買入,1代表賣出。
StopLine
:止損線的價格。
MyEntryPrice
:交易的入場價格。
MyExitPrice
:交易的出場價格。
HighestAfterEntry
和
LowestAfterEntry
:記錄入場后的最高價和最低價。3.
交易邏輯:如果當前時間大于0.1455(一個用于回測的參數),則無論當前市場持倉如何,都會平掉所有頭寸。如果當前是剛入場(
BarsSinceEntry==0
),則記錄入場價格,并根據市場持倉更新最高價和最低價。對于多頭持倉(
MarketPosition==1
):計算初始止損線。如果價格達到保本止損點,則將止損線設置為入場價格。如果價格達到追蹤止損點,則更新止損線。如果價格跌破止損線,則以該價格或開盤價(如果有跳空)賣出平倉。對于空頭持倉:類似于多頭持倉,但是方向相反,包括計算初始止損線、保本止損和追蹤止損,并在價格達到止損線時買入平倉。4.
隨機交易邏輯:產生一個0到100的隨機數,并取余數得到0或1,決定是買入還是賣出。如果是買入并且當前分鐘數能被3整除且當前沒有空頭持倉,則買入。如果是賣出并且當前分鐘數能被3整除且當前沒有多頭持倉,則賣出。5.
注釋輸出:策略中使用了
Commentary
函數來輸出一些關鍵信息,如最高價、最低價、止損線、買入或賣出決策等,這有助于在實際交易或回測時監控策略的表現。本策略結合了基于價格行為的止損邏輯和隨機交易生成機制,是為了測試不同市場條件下策略的表現。然而,實際應用中,完全基于隨機的交易決策可能不是最佳實踐,因為它忽略了市場分析和經濟指標。策略代碼:ParamsNumericInitialStop(2);NumericBreakEvenStop(3);NumericTrailStop(5);VarsNumericRandNum;NumericBuyOrSell;NumericStopLine;NumericMyEntryPrice;NumericMyExitPrice;NumericSeriesHighestAfterEntry;NumericSeriesLowestAfterEntry;BeginIf(Time>=0.1455){//如果要實盤測試,把Time改為CurrentTimeIf(MarketPosition==1)Sell(0,Close);If(MarketPosition==-1)BuyToCover(0,Close);return;}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));MyEntryPrice=AvgEntryPrice;If(MarketPosition==1)//有多倉的情況(WWW.CXH99.COM){StopLine=AvgEntryPrice*(1-InitialStop/1000);If(HighestAfterEntry[1]>=MyEntryPrice*(1+BreakEvenStop/1000))Stopline=MyEntryPrice;If(Stopline<HighestAfterEntry[1]*(1-TrailStop/1000))Stopline=HighestAfterEntry[1]*(1-TrailStop/1000);if(Low<=Stopline){MyExitPrice=Stopline;If(Open<MyExitPrice)MyExitPrice=Open;//如果該Bar開盤價有跳空觸發,則用開盤價代替Sell(0,MyExitPrice);return;}}elseif(MarketPosition==-1)//有空倉的情況{StopLine=AvgEntryPrice*(1+InitialStop/1000);If(LowestAfterEntry[1]<=MyEntryPrice*(1-BreakEvenStop/1000))Stopline=MyEntryPrice;If(Stopline>LowestAfterEntry[1]*(1+TrailStop/1000))Stopline=LowestAfterEntry[1]*(1+TrailStop/1000);Commentary("StopLine="+Text(Stopline));If(High>=Stopline){MyExitPrice=Stopline;If(Open>MyExitPrice)MyExitPrice=Open;//如果該Bar開盤價有跳空觸發,則用開盤價代替BuyToCover(0,MyExitPrice);return;}}RandNum=Rand(0,100);//產生0到100的隨機數BuyOrSell=Mod(RandNum,2);//產生0到1的隨機數Commentary("BuyOrSell:"+TEXT(BuyOrSell));If(BuyOrSell==0&&Mod(Minute,3)==0&&MarketPosition!=-1)//如果BuyOrSell為0,每3分鐘發一次多單Buy(1,Close);elseIf(BuyOrSell==1&&Mod(Minute,3)==0&&MarketPosition!=1)//如果BuyOrSell為1,每3分鐘發一次空單SellShort(1,Close);End另一版本代碼(部分)//參數定義ParamsNumericInitialStop(2);NumericBreakEvenStop(3);NumericTrailStop(5);//變量聲明VarsNumericRandNum;NumericBuyOrSell;NumericStopLine;NumericMyEntryPrice;NumericMyExitPrice;NumericSeriesHighestAfterEntry;NumericSeriesLowestAfterEntry;//交易邏輯部分If(Time>=0.1455){//平倉邏輯}If(BarsSinceEntry==0){//記錄入場價格和最高/最低價}else{//更新最高/最低價}
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論