您現在的位置:程序化交易>> 期貨公式>> 交易開拓者(TB)>> 開拓者公式>>正文內容

多個國外成熟交易策略分享交流[開拓者公式]

  • 咨詢內容:
    大家好,剛剛來到TB社區,我今年20歲,目前在美國讀書準備學習金融工程專業。我的父母是國內私募基金的操盤手,從大概八歲起就逐步接觸股票期貨和各種金融產品的交易。從最開始的巴菲特式的buy and hold策略,到后來研究長期資本管理公司的無風險套利策略,再到巴菲特,羅杰斯式的宏觀對沖策略,以及國內外著名炒單手的日內超短線策略。其間我還研究了德州撲克的打法并獲得了pokerstrategy的鉆石會員。我研究自動化交易很多年了,以前主要在MT4平臺上設計和制作用于外匯市場自動化交易程序,這是我的實盤賬戶在線網址:carpower007.mt4live.com過去六個月盈利超過300%資金回撤小于10%.最近受一個私募朋友的委托開發適應國內期貨市場的自動化交易程序.在這里我將分享我設計自動化程序的每一個步驟,包括測試報告和代碼,由于我在TB方面還是新手希望各位前輩能夠多多指點.大家如果常去國外的交易系統論壇的就會發現那里的老外非常有分享精神,一來有很多人把自己已經非常成熟的交易系統的源代碼分享出來,二來只要有人提出想法就會有很多智同道和的人幫助他完成交易系統編程工作,通過這樣的分享他們的平均水平越來越高.而國內的交易系統設計者們卻總是閉門造車,很少互相分享互相幫助.我希望通過我的分享在我們的社區里掀起分享互助的熱潮,有更多的高手分享出交易策略有更多的程序員愿意幫助論壇里的朋友編寫指標和交易策略使我們的整體交易水平越來越高.

    在接下來的幾篇帖子里我將和大家分享我收集破解的800多個國外自動化交易程序中最優秀的幾個的原理,并和大家一起探討如何把他們移植到國內的交易市場里.這些系統包括:

    1.基于交易時段選擇和高低點突破的Hans123突破系統

    2.適應震蕩市場的EA scalper pro剝頭皮系統(我外匯實盤用的系統)

    3.適應震蕩市場的ea boss剝頭皮交易系統(匯友曾經有過2周22倍資金回撤0.89%的實盤交易記錄)

    4.基于新聞公布和基本面瞬時變化的自動化交易程序Luckey news5基于隨機漫步原理和金字塔加碼的穩健盈利ea point Break 5和其升級版DTS6用于eurgbp eurusd gbpusd的三角套利程序。其中ea boss和ea scalper pro都有一套完整的震蕩市場過濾系統如果移植到國內相信對大家的交易應該很有幫助.由于外匯市場的交易手續費大都在百分之二以上.從賭博數學和金融數學的概率期望角度來分析,所有在外匯市場上有效的系統,在國內千分之三的手續費條件都應該是有效的而且利潤應該是國外系統的數倍.


    首先我來介紹第一個系統Hans123突破交易系統.

    大家知道外匯市場主要分為三個交易時段,亞洲盤.歐洲盤和美洲盤.還有一個是只有電子盤交易的時段.其中電子盤和亞洲盤由于參與者較少,和亞洲金融機構實力較小的緣故,行情主要以上下震蕩為主,這段時間是趨勢交易者的地獄,但是是逆勢剝頭皮交易的天堂,很多準確率超過99%且風險很小的暴利策略都是針對這個交易時段的設計的(比如ea scalper pro和ea boss)這里我們后面再詳細討論.歐洲盤和美洲盤是參與者最多的時段,是最適合進行突破交易的時段,hans123就是一個非常典型且非常有效的自動化交易策略,它的基本原理是開盤一定時間內突破前一個市場的最高價或最低價順勢做多或做空,經過對止損止盈等參數的優化這套系統可以應用到幾乎所有的外匯品種中并且盈利穩定,下面是具體的交易策略.

     --交易規則—
        初始策略
      1)找出亞洲盤的最低最高點,在歐洲開市時.
      2)掛單最高價+5點買進,最低價-5點賣出。
        3)美洲盤開市前平掉所有倉位.
        1)找出歐洲盤最高最低價在美洲盤開市時.
        2)掛單最高價+5點買進,最低價-5點賣出。
        3)美洲盤收市前平掉所有倉位
      EUR/USD:
    Buy Stop = 最高價 + 5;
    止盈 = Buy Stop + 80;
    止損 = Buy Stop - 50;
    Sell Stop = 最低價 - 5;
    止盈 = Sell Stop - 80;
    止損 = Sell Stop + 50;
    有30點浮動利潤時將止損移至開倉價位。(30點追蹤止損)
    GBP/USD:
    Buy Stop = 最高價 + 5;
    止盈 = Buy Stop + 120;
    止損 = Buy Stop - 70;
    Sell Stop = 最低價 - 5;
    止盈 = Sell Stop - 120;
    止損 = Sell Stop + 70;有40點浮動利潤時將止損移至開倉價位。(40點追蹤止損)
    每日早7點,平掉手上所有單子。
    實盤使用的時候建議大家根據品種波動率來優化止盈止損等參數以達到最好的效果,這個mt4里可以用遺傳基因算法優化來搞定很快,TB上目前用的還是窮舉法,期待老大給咱們開發一下呵呵.
    以下是原貼地址里面包括交易系統的模板和自動化交易程序國內好像給屏蔽了可能得翻墻
    http://www.forex-tsd.com/expert- ... 785-hans123-ea.html
    我各人優化以后這個系統的年均盈利在100%左右,資金回撤20%,使用的是分筆成交數據.后面我傳了一份國際黃金期貨的測試報告這個大家相對外匯還要熟悉一些,大家參考一下。

    下面來談談如何把這個系統移植到國內的期貨市場中來.

    我目前的基本想法是這樣的,hans123可以有以下幾種移植方法
    1突破昨日最高最低點5點順勢開倉.收盤前關倉.設置止盈止損追蹤止損,止盈止損都設置成參數,以便根據品種波動率優化.這里最好加一個限制開倉時間的參數便于優化交易時段,因為根據我的經驗一般來講每個品種的有效突破都集中在一個特定的時段,并以此時段為中心進行正態分布排列。所以優化交易時段對這個策略來講非常重要。這個在后面我共享的一個外匯市場的統計表里有說明,大家可以參考(進一步優化的filter:交易時段優化,ATR,Keltner Channel,KDJ等)
    2突破前一個交易時段的最高最低點5點順勢開倉,本交易時段結束前平掉所有倉位。設置止盈止損追蹤止損,止盈止損追蹤止損都設置成參數以便根據品種波動率優化。加一個限制開倉時間的參數便于優化交易時段。(進一步優化的filter:交易時段優化,ATR,Keltner Channel,KDJ等)
    我在論壇里逛了下發現了幾個和我想法相似的朋友下面是他們已經完成的代碼的整理,有些功能還沒有實現各位前輩老大可否傾囊相授,告訴我如何實現這些功能,多謝了:)這個突破系統不要nextbar發送功能只要根據所有的即時價位來發出交易信號。另外希望能精確到分鐘


     

  •  1簡單的昨日高低點突破系統:
    這個系統我希望高手可以幫助我把那些加倉反手的功能都去掉,或者設置成可以開關的功能然后加入止盈止損和追蹤止損并加入交易時間限制,使得我可以針對品種波動率優化參數。


    日內高低點突破交易系統

    //------------------------------------------------------------------------
    // 簡稱: todayHLCross
    // 名稱:
    // 類別: 交易指令
    // 類型: 其他
    // 輸出:
    //------------------------------------------------------------------------
    /*
            日內開盤區高低點機械突破系統
    */
    Params
            Numeric maxLots(1);//單次開倉手數
            Numeric maxTrad(4);//最大交易次數
            Numeric minSpt(15);//最小開倉間隔bar數
            Numeric splitRate(3); //交易滑點和傭金        
            
            Numeric tradBegin(930); //開倉時間        
            Numeric tradEnd(1430); //開倉截止時間        
            Numeric closeTime(1457); //bar的時間超過此值后平倉,一分鐘交易=1457        

    Vars
            Numeric splitDot;        //交易滑點
            
            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)
                    {
                            // 當前無倉,開始建立多頭
                            if(bc)
                            {
                                    if(BarStatus==2)        tradePrice= Q_AskPrice +splitDot; Else tradePrice=hh+splitDot;
                                    Buy(maxLots,tradePrice);
                            }
                            Else
                            // 當前無倉,開始建立空頭
                            If(sc )
                            {
                                    if(BarStatus==2)tradePrice= Q_BidPrice -splitDot; Else tradePrice=ll-splitDot;                        
                                    SellShort(maxLots,tradePrice);                                
                            }
                    }
                    //-----------------------------------------------------------------------------
                    Else
                    {
                            if(MarketPosition > 0 )
                            {
                                    // 當前多倉,加倉多頭
                                    if(bc And BarsSinceLastEntry>minSpt)
                                    {
                                            if(BarStatus==2)        tradePrice= Q_AskPrice +splitDot; Else tradePrice=hh+splitDot;
                                            Buy(maxLots,tradePrice);
                                    }                        
                                    // 當前多頭,要求反轉為空頭
                                    if(sc)
                                    {
                                            if(BarStatus==2)tradePrice= Q_BidPrice -splitDot; Else  tradePrice=ll-splitDot;                                       

                                            // 平多頭開空
                                            SellShort(maxLots,tradePrice);                                       
                                    }                                       
                                    //持倉處理,止損止盈平倉
                                    //........
                            }
                            //-----------------------------------------------------------------------------------------------
                            Else
                            if(MarketPosition < 0 )
                            {        
                                    // 當前空倉,加空頭
                                    If(sc And BarsSinceLastEntry>minSpt)
                                    {
                                            if(BarStatus==2)tradePrice= Q_BidPrice -splitDot; Else tradePrice=ll-splitDot;                        
                                            SellShort(maxLots,tradePrice);
                                    }                        
                                    // 當前空頭,要求反轉為多頭
                                    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
    // 版權所有        fish0451
    // 更改聲明        TradeBlazer Software保留對TradeBlazer平臺
    //                        每一版本的TrabeBlazer公式修改和重寫的權利
    //------------------------------------------------------------------------

     

  • 網友回復:

    2定義時間段內高低點的函數:


    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




     
  • 一個30分鐘突破的日內系統

    這個系統我認為缺乏一個有效的過濾器會造成很多無效突破,在過濾器中最簡單有效的是交易時段過濾器正如我前面提到的有效突破總是集中在一天中的某一時段呈正態分布向兩邊展開。通過時間過濾器可以大大提高系統的成功率和穩定性。希望高手添加一下。



    Params
            Numeric nMins(30);                // N分鐘的突破
        Numeric nOffset(3);                // 突破式的價格偏移
    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

     

 

有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友

可聯系技術人員 QQ: 262069696  點擊在線交流進行 有償 編寫!不貴!點擊查看價格!

 


【字體: 】【打印文章】【查看評論

相關文章

    沒有相關內容
  主站蜘蛛池模板: 91精品久久久久久久久久| 久久精品卫校国产小美女| 看黄a大片免费| 日本一区二区三区四区五区| 亚洲欧美另类日韩| 男女一边摸一边做爽视频| 四虎成人免费网站在线| 香焦视频在线观看黄| 国产精品va无码免费麻豆| 91福利视频合集| 女人16一毛片| 久久精品夜色国产亚洲av| 欧美最猛黑人xxxx| 人人妻人人澡人人爽超污 | 狂野欧美性猛交xxxx| 午夜宅男在线永久免费观看网| 草莓视频app在线播放| 国产女主播一区| 欧美h片在线观看| 国产精品亚洲小说专区| 6080午夜乱理伦片| 国模欢欢炮交150视频| a级国产乱理伦片在线观看| 好爽好深胸好大好多水视频| 久久久久久曰本av免费免费| 日本高清二区视频久二区| 久久精品视频91| 最新eeuss第141页| 亚洲AV日韩精品久久久久久A| 欧美夫妇交换完整版随便看| 亚洲欧洲日产国码www| 欧美老熟妇牲交| 亚洲欧美日韩国产综合五月天 | japanese日本熟妇多毛| 妞干网2018| √最新版天堂资源网在线| 少妇粉嫩小泬喷水视频| 一级特黄录像视频免费| 尹人香蕉久久99天天拍久女久| 三色堂明星合成论坛| 希岛婚前侵犯中文字幕在线|