蜂鳥數據Trochil:理想的基於模型的策略開發-構建更好的策略3

2021-01-07 蜂鳥數據Trochil

這是「構建更好的策略」系列的第三部分。在上一部分中,我們討論了10個被廣泛利用的市場無效性,並提供了一些交易策略的示例。在這一部分中,我們將分析開發基於模型的交易系統的一般過程。幾乎任何事情,您都可以(至少)以兩種不同的方式制定交易策略:「理想的方式」和「真實的方式」。我們從理想的開發過程開始,分為10個步驟。

理想的基於模型的策略開發

步驟1:模型

選擇上一部分中列出的其中一個無效性,或者發現一個新的無效性。您可以盯著價格曲線,尋找可以由某種市場行為解釋的可疑事物。或者反過來,對行為模式進行理論化處理,並檢查是否可以在價格中反映出來。如果您發現新內容,請隨時在此處發布!

確定模型後,確定將產生哪個價格曲線異常,並使用定量公式或至少使用定性標準對其進行描述。下一步將需要它。作為示例,我們使用上一部分中的周期性模型:

不要低估周期。有傳言說,歷史上最成功的基金之一Jim Simons的Renaissance Medallion基金可以通過分析周期的長度(C i),相位(D i)和幅度(a i)使用隱馬爾可夫模型。不用擔心,我們將在示例中使用更簡單的方法。

步驟2:研究

找出假設的異常是否確實出現在您要交易的資產的價格曲線中。為此,您首先需要足夠的交易資產歷史數據:D1,M1或Tick數據,具體取決於異常的時間範圍。需要多少數據?儘可能多,因為您想找出異常的壽命以及異常發生的市場條件。編寫腳本以檢測並顯示價格數據中的異常。對於我們的周期模型,這將是頻譜:

查看頻譜在幾個月和幾年中的變化。與隨機數據頻譜進行比較(使用Zorro,您可以使用Detrend函數將價格曲線隨機化)。如果您沒有發現異常的明顯跡象,或者與隨機數據沒有明顯差異,請改進檢測方法。如果仍然無法成功,請返回步驟1。

步驟3:算法

編寫一個算法生成交易信號。市場無效性通常對價格曲線的影響很小。因此,您的算法在區分隨機噪聲方面必須非常出色。同時,它應該儘可能的簡單,並依賴儘可能少的參數。在我們的「周期模型」中,在正弦曲線的波谷做多,波峰位置做空:

這是系統的核心。現在是第一次回測的時候了。此時的精確性能並不重要-只需確定算法是否具有優勢即可。至少在某些市場時期或情況下,它可以產生一系列有利可圖的交易嗎?如果沒有,請改進算法或編寫另一種算法,以另一種方法利用相同的異常。但請不要使用任何停止,拖曳或其他鈴聲。他們只會扭曲結果,並給您帶來幻覺,即使沒有利潤。您的算法必須能夠通過純逆轉或至少在定時退出時產生正收益。

在這一步中,您還必須決定回測數據。通常,您需要M1或報價數據才能進行實際測試。每日數據不會。數據量取決於壽命(在步驟2中確定)和價格異常的性質。自然地,時間越長,測試就越好-但越多並不總是越好。通常情況下,追溯到10年是沒有意義的,至少在您的系統利用某些實際的市場行為時至少沒有意義。市場在十年中發生了巨大變化。過時的歷史價格數據會產生非常誤導的結果。15年前具有優勢的大多數系統在當今市場上都會慘敗。但是他們可以通過看似有利可圖的回溯欺騙您。

步驟4:篩選器

無效性不會一直存在,任何市場都會經歷隨機行為時期。對於任何系統來說,至關重要的是要有一個過濾器機制來檢測效率是否低下。過濾器至少與交易信號同等重要,甚至更多-但在交易系統中通常會被遺忘。這是帶有過濾器的示例腳本:

我們將以主導周期為中心的帶通濾波器應用於價格曲線,並測量其幅度。如果幅度高於閾值,則我們得出結論認為存在低效率,我們進行交易。現在,交易持續時間也被限制為最多10個周期,因為我們在步驟2中發現主導周期在相對較短的時間內出現和消失。

在此步驟中可能會出問題的原因是,僅僅因為它可以改善測試結果而傾向於添加過濾器。任何濾波器都必須在市場行為或所用信號算法中有合理的理由。如果您的算法僅通過添加不合理的過濾器而起作用,請返回步驟3。

第5步:優化(但不要太多!)

系統的所有參數都會影響結果,但是只有少數幾個參數直接取決於價格曲線來確定交易的入場點和出場點。這些「適應性」參數應該被識別和優化。在上面的示例中,開倉由正弦曲線的相位和濾波器閾值確定,平倉由時間確定。其他參數(例如DominantPhase的濾波器常數和BandPass函數)不需要修改,因為它們的值不取決於市場情況。

適應是一個優化的過程,也是失敗的巨大機會,甚至沒有引起注意。通常,遺傳或蠻力方法可用於在參數空間的利潤峰值處找到「最佳」參數組合。為此,許多平臺甚至都具有「優化程序」。儘管此方法確實可以產生最佳的回測結果,但對於系統的實時性能完全沒有幫助。實際上,最近的一項研究(Wiecki等人,2016年)表明,優化參數越好,系統在實時交易中的表現就越差!這種矛盾效應的原因在於,為了獲得最大的利潤而進行優化會使您的系統最適合歷史價格曲線中的噪聲,因為噪聲對結果峰值的影響遠大於市場效率低下的情況。

除了產生最佳的回測結果,正確的優化還有其他目的:

l 它可以確定系統對其參數的敏感性。如果系統適合某個參數組合,但是當它們的值改變很小時就會失去優勢:返回到步驟3。

l 它可以識別參數的最佳位置。最有效的地方是參數魯棒性最高的區域,即,較小的參數變化對返回值的影響很小。它們不是峰,而是參數空間中寬闊山丘的中心。

l 它可以使系統適應不同的資產,並使其能夠交易參數略有不同的資產組合。它還可以通過與實時交易平行的固定時間間隔使其適應當前市場狀況,從而延長系統的使用壽命。

以下是參數優化的示例腳本:

這兩個優化調用使用一個起始值(在兩種情況下均為1.0)和一個範圍(0.7..2.0)來確定系統兩個基本參數的最佳位置。您可以在優化過程中生成的兩個參數的利潤因子曲線(紅色條)中標識出點:

在這種情況下,優化器將為正弦相位選擇一個參數值,對於當前資產(EUR / USD)的幅度閾值,選擇一個參數值,約為1.0(不是0.9處的峰值)。平倉時間在此步驟中未得到優化,因為稍後將在實施風險管理時與其他平倉參數一起進行優化。

步驟6:樣本外分析

當然,參數優化可以提高該策略的回測性能,因為該系統現在可以更好地適應價格曲線。因此,到目前為止的測試結果毫無價值。為了了解實際性能,我們首先需要將數據分為樣本內和樣本外時段。樣本內時間段用於訓練,樣本外時間段用於測試。最好的方法是步行分析。它使用滾動窗口進入歷史數據以將測試和訓練時段分開。

不幸的是,WFA向系統添加了兩個參數:WFA循環的訓練時間和測試時間。測試時間應足夠長,產生足夠多的交易次數。訓練時間更為關鍵,訓練時間太短將無法獲得足夠的價格數據以進行有效優化,太長也會產生不好的結果,因為市場在訓練期間可能已經發生變化。因此,訓練時間本身就是必須優化的參數。

五個周期的前向分析(在上面的腳本中添加「 NumWFOCycles = 5; 」)將回測性能從100%的年度回報降低到更現實的60%。為了僅通過幸運地選擇測試和訓練時間來防止WFA仍然產生過於樂觀的結果,在模擬的起點略有不同的情況下多次執行WFA也很有意義。如果系統有邊緣,則結果應該不會太大不同。如果它們變化很大:請返回到步驟3。

步驟7:真實性檢查

即使測試現已超出樣本範圍,但僅通過開發過程(即根據性能選擇算法,資產,測試期和其他要素)就為結果增加了很多選擇偏見。它們是由系統的真正優勢引起的,還是僅由偏頗的開發引起的?確定這一點是戰略制定中最困難的部分。

找出問題的最佳方法是White的Reality Check。但這也是最不實用的,因為它要求在參數和算法選擇方面有嚴格的紀律。其他方法不那麼好,但是更容易應用:

蒙特卡洛。通過改組而不是替換將價格曲線隨機化,然後再次進行訓練和測試。重複多次並繪製結果的分布圖。隨機化可消除所有價格異常,因此您希望性能顯著降低。但是,如果實際價格曲線的結果位於隨機分布峰值的東側,則很可能也是隨機性造成的。那意味著:回到步驟3。

變體。這與蒙特卡洛方法相反:將訓練有素的系統應用於價格曲線的變體,並希望獲得積極的結果。保持大多數異常的變量是過採樣,下降趨勢或反轉價格曲線。如果該系統使用這些變體保持盈利,但不能使用隨機價格,則您可能確實找到了一個可靠的系統。

真正的樣本外(ROOS)測試。在開發系統時,請完全忽略最後一年(2015年)。甚至從您的PC上刪除所有2015年價格歷史記錄。僅在系統完全完成後,才下載數據並運行2015測試。由於2015年數據只能以這種方式使用一次,然後被汙染,因此如果2015年系統出現故障,您將無法再對其進行修改。只需放棄它即可。

步驟8:風險管理

到目前為止,您的系統在所有測試中均倖免。現在,您可以集中精力降低其風險並提高其性能。請勿再觸摸輸入算法及其參數。您現在正在優化平倉。現在,我們可以應用各種尾隨停止機制,而不是在開發階段使用簡單的定時退出和反轉退出。例如:

l 與其在一段時間後退出,不如將每小時的止損提高一定數量。這具有相同的效果,但是將儘早關閉無利可圖的交易,並在稍後結束有利可圖的交易。

l 當交易獲勝一定數量時,將止損放置在盈虧平衡點上方一段距離處。即使鎖定利潤百分比並不能改善整體績效,對您的健康也有好處。看到有利可圖的交易回到虧損區域會導致嚴重潰瘍。

以下為示例腳本,其初始定時退出被止損限制所取代,該止損限制在每個柱線處都增加:

當然,您現在必須優化並使用退出參數再次運行前向分析。如果性能沒有提高,請考慮使用更好的退出方法。

步驟9:資金管理

資金管理有三個目的。首先,將您的利潤再投資。其次,將資金分配到投資組合中。第三,迅速確定交易書籍是否無用。打開「資金管理」一章,閱讀作者的投資建議。如果是「每筆交易投入您資本的1%」,您就會知道他為什麼要寫交易書籍。他可能還沒有通過真實交易賺錢。

假設您在給定時間t的交易量為 V(t)。如果您的系統有利可圖,那麼平均而言,您的資本C將以增長因子c與V成比例地增長:

當您遵循交易書籍的建議並始終以固定比例的資本p投資,從而V (t) = p C(t)時,您的資本將以指數pc指數增長:

不幸的是,您的資金也會隨機波動,稱為Drawdowns。虧損與交易量V(t)成正比。在無限制提款的槓桿帳戶上,從統計考慮可以看出,最大提款深度D max與時間t的平方根成正比:

因此,使用固定百分比的投資:

並且在時間T = 1 /(qp)2時:

您會看到,在時間T = 1 /(qp)2左右,無論您的策略有多盈利以及如何選擇p,虧損都會吞噬您的所有資本C(T)!這就是為什麼1%規則是個壞建議。以及為什麼我建議客戶不要將交易量與其累積利潤成比例地增加,而是與其平方根成比例-至少在槓桿帳戶上。然後,只要策略不惡化,他們就可以與追加保證金保持安全距離。

根據您是交易一種資產和一種算法還是兩者的投資組合,可以使用多種方法來計算最佳投資。還有由OptimalF公式拉爾夫·文斯,凱利公式由埃德索普,或均值/方差最優化的哈裡維茨。通常,您不會對您的策略進行硬編碼再投資,而是從外部計算投資量,因為您可能會不時提款或入金。這要求總體積是手動設置的,而不是通過自動化過程設置的。在《黑皮書》中可以找到適當的再投資和提款公式。

步驟10:準備進行實時交易

現在,您可以定義交易系統的用戶界面。確定要實時更改的參數,以及僅在系統啟動時更改的參數。提供一種控制交易量的方法,以及一個「緊急按鈕」,以在發生壞消息時鎖定利潤或套現。實時顯示所有交易相關參數。添加用於重新訓練系統的按鈕,並提供一種將實時結果與回測結果(例如冷血指數)進行比較的方法。確保可以隨時隨地對系統進行監控,例如通過在線狀態頁面。不要試圖每五分鐘查看一次。但是,當您在山頂拔出手機時,會給人留下深刻的印象。阿拉拉特(Ararat)並向您的登山者解釋:「只要檢查一下我的交易。」

真正的策略開發

到目前為止的理論,一切都很好,但是您如何真正開發交易系統?大家都知道,理論與實踐之間存在巨大差距。正如許多經驗豐富的算法交易商所證明的那樣,這是真正的開發過程:

步驟1:訪問交易論壇,找到有關具有驚人回報的新指標的主題。

步驟2:經過長時間的編碼會話後,使指示器與測試系統一起工作。如果回測結果看起來不太好,可能犯了一些編碼錯誤,調試,不斷調試。

第3步:仍然沒有好結果,但是您還有更多技巧。添加尾隨止損。現在結果看起來已經更好了。運行一周分析。對於這種策略,星期二是特別糟糕的一天嗎?添加一個阻止在星期二進行交易的過濾器。添加更多過濾器,以防止在上午10點到12點之間交易,以及價格低於14.50美元時以及滿月(周五除外)交易。等待很長時間才能完成模擬。哇,最後的回測是綠色的!

第4步:當然,您也不會被樣本中的結果所迷惑。優化所有23個參數後,進行前瞻性分析。等待很長時間才能完成模擬。但結果看起來不太好。嘗試不同的WFA周期。最終,以19分鐘的時間段和31個循環,您將獲得令人回味的回測結果!而這完全是樣本!

步驟5:實時交易。

步驟6:結果看起來不太好。

步驟7:等待很長時間,使您的銀行帳戶恢復。在等待的過程中寫一本交易書。

我已將示例腳本添加到2016腳本存儲庫中。在本系列的下一部分中,我們將研究機器學習系統的數據挖掘方法。我們將研究價格模式檢測,回歸,神經網絡,深度學習,決策樹和支持向量機。

相關焦點

  • 莉莉絲江銳:廠商側構建高效買量策略的3大底層布局|Morketing...
    以下為演講實錄,Morketing編輯整理:大家好,我是莉莉絲遊戲的江銳,今天主要想和大家分享下在遊戲行業如何用廣告技術來構建比較高效的增長策略。2011年,我去了遊族,真正將廣告技術作為個人的職業發展路徑,2018年轉戰莉莉絲遊戲,8年的時間,經歷了國內遊戲從頁遊時代到手遊時代的變化,從構建國內買量策略到2015年遊戲廠商開始做出海買量策略的市場遷移。基本上述的從業背景和經歷去回溯總結,會發現做好買量發行等一系列事情的核心就是廣告技術。
  • 弈倍投資王上:在新數據源中掘金alpha,是量化策略取勝的關鍵
    包括印度、泰國、越南、俄羅斯等新興市場的開發經驗,此外也具有多年團隊管理經驗。業績背後的主要支撐是量化選股模型獲得的超額alpha弈倍投資早期專注於管理期貨策略,自2018年底轉為股票策略,聚焦於股票Alpha策略。
  • Stacking集成學習模型的構建、原理及回測
    我們構建了全A選股策略並進行回測,各項指標詳見圖表23,選股策略是行業中性策略,策略組合的行業配置與基準(滬深300、中證500、中證全指)保持一致,各一級行業中選N個股票等權配置(N=2,3,4,5,6)。從圖表23可以看出,XGBoost_72m模型相比XGBoost_6m和邏輯回歸_6m在年化超額收益率和信息比率上有很大優勢,但是超額收益最大回撤更大。
  • 為什麼大數據不殺熟 ——線上購物中的隱私披露與定價策略
    此文運用博弈模型研究在單一商家壟斷的購物平臺中,消費者線上消費過程中的隱私披露決策,以及商家採取的隱私使用承諾和定價策略間的博弈,並以此討論為什麼比起「使用隱私進行價格歧視」(大數據殺熟),在商家「承諾不使用隱私數據定價」(大數據不殺熟)的情況下,消費者會為商品支付更高的價格,即購買商品的收益下降;這同時也意味著商家獲得了更高的收益。
  • 數據的消減「策略」(二)
    上篇文章中,企通查為大家介紹了數據立方合計和維度消減兩種數據消減的「策略」,今天將為大家介紹另外兩種:數據壓縮和數據塊消減。 數據塊是物理記錄,通常與數據的邏輯記錄間有3種對應方式:1)一個塊即為一個記錄;2)一個塊包含若干個邏輯記錄;3)一個邏輯記錄佔用幾個塊。 數據塊消減方法主要包括參數與非參數兩種基本方法。
  • ABM營銷策略實踐第一步:這樣構建和維護目標客戶列表(TAL)
    其中一種方法是採用基於客戶的營銷(ABM)。ABM 營銷策略允許銷售和市場營銷人員在目標客戶列表(Target Account List,TAL)上進行合作,而不是通過各自孤立的工作來產生潛在客戶數量,或者瘋狂地給電話簿上的每一家公司打電話。使用 ABM 策略,你將關注線索的質量而不是數量,這將產生更高的轉化率:
  • 施懿宸:ESG整合策略正逐漸興起
    但他們在報告當中也證實,這種傳統的運用負面篩選策略構建的投資組合,可能會產生不受投資者歡迎的區域、行業、風險因素敞口。圖表 3 MSCI歐美與世界指數市場表現對比數據來源:MSCI官網,2020.8.26,中央財經大學綠色金融國際研究院整理如圖表3所示,在過去一年當中,MSCI歐洲指數的市場表現明顯弱於MSCI世界指數,大幅跑輸MSCI美國指數。
  • AARRR模型+八角行為分析法——玩轉遊戲化用戶增長策略(上)
    我們需要一套基於AARRR模型,圍繞增長成本、效率、質量三個話題來針對每一層轉化漏鬥提煉可操作的運營方案,以AARRR模型+八角行為分析法為理論框架的,遊戲化增長策略應運而生。
  • 無需依賴英語數據,100種語言互譯,臉書推出「M2M-100」模型
    由於英語訓練數據非常廣泛,之前的中法翻譯模型會分別訓練中文與英語以及英語與法語的翻譯模型,通過英語作為中間環節實現翻譯。本文模型直接應用中文與法語的訓練數據,以更好保留語義。計算BLEU指標,表明其高於以英語中轉的系統約10個百分點。
  • 新媒體營銷——企業新媒體營銷定位與策略
    新營銷定位——洞察商業人性,構建營銷計劃1、 用戶定位、產品定位、市場定位的策略2、 挖掘用戶買點、提煉產品賣點,找到供需點3、 激發用戶態度,改變用戶購買行為4、 新媒體營銷人員工作圖譜>1、 新媒體內容營銷生產體系構建2、 爆款內容的策劃與生產模型3、 新媒體內容營銷傳播與分發機制4、 提升內容營銷轉化率的技巧實操:構建企業內容營銷生產體系
  • 基於線性編程和模糊邏輯的控制系統
    該系統的設施可以處理採出水,然後將其泵送至注水井1和注水井3。常見問題包括工業用水的泵機組損失、兩個互聯設施(注水井)中注入裝置的損失以及注入流量或生產水量的變化。 為了解決這一系列問題,該油田開發了包括過程工程和先進控制策略的先進工程系統。這包括使用過程仿真器軟體構建動態模型,以動態方式觀察系統行為,並將其與預設的控制策略集成。
  • 構建精細化運營的智慧數據中心
    管理功能從數據收集、發現、實時監控,向歷史數據分析、決策分析、自動響應方向發展。採集實際的數據以及對數據的分析、統計、報告,給出執行策略是差異化競爭力的關鍵。   統一、融合的管理,要求有統一的數據模型,實現多源數據相同框架的管理;要求基於開放的平臺與體系架構,為系統管理工具選型提供更高的靈活性。
  • 無需依賴英語數據,100種語言互譯,臉書推出「 M2M-100」模型
    因此,我們需要一個真正的多語言機器翻譯(MMT)模型,該模型可以在任何語言之間直接進行翻譯,這將為我們的社區提供更好的服務。我們已經在Facebook對MT進行了多年的研究,現在終於可以自豪的宣布:我們首次構建了一個的大型MMT模型,該模型可以在100種不同語言之間直接進行翻譯,而無需依賴英語作為中轉語言。
  • 數據合作與數據定價機制初探 ——基於不同場景下的定價激勵機制分析
    1.1 研究問題深處大數據海洋與信貸時代,我們認為以下幾個問題尤為重要,故在本文進行研究探討。1) 現在的數據交易有什麼定價方法?2) 數據平臺方如何更高效的達成合作?3) 我們如何優化定價策略與設定更好的激勵機制?
  • R語言數據科學工具包:creditmodel-1.3版本發布
    3 再簡單介紹一下R語言creditmodel包當我第一次編寫creditmodel包時,初衷是提供一個工具,使二分類模型(機器學習模型或信用評分卡)的開發更簡單、更快。因此,我編寫了creditmodel包來自動構建模型,這讓我可以在幾分鐘內在普通電腦上完成數據預處理、變量選擇、參數搜索等過程,構建出可靠的預測模型(如XGboost或邏輯回歸評分卡)。然而,隨著creditmodel軟體包功能不斷增加,結構愈趨複雜,使得creditmodel脫離了原初的目的,成為了一個涵蓋數據科學整個流程的綜合工具包,可完成數據科學的多種任務。
  • 策略模擬社與策略電子遊戲的最初二十年
    當然,抽象策略遊戲和策略模擬遊戲並不是兩個絕對的概念,它們更像是一個數軸的兩端,任何一個策略遊戲都不是絕對抽象、也不可能完全模擬,它們只代表著兩種傾向。我們待會在討論一些具體的遊戲的時候,都會用到這個數軸模型。
  • 案例分析:理財類APP如何科學制定促活策略?
    三、對症下藥,制定科學策略,提升日活數據接下來,我們就和該理財類APP一起對這三個關鍵問題進行了深入剖析,針對性地制定促活策略。1. 先來解決留存的問題一般來說,影響APP用戶留存率的要素主要有3類:渠道用戶質量、產品設計(視覺和交互)、產品本身的特性。留存中有短周期留存也有長周期留存,面對每個留存周期,運營人員需要攻克的難題也不一樣。
  • 這個春節季,19位嘉賓和你深聊最重要的私域策略制定法!
    明略有風運營總監陳俊,基於「2021企業私域策略制定」,給到的建議是:搭建數位化的私域體系時,把數據的獲取和應用放在重要位置,才能實現用戶的精細化分層運營。南訊股份諮詢中心解決方案專家吳群(Eric),基於「2021企業私域策略制定」,給到的建議是:用全域視角構建社交數位化運營管理體系,形成數位化下的自動化、智能化閉環,為數據驅動業務增長提供堅實支撐。
  • CCS Chemistry | 基於螺吡喃的多外場調控有機高分子半導體新策略
    中國科學院化學研究所張德清課題組將螺吡喃基團引入共軛聚合物側鏈,成功構建多外場調控的聚合物場效應電晶體,通過紫外-可見光照、紫外光照-加熱,或引入酸-加熱,實現對電晶體溝道電流及遷移率可逆調控。在過去幾十年裡,有機/聚合物半導體和場效應電晶體的研究飛速發展。
  • 2020年12月24日投資策略分享
    基於指數開發的策略種類繁多,不同的投資者因風險偏好和投資習慣不同也往往會選擇風格各異的策略。這裡向大家介紹了定投、大小盤輪動和分批次投資三種主要的指數投資策略,並從2019年9月30日起,通過具體的指數(以中證100和創業板指為例),對策略進行模擬,每日播送收益情況,讓大家能把握三種策略的主要邏輯以及模擬收益情況,幫助大家更好地選擇適合自己的投資策略,了解指數投資的魅力!