多個(gè)國外成熟交易策略分享交流-1 hans123突破系統(tǒng)
作者:開拓者 TB 來源:cxh99.com 發(fā)布時(shí)間:2012年09月08日
- 咨詢內(nèi)容:
大家好,剛剛來到TB社區(qū),我今年20歲,目前在美國讀書準(zhǔn)備學(xué)習(xí)金融工程專業(yè)。我的父母是國內(nèi)私募基金的操盤手,從大概八歲起就逐步接觸股票期貨和各種金融產(chǎn)品的交易。從最開始的巴菲特式的buy and hold策略,到后來研究長期資本管理公司的無風(fēng)險(xiǎn)套利策略,再到巴菲特,羅杰斯式的宏觀對(duì)沖策略,以及國內(nèi)外著名炒單手的日內(nèi)超短線策略。其間我還研究了德州撲克的打法并獲得了www.pokerstrategy.com的鉆石會(huì)員。我研究自動(dòng)化交易很多年了,以前主要在MT4平臺(tái)上設(shè)計(jì)和制作用于外匯市場自動(dòng)化交易程序,這是我的實(shí)盤賬戶在線網(wǎng)址:carpower007.mt4live.com過去六個(gè)月盈利超過300%資金回撤小于10%.最近受一個(gè)私募朋友的委托開發(fā)適應(yīng)國內(nèi)期貨市場的自動(dòng)化交易程序.在這里我將分享我設(shè)計(jì)自動(dòng)化程序的每一個(gè)步驟,包括測(cè)試報(bào)告和代碼,由于我在TB方面還是新手希望各位前輩能夠多多指點(diǎn).大家如果常去國外的交易系統(tǒng)論壇的就會(huì)發(fā)現(xiàn)那里的老外非常有分享精神,一來有很多人把自己已經(jīng)非常成熟的交易系統(tǒng)的源代碼分享出來,二來只要有人提出想法就會(huì)有很多智同道和的人幫助他完成交易系統(tǒng)編程工作,通過這樣的分享他們的平均水平越來越高.而國內(nèi)的交易系統(tǒng)設(shè)計(jì)者們卻總是閉門造車,很少互相分享互相幫助.我希望通過我的分享在我們的社區(qū)里掀起分享互助的熱潮,有更多的高手分享出交易策略有更多的程序員愿意幫助論壇里的朋友編寫指標(biāo)和交易策略使我們的整體交易水平越來越高.在接下來的幾篇帖子里我將和大家分享我收集破解的800多個(gè)國外自動(dòng)化交易程序中最優(yōu)秀的幾個(gè)的原理,并和大家一起探討如何把他們移植到國內(nèi)的交易市場里.這些系統(tǒng)包括:
1.基于交易時(shí)段選擇和高低點(diǎn)突破的Hans123突破系統(tǒng)
2.適應(yīng)震蕩市場的EA scalper pro剝頭皮系統(tǒng)(我外匯實(shí)盤用的系統(tǒng))
3.適應(yīng)震蕩市場的ea boss剝頭皮交易系統(tǒng)(匯友曾經(jīng)有過2周22倍資金回撤0.89%的實(shí)盤交易記錄)
4.基于新聞公布和基本面瞬時(shí)變化的自動(dòng)化交易程序Luckey news5基于隨機(jī)漫步原理和金字塔加碼的穩(wěn)健盈利ea point Break 5和其升級(jí)版DTS6用于eurgbp eurusd gbpusd的三角套利程序。其中ea boss和ea scalper pro都有一套完整的震蕩市場過濾系統(tǒng)如果移植到國內(nèi)相信對(duì)大家的交易應(yīng)該很有幫助.由于外匯市場的交易手續(xù)費(fèi)大都在百分之二以上.從賭博數(shù)學(xué)和金融數(shù)學(xué)的概率期望角度來分析,所有在外匯市場上有效的系統(tǒng),在國內(nèi)千分之三的手續(xù)費(fèi)條件都應(yīng)該是有效的而且利潤應(yīng)該是國外系統(tǒng)的數(shù)倍.
首先我來介紹第一個(gè)系統(tǒng)Hans123突破交易系統(tǒng).
大家知道外匯市場主要分為三個(gè)交易時(shí)段,亞洲盤.歐洲盤和美洲盤.還有一個(gè)是只有電子盤交易的時(shí)段.其中電子盤和亞洲盤由于參與者較少,和亞洲金融機(jī)構(gòu)實(shí)力較小的緣故,行情主要以上下震蕩為主,這段時(shí)間是趨勢(shì)交易者的地獄,但是是逆勢(shì)剝頭皮交易的天堂,很多準(zhǔn)確率超過99%且風(fēng)險(xiǎn)很小的暴利策略都是針對(duì)這個(gè)交易時(shí)段的設(shè)計(jì)的(比如ea scalper pro和ea boss)這里我們后面再詳細(xì)討論.歐洲盤和美洲盤是參與者最多的時(shí)段,是最適合進(jìn)行突破交易的時(shí)段,hans123就是一個(gè)非常典型且非常有效的自動(dòng)化交易策略,它的基本原理是開盤一定時(shí)間內(nèi)突破前一個(gè)市場的最高價(jià)或最低價(jià)順勢(shì)做多或做空,經(jīng)過對(duì)止損止盈等參數(shù)的優(yōu)化這套系統(tǒng)可以應(yīng)用到幾乎所有的外匯品種中并且盈利穩(wěn)定,下面是具體的交易策略.
[ 本帖最后由 oliverzrl 于 2010-7-7 18:24 編輯 ]
-
-
hans123黃金測(cè)試報(bào)告.rar
2010-7-7 18:22:45 上傳
下載次數(shù): 1414
多個(gè)國外成熟交易策略分享交流 1突破系統(tǒng)篇
- TB技術(shù)人員:
--交易規(guī)則—
初始策略
1)找出亞洲盤的最低最高點(diǎn),在歐洲開市時(shí).
2)掛單最高價(jià)+5點(diǎn)買進(jìn),最低價(jià)-5點(diǎn)賣出。
3)美洲盤開市前平掉所有倉位.
1)找出歐洲盤最高最低價(jià)在美洲盤開市時(shí).
2)掛單最高價(jià)+5點(diǎn)買進(jìn),最低價(jià)-5點(diǎn)賣出。
3)美洲盤收市前平掉所有倉位
EUR/USD:
Buy Stop = 最高價(jià) + 5;
止盈 = Buy Stop + 80;
止損 = Buy Stop - 50;
Sell Stop = 最低價(jià) - 5;
止盈 = Sell Stop - 80;
止損 = Sell Stop + 50;
有30點(diǎn)浮動(dòng)利潤時(shí)將止損移至開倉價(jià)位。(30點(diǎn)追蹤止損)
GBP/USD:
Buy Stop = 最高價(jià) + 5;
止盈 = Buy Stop + 120;
止損 = Buy Stop - 70;
Sell Stop = 最低價(jià) - 5;
止盈 = Sell Stop - 120;
止損 = Sell Stop + 70;有40點(diǎn)浮動(dòng)利潤時(shí)將止損移至開倉價(jià)位。(40點(diǎn)追蹤止損)
每日早7點(diǎn),平掉手上所有單子。
實(shí)盤使用的時(shí)候建議大家根據(jù)品種波動(dòng)率來優(yōu)化止盈止損等參數(shù)以達(dá)到最好的效果,這個(gè)mt4里可以用遺傳基因算法優(yōu)化來搞定很快,TB上目前用的還是窮舉法,期待老大給咱們開發(fā)一下呵呵.
以下是原貼地址里面包括交易系統(tǒng)的模板和自動(dòng)化交易程序國內(nèi)好像給屏蔽了可能得翻墻
http://www.forex-tsd.com/expert- ... 785-hans123-ea.html
我各人優(yōu)化以后這個(gè)系統(tǒng)的年均盈利在100%左右,資金回撤20%,使用的是分筆成交數(shù)據(jù).后面我傳了一份國際黃金期貨的測(cè)試報(bào)告這個(gè)大家相對(duì)外匯還要熟悉一些,大家參考一下。
下面來談?wù)勅绾伟堰@個(gè)系統(tǒng)移植到國內(nèi)的期貨市場中來.
我目前的基本想法是這樣的,hans123可以有以下幾種移植方法
1突破昨日最高最低點(diǎn)5點(diǎn)順勢(shì)開倉.收盤前關(guān)倉.設(shè)置止盈止損追蹤止損,止盈止損都設(shè)置成參數(shù),以便根據(jù)品種波動(dòng)率優(yōu)化.這里最好加一個(gè)限制開倉時(shí)間的參數(shù)便于優(yōu)化交易時(shí)段,因?yàn)楦鶕?jù)我的經(jīng)驗(yàn)一般來講每個(gè)品種的有效突破都集中在一個(gè)特定的時(shí)段,并以此時(shí)段為中心進(jìn)行正態(tài)分布排列。所以優(yōu)化交易時(shí)段對(duì)這個(gè)策略來講非常重要。這個(gè)在后面我共享的一個(gè)外匯市場的統(tǒng)計(jì)表里有說明,大家可以參考(進(jìn)一步優(yōu)化的filter:交易時(shí)段優(yōu)化,ATR,Keltner Channel,KDJ等)
2突破前一個(gè)交易時(shí)段的最高最低點(diǎn)5點(diǎn)順勢(shì)開倉,本交易時(shí)段結(jié)束前平掉所有倉位。設(shè)置止盈止損追蹤止損,止盈止損追蹤止損都設(shè)置成參數(shù)以便根據(jù)品種波動(dòng)率優(yōu)化。加一個(gè)限制開倉時(shí)間的參數(shù)便于優(yōu)化交易時(shí)段。(進(jìn)一步優(yōu)化的filter:交易時(shí)段優(yōu)化,ATR,Keltner Channel,KDJ等)
我在論壇里逛了下發(fā)現(xiàn)了幾個(gè)和我想法相似的朋友下面是他們已經(jīng)完成的代碼的整理,有些功能還沒有實(shí)現(xiàn)各位前輩老大可否傾囊相授,告訴我如何實(shí)現(xiàn)這些功能,多謝了:)這個(gè)突破系統(tǒng)不要nextbar發(fā)送功能只要根據(jù)所有的即時(shí)價(jià)位來發(fā)出交易信號(hào)。另外希望能精確到分鐘
[ 本帖最后由 oliverzrl 于 2010-7-7 18:29 編輯 ]
- TB客服:
1簡單的昨日高低點(diǎn)突破系統(tǒng):
原貼地址:http://www.tradeblazer.net/forum ... =%E7%AA%81%E7%A0%B4
這個(gè)系統(tǒng)我希望高手可以幫助我把那些加倉反手的功能都去掉,或者設(shè)置成可以開關(guān)的功能然后加入止盈止損和追蹤止損并加入交易時(shí)間限制,使得我可以針對(duì)品種波動(dòng)率優(yōu)化參數(shù)。
日內(nèi)高低點(diǎn)突破交易系統(tǒng)
//------------------------------------------------------------------------
// 簡稱: todayHLCross
// 名稱:
// 類別: 交易指令
// 類型: 其他
// 輸出:
//------------------------------------------------------------------------
/*
日內(nèi)開盤區(qū)高低點(diǎn)機(jī)械突破系統(tǒng)
*/
Params
Numeric maxLots(1);//單次開倉手?jǐn)?shù)
Numeric maxTrad(4);//最大交易次數(shù)
Numeric minSpt(15);//最小開倉間隔bar數(shù)
Numeric splitRate(3); //交易滑點(diǎn)和傭金
Numeric tradBegin(930); //開倉時(shí)間
Numeric tradEnd(1430); //開倉截止時(shí)間
Numeric closeTime(1457); //bar的時(shí)間超過此值后平倉,一分鐘交易=1457
Vars
Numeric splitDot; //交易滑點(diǎn)
Bool bc(False);//開多條件
Bool sc(False);//開空條件
Numeric tradePrice(0);
NumericSeries hh;
NumericSeries ll;
Begin
splitDot=splitRate*MinMove();
If(BarStatus==0)
{
hh=High;
ll=Low;
Return;
}
if(Day !=Day[1])
{
hh=High;
ll=Low; }
Else
If(Time<0.0001*tradBegin)
{
if(High>hh[1]) hh=High; Else hh=hh[1];
if(Low<ll[1]) ll=Low; Else ll=ll[1];
}
Else
if(Time>=0.0001*tradBegin And Time<=0.1500)
{
hh=hh[1];
ll=ll[1];
//穿越模式
bc=CrossOver(Open,hh) Or CrossOver(High,hh) Or CrossOver(Low,hh) Or CrossOver(Close,hh) ;
sc=CrossUnder(Open,ll) Or CrossUnder(High,ll) Or CrossUnder(Low,ll) Or CrossUnder(Close,ll);
if(MarketPosition == 0)
{
// 當(dāng)前無倉,開始建立多頭
if(bc)
{
if(BarStatus==2) tradePrice= Q_AskPrice +splitDot; Else tradePrice=hh+splitDot;
Buy(maxLots,tradePrice);
}
Else
// 當(dāng)前無倉,開始建立空頭
If(sc )
{
if(BarStatus==2)tradePrice= Q_BidPrice -splitDot; Else tradePrice=ll-splitDot;
SellShort(maxLots,tradePrice);
}
}
//-----------------------------------------------------------------------------
Else
{
if(MarketPosition > 0 )
{
// 當(dāng)前多倉,加倉多頭
if(bc And BarsSinceLastEntry>minSpt)
{
if(BarStatus==2) tradePrice= Q_AskPrice +splitDot; Else tradePrice=hh+splitDot;
Buy(maxLots,tradePrice);
}
// 當(dāng)前多頭,要求反轉(zhuǎn)為空頭
if(sc)
{
if(BarStatus==2)tradePrice= Q_BidPrice -splitDot; Else tradePrice=ll-splitDot;
// 平多頭開空
SellShort(maxLots,tradePrice);
}
//持倉處理,止損止盈平倉
//........
}
//-----------------------------------------------------------------------------------------------
Else
if(MarketPosition < 0 )
{
// 當(dāng)前空倉,加空頭
If(sc And BarsSinceLastEntry>minSpt)
{
if(BarStatus==2)tradePrice= Q_BidPrice -splitDot; Else tradePrice=ll-splitDot;
SellShort(maxLots,tradePrice);
}
// 當(dāng)前空頭,要求反轉(zhuǎn)為多頭
if(bc)
{
if(BarStatus==2) tradePrice= Q_AskPrice +splitDot; Else tradePrice=hh+splitDot;
//平空頭,開多
Buy(maxLots,tradePrice);
}
//持倉處理,止損止盈平倉
//........
}
}
}
End
//------------------------------------------------------------------------
// 編譯版本 GS2004.06.12
// 用戶版本 2008/11/18 18:49
// 版權(quán)所有 fish0451
// 更改聲明 TradeBlazer Software保留對(duì)TradeBlazer平臺(tái)
// 每一版本的TrabeBlazer公式修改和重寫的權(quán)利
//------------------------------------------------------------------------
2定義時(shí)間段內(nèi)高低點(diǎn)的函數(shù):
- 網(wǎng)友回復(fù):
原貼地址:http://www.tradeblazer.net/forum ... =%E7%AA%81%E7%A0%B4
vars
NumericSeries TmpHiLine;
Begin
If(Date!=Date[1])
{
TmpHiLine = InvalidNumeric;
}else
{
TmpHiLine = TmpHiLine[1];
}
If(Time >= 0.1100 && Time <= 0.1120)
{
If(TmpHiLine == InvalidNumeric )
TmpHiLine = High;
else
TmpHiLine = max(High,TmpHiLine );
}
PlotNumeric("MyHighLine",TmpHiLine );
End
3一個(gè)30分鐘突破的日內(nèi)系統(tǒng)
原貼地址:http://www.tradeblazer.net/forum ... =%E7%AA%81%E7%A0%B4
這個(gè)系統(tǒng)我認(rèn)為缺乏一個(gè)有效的過濾器會(huì)造成很多無效突破,在過濾器中最簡單有效的是交易時(shí)段過濾器正如我前面提到的有效突破總是集中在一天中的某一時(shí)段呈正態(tài)分布向兩邊展開。通過時(shí)間過濾器可以大大提高系統(tǒng)的成功率和穩(wěn)定性。希望高手添加一下。
Params
Numeric nMins(30); // N分鐘的突破
Numeric nOffset(3); // 突破式的價(jià)格偏移
Vars
NumericSeries HighestOf30Min;
NumericSeries lowestOf30Min;
Numeric myPrice;
Numeric MinPoint;
Numeric lots(1);
Begin
MinPoint = MinMove*PriceScale;
If(Date <> Date[1])
{
HighestOf30Min = High;
lowestOf30Min = Low;
}Else If(Time < 0.0900+nMins*0.0001)
{
HighestOf30Min = max(high,HighestOf30Min[1]);
lowestOf30Min = min(Low,lowestOf30Min[1]);
}Else
{
HighestOf30Min = HighestOf30Min[1];
lowestOf30Min = lowestOf30Min[1];
}
If(High >= HighestOf30Min + nOffset*MinPoint && MarketPosition != 1)
{
myPrice = HighestOf30Min + nOffset*MinPoint;
If(Open > myPrice) myPrice = Open;
Buy(lots,myPrice);
}
If(Low <= lowestOf30Min - nOffset*MinPoint && MarketPosition != -1)
{
myPrice = lowestOf30Min - nOffset*MinPoint;
If(Open < myPrice) myPrice = Open;
SellShort(lots,myPrice);
}
If(Time >= 0.1459)
{
Sell(lots,Open);
BuyToCover(lots,Open);
}
End
3自適應(yīng)動(dòng)態(tài)突破系統(tǒng)(Dynamic Break Out II)tb版
- 網(wǎng)友回復(fù):
3自適應(yīng)動(dòng)態(tài)突破系統(tǒng)(Dynamic Break Out II)tb版
原貼地址:
這個(gè)系統(tǒng)是我看到論壇內(nèi)一個(gè)比較接近專業(yè)水準(zhǔn)的系統(tǒng),但是很多人不研究明白交易原理不進(jìn)行優(yōu)化就胡亂使用,這個(gè)代碼也缺少一個(gè)原版所擁有的交易時(shí)段篩選參數(shù)和其它一些filter,恩另外介紹一下dochian-channel,這是一個(gè)非常好的通道的指標(biāo),基于這個(gè)指標(biāo)設(shè)計(jì)歐元美元?jiǎng)冾^皮策略準(zhǔn)確率可以達(dá)到99%,大家可以參考這個(gè)外匯EA評(píng)測(cè)網(wǎng)站的測(cè)試報(bào)告:http://www.fx3721.cn/2009/1203/320.html
Numeric ceilingAmt(60);
Numeric floorAmt(20);
Numeric bolBandTrig(2.00);
Vars
Numeric lookBackDays(20);
Numeric todayVolatility(0);
Numeric yesterDayVolatility(0);
Numeric deltaVolatility(0);
NumericSeries buyPoint(0);
NumericSeries sellPoint(0);
NumericSeries longLiqPoint(0);
NumericSeries shortLiqPoint(0);
Numeric upBand(0);
Numeric dnBand(0);
Numeric MidLine(0);
Numeric Band(0);
Begin
todayVolatility = StandardDev(Close,30,1);
yesterDayVolatility = StandardDev(Close[1],30,1);
deltaVolatility = (todayVolatility - yesterDayVolatility)/todayVolatility;
lookBackDays = lookBackDays * (1 + deltaVolatility);
lookBackDays = Round(lookBackDays,0);
lookBackDays = Min(lookBackDays,ceilingAmt);
lookBackDays = Max(lookBackDays,floorAmt);
MidLine = AverageFC(Close,lookBackDays);
Band = StandardDev(Close,lookBackDays,bolBandTrig);
upBand = MidLine + bolBandTrig * Band;
dnBand = MidLine - bolBandTrig * Band;
buyPoint = Highest(High[1],lookBackDays);
sellPoint = Lowest(Low[1],lookBackDays);
longLiqPoint = Average(Close[1],lookBackDays);
shortLiqPoint = Average(Close[1],lookBackDays);
if(Close > upBand)
{
If(CrossOver(high,buyPoint))
{
Buy(1,max( buyPoint, Low ));
}
Commentary("多頭觸發(fā)價(jià):"+Text(buyPoint));
}
if(Close < dnBand)
{
If(CrossUnder(Low,sellPoint ))
{
SellShort(1,min( sellPoint , High ));
}
Commentary("空頭觸發(fā)價(jià):"+Text(sellPoint));
}
if(MarketPosition == 1)
{
If(CrossUnder(Low,longLiqPoint ))
{
Sell(1,min( longLiqPoint , High ));
}
Commentary("多頭退出:"+Text(longLiqPoint));
}
if(MarketPosition == -1)
{
If(CrossOver(high,shortLiqPoint))
{
BuyToCover(1,max( shortLiqPoint, Low ));
}
Commentary("多頭退出:"+Text(shortLiqPoint));
}
End |