期貨期權交流Dual Thrust Trading Strategy [MC]
- 咨詢內容:
Dual Thrust策略是一個很經典的策略。廢話不說,直接上干貨。MC代碼如下。
//Use data2 as day bar.//Use data1 as minute bar.
Inputs: k1( 0.5),k2 (0.5);inputs: Mday(1 ),Nday (1),lots(1), daystart(900 ), dayend(1500 ),freq_min (10);//10 min bars, you may chance to other frequency
vars: dayclose(0 ), dayhigh(0 ),daylow (0);vars: sellrange(0 ),buyrange (0),buytrig(0), selltrig(0 );Vars: HH( 0),HC (0),LC(0), LL( 0);vars: buyposition(0 ),sellposition (0);vars: opentoday(0 );
//give a start value for open price of today(data1)if time >=daystart and time <=daystart+ freq_min then begin opentoday=open ;end;
HH=highest (high ,Mday ) of data2 ;HC=highest (close ,Mday ) of data2 ;LL=lowest (low ,Mday ) of data2 ;LC=lowest (close ,Mday ) of data2 ;
if (HH-LC)>=( HC- LL) then sellrange=HH -LCelse sellrange =HC -LL ;
HH = Highest (High ,Nday ) of data2 ;HC = Highest (Close ,Nday ) of data2 ;LL = Lowest (Low ,Nday ) of data2 ;LC = Lowest (Close ,Nday ) of data2 ;
If((HH - LC) >= ( HC - LL ))then BuyRange = HH - LC Else BuyRange = HC - LL; BuyTrig = K1* BuyRange; SellTrig = K2* SellRange; BuyPosition = opentoday +BuyTrig ;SellPosition = opentoday -SellTrig ;
If(MarketPosition = 0) thenbegin If High >=BuyPosition then Buy lots shares next bar at buyposition stop ; If Low <=SellPosition then SellShort lots shares next bar at sellposition stop;end;
if marketposition =-1 thenbegin if high >=buyposition then buy lots shares next bar at buyposition stop ;end;
if marketposition =1 thenbegin if low <=sellposition then sellshort lots shares next bar at sellposition stop ;end;
//setstoploss(minmove*30);
//draw trendlinesif (time>= dayend-3 *freq_min and time<=dayend ) then begintl_new(date ,0900,buyposition, date,time ,buyposition );tl_new(date ,0900,sellposition, date,time ,sellposition );end;
評價:模塊沒有止損、止盈語句。是一個永遠在市的策略。跑出來的績效是不錯的。至少能夠賺錢。以下是用橡膠10分鐘線跑出的結果:
1.模型體現的基本思想:
首先,HH到LL這個范圍框出了過去N天中價格的移動區間。HC和LC表示的是過去N天內價格的波動情況。如果HC和LC都在中間位置,那么表示價格在N天內的高低波動只是一種偶然情況。其余時間波動都很小,而且市場呈現出不明朗的趨勢。在HH和LL范圍固定的情況下,突破需要的點數相對較少。
如果過去N天內價格都在上漲或下跌,呈現單邊趨勢,那么則表現為HH和LL的范圍較大,HC和LC都趨近于箱體的上/下沿,則表現為較大的buyrange 和 sellrange,于是乎,價格產生突破的話需要的點數也就更多一些。
這樣的設計,體現了突破策略的一個基本思路,即“大行情大突破,小行情小突破”。
2.我們進一步研究一下策略在不同行情中的表現情況: (1)行情連續走強。例如,前日大漲,昨日大漲,今日也大漲。這時,策略會一直向上突破,死死扣住持有的多倉。 (2)行情由強轉弱,進入平臺期。例如,前日大漲,昨日小漲,今日微漲或微跌。這時,策略仍然會一直持有多倉,不產生任何有效突破。 (3)行情由弱轉強。例如,前日小漲,昨日中漲,今日大漲。這時,策略會針對之前持有的倉位采取進一步的措施。如果之前持有的是反向倉位,則會反手。如果之前持有的是同向倉位,則會一直抱住。 (4)行情持續保持弱勢,波動越來越弱。但溫和同向變動。這時,如果持有的是同向倉位,那么不會有什么問題。但如果持有的是反向倉位,問題就來了。可能價格一直不突破,從而導致連續虧損。這種虧損可能持續時間不會很長,因為隨著短K棒的逐漸增加,突破所需要的點數也就越來越小,很容易突破做反手。 (5)行情急速反轉。這時,要取決于k線長度的相對大小。如果反轉的幅度遠小于之前的幅度,且幅度逐漸縮小,那么策略要承受較大的利潤回吐或虧損。如果反轉幅度大于之前的幅度,那么會直接反手。所以,為了保險起見,作者引入了小于1的參數K1和K2,保證突破區間逐漸收斂,使得投資人不至于長時間一直持有一個虧損倉位。 (6)策略最大的風險來自于隔日風險。如果連續出現兩根陽線,但后一根陽線遠低于前一根,這時的問題在于,策略會一直持有這樣的虧損倉位而不采取任何動作。
3.由于沒有止損止盈模塊,模型的表現實際上并不是十分穩定。這可以說是模型的一個缺陷。模型是一個永遠在市的策略,碰到信號以后就反手。但是,進一步設定固定止損位后,發現模型的盈利狀況反而下降了。我進一步調試止損位,發現只有當止損位大于1000跳,也就是對應橡膠的5000個點時,策略的盈利才不會受到止損位的影響。也就是說,最大回撤高達保證金賬戶的300%,也就是說,如果全部資金投入這樣的策略的話,已經爆倉無數次了。策略風險極大。所以,看上去很美的策略并不一定真的敢用。
1000跳的波動已經遠遠超過了漲跌停板的限制,說明策略在某一時間段連續持有巨額虧損倉位達數日之久。而當初的突破信號可能已經與當前的行情不再有任何關聯,說明這樣的盈利很有可能存在運氣的成分。
另一方面,策略缺少止盈部分,所以,也不會鎖住任何利潤。當然,止盈止損要結合在一起看,如果只有止損,沒有止盈,那么策略很可能就是一直止損出場,沒有盈利。
4.可以借鑒和提升之處一是這個策略用一個很簡單的邏輯,融入了順勢突破的精髓和一定的止損功能,在不同的行情內體現出不同的變化。設計人思維之獨特令人嘆服。二是該策略如果轉變成日內策略,也許會有一定的效果改善。具體有待各位朋友去挖掘。三是該策略突破區域的設置和參數的運用,似乎缺少一個令人信服的理由。未來的盈利能力值得懷疑。
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?立即注冊
- MC技術部: 學習了,贊一個
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 1145508240 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容