價格模擬

From FxCodeBaseWiki
(Redirected from Price Simulation/zh-hant)
Jump to: navigation, search

什麼是價格模擬器?

為何不能使用即時價格?

初看起來,直接對即時市場嘗試執行策略或指標沒有任何問題,而且,對策略和指標的最終測試始終必須對即時市場進行。

但是,在偵錯或回溯測試期間,您可能希望對相同的市場模式多次執行策略,以便調整邏輯(在偵錯期間)或參數(在回溯測試期間)。由於即時市場是不斷變化的,所以每次執行指標或策略時,即時市場將顯示出新的模式。相反,價格模擬可讓您根據需要將指標/策略應用於相同的市場模式,沒有次數限制。

即時市場快而流暢,但還不夠快。如果要在全年範圍內測試資料,您必須先等待全年過去,然後才能獲取測試結果。

價格模擬解決了這些問題。您可以根據需要「重現」任何市場歷史資料,沒有次數限制,而且每一輪都比原始市場快得多。

工作原理

價格模擬器獲取貨幣歷史資料(例如,以價格資料檔案的形式儲存的記錄),然後根據歷史資料的每根棒線模擬八個價格點 (tick)。價格點的分佈取決於棒線的類型。對於下跌棒線,曲線會先達到高價位,然後達到低價位,最後再達到收盤價。對於上升棒線,曲線會先達到低價位,然後達到高價位,最後再達到收盤價。

Pricesim curves zh-hant.png

如果使用一分鐘資料,價格模擬器提供的價格點數目為:每天 12960 個價格點,每年最多 340 萬個價格點(52 週 x 5 個交易日)。

為何不能使用價格點歷史資料?

理論上這是可行的,但實際上,每種商品在常規的一小時交易中最多有 20,000 個價格點,因此每年有 124,800,000 個價格點。這就帶來了一系列問題:

  • 即使選擇最精簡的格式,每種商品的年歷史資料也將達到 1.5Gb 大小。
  • 模擬時間將延長 41 倍。對全年範圍測試典型策略大約需要 30 分鐘,這就使優化之類的任務幾乎毫無用處。
  • 如果觀察一下 1 分鐘範圍內的實際價格變動,您將看到在大多數情況下,市場都會遵循以下模式:
Pricesim real zh-hant.png

如您所見,大多數波動只有十分之一點 (pip) 大小,並符合差價大小。您無法根據開盤價使用設為 1 個點的止損或限價,或追蹤精度為 1/10 點的淨值/餘額。此外,大部分用戶端並不接收所有的價格點。在最糟糕的情況下,當網際網路連線情況非常差時,用戶端可能每分鐘只獲取四個價格點:開盤價、最高價、最低價和收盤價。

我們測試了許多策略,並將 1 分鐘價格點的模擬結果與對價格點歷史資料執行策略的結果進行了比較。策略測試的結果差異甚微,即使將策略應用於 1 分鐘時間框架,該差異也絕對可以忽略不計。

我只能看到在一種情況下,偽隨機價格點變動優於模擬的曲線。自學預測演算法(例如類神經網路演算法)可能足夠聰明,能識別出這些曲線,並能在前三個價格點模擬出來之後「預測」方向。但我要重申,這是極少發生的情況。此外,市場模擬是開放式 API,因此,對於這種棘手的情況,您可以輕鬆實現自訂的模擬/回溯測試常式。

其他語言版本

Language: English  • español • français • русский • 中文 • 中文(繁體)‎