買賣清算點策略(MC版)_第1頁
買賣清算點策略(MC版)_第2頁
買賣清算點策略(MC版)_第3頁
買賣清算點策略(MC版)_第4頁
買賣清算點策略(MC版)_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

買賣清算點策略(MC版)本策略主要基于歷史數據的波動范圍和特定時間點的市場情況來判斷是否進行交易,并設定了相應的買入、賣出和清算點。策略考慮了市場的波動性、特定日子的交易傾向,以及交易后的清算行為。此外,策略還涉及了止損設置和交易時間的控制。主要交易邏輯思路和特點1.市場波動性判斷:策略首先通過比較Data2的波動范圍與過去幾天的波動范圍來確定當天是否為“更容易交易”的日子。這影響了買入和賣出的突破點計算。2.突破點計算:根據是否為“更容易交易”的日子,策略會計算不同的買入和賣出突破點。這些點是基于開盤價和一個特定的推力百分比來確定的。3.交易時機控制:策略不僅考慮了波動性,還嚴格限制了交易的發起時間。只有在特定的時間范圍內(即小于初始交易結束時間),才會考慮進行買入或賣出操作。4.清算行為:對于已經持有的頭寸,策略會根據當前時間和市場頭寸來決定何時進行清算。清算點是基于入場價格和特定的止損點來計算的。此外,策略還特別區分了在清算反轉結束時間內和之外的清算行為。5.止損設置:策略為所有交易行為設置了統一的止損點,以控制潛在的風險。6.交易次數控制:策略還記錄了當天的買入和賣出次數,確保在同一交易日內不會進行多次同向交易。7.時間控制:策略通過`waitPeriodMins`和`BarInterval`控制了交易發起的時間間隔,即在一個特定的等待周期后,且當前時間滿足條件時,才可能發起交易。8.交易結束控制:策略通過`SetExitOnClose`指令確保在收盤時退出所有交易,以規避隔夜風險。本策略是一個綜合考慮了多種因素的交易算法。它不僅根據歷史數據的波動性和特定日子的市場情況來判斷交易時機,還通過設定突破點和清算點來控制交易的風險。此外,策略還嚴格限制了交易的發起和結束時間,以及同一交易日內買入和賣出的次數。這種多方面的控制使得策略在追求收益的同時,也充分考慮了風險管理和交易紀律。整體來看,這是一個結構嚴謹、考慮周全的交易算法,適用于追求穩健收益的投資者。以下是信號代碼的注解:Inputs:waitPeriodMins(45):等待周期,以分鐘為單位。initTradesEndTime(1330):初始交易結束時間。liqRevEndTime(1300):清算反轉結束時間。thrustPrcnt1(0.20):推力百分比1。thrustPrcnt2(0.40):推力百分比2。mmStop(1000):止損點。Variables:averageRange(0):平均波動范圍。averageOCRange(0):平均開盤收盤價波動范圍。canTrade(0):是否可以交易的標志,初始為0。buyEasierDay(FALSE):是否為更容易買入的交易日,初始為假。sellEasierDay(FALSE):是否為更容易賣出的交易日,初始為假。buyBOPoint(0):買入突破點。sellBOPoint(0):賣出突破點。myBarCount(0):當前柱狀圖計數。longLiqPoint(0):多頭清算點。shortLiqPoint(0):空頭清算點。buysToday(0):今日買入次數。sellsToday(0):今日賣出次數。if(Date<>Date[1])then:如果當前日期與前一日不同begincanTrade=0;:將canTrade重置為0。if(RangeofData2=MinList(Rangeofdata2,Range[1]ofdata2,Range[2]ofData2,Range[3]ofdata2))thencanTrade=1;:如果Data2的波動范圍等于Data2、Data2前一日、Data2前兩日、Data2前三日波動范圍中的最小值,則將canTrade設置為1。buyEasierDay=FALSE;:將buyEasierDay重置為假。sellEasierDay=FALSE;:將sellEasierDay重置為假。if(CloseofData2>Close[1]ofData2andOpen>CloseofData2)thenbuyEasierDay=TRUE;:如果Data2的收盤價大于前一日收盤價,且開盤價大于Data2的收盤價,則將buyEasierDay設置為真。if(CloseofData2<Close[1]ofData2andOpen<CloseofData2)thensellEasierDay=TRUE;:如果Data2的收盤價小于前一日收盤價,且開盤價小于Data2的收盤價,則將sellEasierDay設置為真。buyBOPoint=Open+thrustPrcnt2*AvgTrueRange(10)ofdata2;:計算買入突破點,為開盤價加上推力百分比2乘以Data2的10日平均真實波動范圍。sellBOPoint=Open-thrustPrcnt2*AvgTrueRange(10)ofdata2;:計算賣出突破點,為開盤價減去推力百分比2乘以Data2的10日平均真實波動范圍。if(buyEasierDay)thenbuyBOPoint=Open+thrustPrcnt1*AvgTrueRange(10)ofdata2;:如果是更容易買入的交易日,則將買入突破點調整為開盤價加上推力百分比1乘以Data2的10日平均真實波動范圍。if(sellEasierDay)thensellBOPoint=Open-thrustPrcnt1*AvgTrueRange(10)ofdata2;:如果是更容易賣出的交易日,則將賣出突破點調整為開盤價減去推力百分比1乘以Data2的10日平均真實波動范圍。myBarCount=0;:將柱狀圖計數重置為0。buysToday=0;sellsToday=0;:將今日買入和賣出次數重置為0。end;myBarCount=myBarCount+1;:柱狀圖計數加1。if(myBarCount>=waitPeriodMins/BarIntervalandcanTrade=1)then:如果柱狀圖計數達到等待周期除以柱狀圖間隔的時間,并且可以交易beginif(MarketPosition=1)thenbuysToday=1;:如果市場頭寸為1(多頭),則將今日買入次數設置為1。if(MarketPosition=-1)thensellsToday=1;:如果市場頭寸為-1(空頭),則將今日賣出次數設置為1。if(buysToday=0andTime<initTradesEndTime)then:如果今日買入次數為0且當前時間小于初始交易結束時間Buy("LBreakOut")nextbaratbuyBOPointstop;:在下一根柱狀圖以買入突破點的價格執行買入操作,并設置止損if(sellsToday=0andTime<initTradesEndTime)then:如果今日賣出次數為0且當前時間小于初始交易結束時間SellShort("SBreakout")nextbaratsellBOPointstop;:在下一根柱狀圖以賣出突破點的價格執行賣空操作,并設置止損if(MarketPosition=1)then:如果市場頭寸為1(多頭)begin:開始執行多頭相關的操作longLiqPoint=EntryPrice-mmStop/(pointValue*priceScale);:計算多頭清算點if(Time<liqRevEndTimeandsellsToday=0)then:如果當前時間小于清算反轉結束時間且今日賣出次數為0begin:開始執行多頭清算反轉操作SellShort("LongLiqRev")nextbaratlongLiqPointstop;:在下一根柱狀圖以多頭清算點的價格執行賣空操作,并設置止損endelsebegin:否則執行普通的多頭清算操作Sell("LongLiq")nextbaratlongLiqPointstop;:在下一根柱狀圖以多頭清算點的價格執行賣出操作,并設置止損endendif(MarketPosition=-1)then:如果市場頭寸為-1(空頭)begin:開始執行空頭相關的操作shortLiqPoint=EntryPrice+mmStop/(pointValue*priceScale);:計算空頭清算點if(Time<liqRevEndTimeandbuysToday=0)then:如果當前時間小于清算反轉結束時間且今日買入次數為0begin:開始執行空頭清算反轉操作Buy("ShortLiqRev")nextbaratshortLiqPointstop;:在下一根柱狀圖以空頭清算點的價格執行買入操作,并設置止損endelsebegin:否則執行普通的空頭清算操作BuyToCover("ShortLiq")nextbaratshortLiqPointstop;:在下一根柱狀圖以空頭清算點的價格執行平倉操作,并設置止損endendend;:結束條件判斷SetExitOnClose;:設置在收盤時退出交易setstoploss(6000);:設置止損為6000策略信號代碼(DATA1=15min、DATA2=60min)Inputs:waitPeriodMins(45),initTradesEndTime(1330),liqRevEndTime(1300),thrustPrcnt1(0.20),thrustPrcnt2(0.40),mmStop(1000);Variables:averageRange(0),averageOCRange(0),canTrade(0),buyEasierDay(FALSE),sellEasierDay(FALSE),buyBOPoint(0),sellBOPoint(0),myBarCount(0),longLiqPoint(0),shortLiqPoint(0),buysToday(0),sellsToday(0);if(Date<>Date[1])thenbegincanTrade=0;if(RangeofData2=MinList(Rangeofdata2,Range[1]ofdata2,Range[2]ofData2,Range[3]ofdata2))thencanTrade=1;buyEasierDay=FALSE;sellEasierDay=FALSE;if(CloseofData2>Close[1]ofData2andOpen>CloseofData2)thenbuyEasierDay=TRUE;if(CloseofData2<Close[1]ofData2andOpen<CloseofData2)thensellEasierDay=TRUE;buyBOPoint=Open+thrustPrcnt2*AvgTrueRange(10)ofdata2;sellBOPoint=Open-thrustPrcnt2*AvgTrueRange(10)ofdata2;if(buyEasierDay)thenbuyBOPoint=Open+thrustPrcnt1*AvgTrueRange(10)ofdata2;if(sellEasierDay)thensellBOPoint=Open-thrustPrcnt1*AvgTrueRange(10)ofdata2;myBarCount=0;buysToday=0;sellsToday=0;end;myBarCount=myBarCount+1;if(myBarCount>=waitPeriodMins/BarIntervalandcanTrade=1)then{havewewaitedlongenough}beginif(MarketPosition=1)thenbuysToday=1;if(MarketPosition=-1)thensellsToday=1;if(buysToday=0andTime<initTradesEndTime)thenBuy("LBreakOut")nextbaratbuyBOPointstop;if(sellsToday=0andTime<i

溫馨提示

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

評論

0/150

提交評論