PDA

View Full Version : 使用 DeepMind 的 Wavenet 架構進行深度學習預測



耶莉桑达艾玛
06-06-2020 00:43, 12:43 AM
你好,

我建立了一個深度學習模型來預測外匯價格。與上一個柱狀平均值相比,它在預測下一個柱狀平均值的方向方面給出了令人驚訝的好結果。

深度學習模型能夠在具有多個特徵的大型數據集中找到模式。我不僅給模型定價,而且從報價和經濟新聞數據中生成了許多特徵。

模型描述可以在這裡看到:

https://medium.com/analytics-vidhya/wavenet-variations-for-financial-time-series-prediction-the-simple-the-directional-relu-and-the-4860d8a97af1?source=friends_linksk=76d1c792b83d1607675ff2e0e2e966e5
數據準備手冊在這裡:

https://github.com//probabilistic_wavenet_fx/blob/master/data_preparation.md

如果您有任何問題、建議,請寫信。

我使用了不同的輸出形式,直接的和概率的。下圖顯示了一些概率預測步驟:
(藍色和橙色是不同模型的預測,紅色豎線是真實的JPY/USD(是的,不是USD/JPY)價格。)


https://miro.medium.com/max/618/1*GNvcbd0mxOGJwP3kp9Ikng.jpeg

更新:
正如 PipMeUp 指出的那樣,這個預測可以被視為一種指標,而不是一種交易策略。我不想多說。在此基礎上製定策略需要更多的工作,而且我不能說這將是一個有利可圖的策略,因為到目前為止我還沒有製定過。
但我希望你能找到鼓舞人心的方法和指標。

謝謝

弗拉维娅阿尔西德斯
08-04-2022 07:35, 07:35 AM
感謝您發布此主題。最近在媒體上出現了一些有趣的文章。我最近對使用 tensorflow 的 R 進行了另一項操作,但在實施後不知道該怎麼做。也許這個線程會給我最終完全跳入 Python 的動力,因為這似乎是所有最好的新包的來源。謝謝推薦書。希望我可以通過運行其中的示例來加快速度,同時跟隨您的進度。你只在 Python 中工作嗎?我的大部分開發現在都在 C# 中 - 我有一個漂亮的 R 接口,但需要類似的東西來將數據傳輸到 Python 或從 Python 傳輸數據。我知道 Visual Studio 為 Python 提供了一些不錯的功能——但不確定從 C# 到 Python 的接口有多容易。我換了電腦,所以基本上需要從頭開始安裝 Python。您是否建議使用 Anaconda 或其他方法來獲取大部分必要的軟件包?

耶莉桑达艾玛
08-04-2022 08:57, 08:57 AM
感謝 PipMeUp 的長篇文章。你有一個很好的觀點,這只是一個指標。它只預測下一個 5 分鐘柱的平均值,這使得該指標比另一個預測特定時間某個值的預測器更難使用。但是這種平均降低了預測變量的波動性,模型更容易找到一些模式。對於一種策略,我應該訓練其他模型,但與此沒有太大區別。我不會嘗試預測開盤價或收盤價,因為它們是最難的。但也會嘗試預測條形的高點、低點、第一四分位數和第三四分位數。這將有很大幫助,使用這些指標可以更容易地制定策略,找到 TP 和 SL 水平。 . .建立一個同時預測所有這些的模型甚至可以幫助更好地概括,但這不能事先知道。所以需要幾天的 GPU 計算。我也應該使用買入價,製作相同的特徵,並從買入價和賣出價中彌補一些有希望的交叉特徵(點差、滑點等)。這應該會進一步幫助該模型。之後應該是戰略建設。首先,我會採用更保守的策略,而不是基於 DL。當然,獲得輸入的強化學習會很好,但這將是一個很長的開發時間,也許不基於 ML 的策略就足夠了。關於置信區間:對於定向Relu方法,我沒有顯示置信區間,你是對的。確定某些不確定性的一個簡單指標是平均平均誤差本身。我們可以將正態分佈擬合到驗證錯誤中,並獲得內部 95% 的寬置信區間。對於具有概率輸出的最後一個模型,我們得到分佈作為預測(我們得到子分佈的均值和標準差)。因此,在每一步,都可以根據對該特定時間預測的均值和標準差來計算任何水平的置信區間,並且每個時間步都有基於輸入參數的自己的置信區間。從我上面插入的圖片
https://miro.medium.com/max/618/1*GNvcbd0mxOGJwP3kp9Ikng.jpeg很難得到這些置信水平,應該標明 50% 和 95% 的水平以便更好地判斷。是的,我應該找點時間進一步改進模型,謝謝。

t55tyyea
08-04-2022 10:19, 10:19 AM
1 個附件

如此簡短的回答:我不會在接下來的幾個月內製定完整的策略,也許會更晚。
也許你應該現在開始,並行。我可以看到一些原因。第一個是避免錯誤地解決問題。我的意思是你最終會得到一個神經網絡,它會提供一些預測。歸根結底,這只是一個指標。一個複雜的,但一個指標。你的風險是最終得到一個工具,並且不得不強迫自己弄清楚用它來構建什麼。第二個原因是,由於高度不確定性,關於倉位管理的策略將比預測更重要。另一個原因是技術性更強,我認為這是一個機會。您使用 DL 創建預測器,然後我認為以相同的方式構建策略是有意義的。同時構建兩者允許您使用交易結果反饋預測器(它們成為輸入的一部分)。如果您的預測器成為趨勢估計器,則該策略可能會收斂到趨勢追隨者,並要求預測器專注於更好地預測趨勢。我讀了你的博客,我想在最後的圖片上看到兩件事(複製如下)。 1- 預測周圍的置信區間(根據我自己的結果,它是巨大的) 2- 幾個連續的預測,看看它的可變性。 =gt;我做了一個簡單的預測器,當我選擇正確的預測器時,預測可能是不可思議的 ;-) 但它經常在單個柱狀圖中從軸承變為強烈看漲,並在下一個柱形再次改變主意!
https://www.forex-pedia.com/attachments/15941436411677943077.jpg

耶莉桑达艾玛
08-04-2022 11:41, 11:41 AM
{quote}你好。很高興看到您的深度學習方法。我在 AI、GA、RBF 和深度學習領域工作。我會研究你的鏈接,想看看你的工作,讓我們一起改進方法。你能分享你的數據和流聊天/代碼嗎?我將在 MATLAB 中實現它,並與您分享以徵求您的意見。
你好 Yashir,每個代碼都可以在 github 上找到,數據處理手冊解釋了管道:
https://github.com//probabilistic_wavenet_fx/blob/master/data_preparation.md.所以你有代碼。剛查了一下,很遺憾,數據文件沒有上傳到github,太大了。但是滴答數據可以在 dukascopy 上獲得,您可以使用 Tickstory 輕鬆下載:
https://tickstory.com/通過數據處理筆記本運行它們並沒有太多時間。

耶莉桑达艾玛
08-04-2022 13:04, 01:04 PM
看起來很有趣。想到的第一個問題是:您使用什麼硬件?你打算用一些實際的結果來證明你的殺戮嗎?你未來的計劃是什麼?謝謝
我使用單個 Nvidia K80 GPU 在 Google Cloud 上對其進行了訓練。訓練一個模型需要幾個小時,但我訓練的時間比在筆記本上要多得多。上週,獲得谷歌 GPU 變得非常困難,因為坐在家庭辦公室的每個人都開始使用雲。在 CPU 上訓練了一些模型,但這很長。這是一個投資組合項目。我很樂意與專業團隊合作開發基於深度學習模型的系統。如果沒有,那麼我將嘗試從自然語言處理或計算機視覺中實現其他時間序列的解決方案來學習。我有很多想法。如此簡短的回答:我不會在接下來的幾個月內製定完整的策略,也許會更晚。但是每個模型和輸入都可以在 Github 上找到。我只是想在這里分享深度學習的機會,並與對基於機器學習的系統感興趣的人交談。

法比阿诺弗朗丝
08-04-2022 14:26, 02:26 PM
你好,我建立了一個深度學習模型來預測外匯價格。與上一個柱狀平均值相比,它在預測下一個柱狀平均值的方向方面給出了令人驚訝的好結果。深度學習模型能夠在具有多個特徵的大型數據集中找到模式。我不僅給模型定價,而且從報價和經濟新聞數據中生成了許多特徵。模型描述可以在這裡看到:
https://medium.com/analytics-vidhya/wavenet-variations-for-financial-time-series-prediction-the-simple-the-directional-relu-and-the-4860d8a97af1?source=friends_linksk=76d1c792b83d1607675ff2e0e2e966e5...
你好。很高興看到您的深度學習方法。我在 AI、GA、RBF 和深度學習領域工作。我會研究你的鏈接,想看看你的工作,讓我們一起改進方法。你能分享你的數據和流聊天/代碼嗎?我將在 MATLAB 中實現它,並與您分享以徵求您的意見。

pelpilo
08-04-2022 15:48, 03:48 PM
看起來很有趣。想到的第一個問題是:您使用什麼硬件?你打算用一些實際的結果來證明你的殺戮嗎?你未來的計劃是什麼?謝謝

耶莉桑达艾玛
08-04-2022 17:10, 05:10 PM
所以讓我猜猜……你有一個預測,但是當你交易它時 - 是損失,不是嗎?
https://www.forex-pedia.com/attachments/1594143626.jpg不,我到目前為止還沒有交易過。這只是一個預測,不同模型的輸出需要不同的策略來圍繞它們構建。概率輸出需要大量思考如何找到最佳策略。這只是一半。但該模型在它從未見過的數據上也不錯。因此,要圍繞它制定一個好的策略,我認為它需要與模型構建類似的工作量。但是我必須像以前一樣學習另一個 API,我可能需要做更多的工作。但我對這篇文章有不同的目標:證明我在深度學習時間序列建模方面的技能。

pedlitafx
08-04-2022 18:33, 06:33 PM
所以讓我猜猜……你有一個預測,但是當你交易它時 - 是損失,不是嗎?
https://www.forex-pedia.com/attachments/1594143626.jpg

lisa43
08-04-2022 19:55, 07:55 PM
你好,我建立了一個深度學習模型來預測外匯價格。
嗨 - 謝謝你的啟發,我是一個經驗豐富的交易者,雖然只是偶爾成功,主要是因為交易主要是通過多年的相對財富,因此不需要作為驅動力。這已經改變了。我對數學和代數有很好的理解,並且有編碼和學習新語言/平台等的歷史 - PHP、python、CSS、MySQL、r 等。你能指導我到最快的免費路線以獲得合理的深度學習/人工智能等方面的知識。我正在下載整個 dukas 滴答數據,以準備……哈哈。

耶莉桑达艾玛
08-04-2022 21:17, 09:17 PM
嗨,數學,尤其是統計和線性代數是一個好的開始。而python知識非常重要,因為當今大部分機器學習/深度學習庫都可以在python中使用。可能您可以跳過機器學習之前必須具備的大部分內容。我讀了很多書,製作了在線課程,參與了項目。幸運的是,有免費的選擇,我很幸運地在 Udacity 贏得了一些非免費的課程。我的建議: 1. 首先,在 Coursera 上學習 Andrew Ng 的機器學習課程。如果您不想要證書,您可以免費進行。不幸的是,這使用了 Matlab 而不是 python,但在某些練習中使用它並不是很大的努力。
https://www.coursera.org/learn/machine-learning2. 之後可以復習吳恩達的 coursera 深度學習課程:
https://www.coursera.org/specializations/deep-learning3. 第一步讓您對什麼是機器學習/深度學習以及重要的構建塊有一個很好的認識。我建議閱讀這本書,這很棒,如果您想要實用的方法,我認為最好:
https://www.amazon.com/Hands-Machine-Learning-Scikit-Learn-TensorFlow/dp/1492032646/ref=pd_lpo_14_t_0/137-5303079-3374657?_encoding=UTF8pd_rd_i=1492032646pd_rd_r=718670cd-3530-42a5-a3e5-aa4fc81c8fc1pd_rd_w=CXxXvpd_rd_wg=Mvz6dpf_rd_p=7b36d496-f366-4631-94d3-61b87b52511bpf_rd_r=R51S3793SP7WWP73MH89psc=1refRID=R51S3793SP7WWP73MH89如果你只買一本書,就買這本書。 (如果您想要一本更具理論性的書,我建議您這樣做:
https://www.deeplearningbook.org/這是免費的在線書籍。 4.嘗試做一些項目。到這個時候,您將有足夠的經驗來找到新的下一步。如果您負擔得起,我建議您參加 Udacity 的深度學習課程,並且由於 COVID 情況免費一個月:
https://www.udacity.com/course/deep-learning-nanodegree--nd101如果你能在一個月內完成,那麼你就有了
https://www.forex-pedia.com/attachments/1594143626.jpg在深度學習中,您可以選擇使用 Pytorch 或 Tensorflow。首先我使用了 Pytorch,但是自從 Tensorflow 2 出來後,我就沒有使用其他庫了。張量流:
https://www.tensorflow.org/learn當然還有其他好書和課程,但這些都是非常好的開始選擇。

费尔明布里塔尼
08-04-2022 22:39, 10:39 PM
我喜歡看到的交易水平,我認為這是我可以批准的第一個線程。
https://www.forex-pedia.com/attachments/1594143628.png