您已經學會如何使用計時解決方案軟件的基礎知識: 您已經學會瞭如何下載價格歷史數據,您可以將其用於您的未來預測;您已經學會瞭如何將周期圖應用於價格圖表,並且您已經學會瞭如何根據天文週期創建預測。
現在您將了解另一個流行的模塊--神經網絡模塊。雖然神經網絡因其圖像處理和麵部識別能力而越來越受歡迎,但它們也證明了自己在分析金融市場和預測未來價格走勢方面非常有用。
什麼是神經網絡?
在使用該模塊之前,最好先討論一下神經網絡理論的基礎知識。
神經網絡解釋神經網絡是對現有過程進行建模的數學程序。神經網絡處理複雜數據並從中推導出特定模式,創建了一個能夠模仿原始過程的模型,從而對其未來結果做出結論。這個過程的一個例子是天氣預報。我們可以收集有關空氣的數據(如濕度、溫度、密度等),也可以假設今天的天氣很大程度上取決於昨天和前天的天氣狀況。這意味著我們期望今天的數據和以前的信息之間存在相同的模式。尋找這些模式的過程就是神經網絡的設計目的:它考慮了許多因素,並觀察這些因素如何影響結果。
下圖也說明了這個概念:
現在您將了解另一個流行的模塊--神經網絡模塊。雖然神經網絡因其圖像處理和麵部識別能力而越來越受歡迎,但它們也證明了自己在分析金融市場和預測未來價格走勢方面非常有用。
什麼是神經網絡?
在使用該模塊之前,最好先討論一下神經網絡理論的基礎知識。
神經網絡解釋神經網絡是對現有過程進行建模的數學程序。神經網絡處理複雜數據並從中推導出特定模式,創建了一個能夠模仿原始過程的模型,從而對其未來結果做出結論。這個過程的一個例子是天氣預報。我們可以收集有關空氣的數據(如濕度、溫度、密度等),也可以假設今天的天氣很大程度上取決於昨天和前天的天氣狀況。這意味著我們期望今天的數據和以前的信息之間存在相同的模式。尋找這些模式的過程就是神經網絡的設計目的:它考慮了許多因素,並觀察這些因素如何影響結果。
下圖也說明了這個概念:
每個神經網絡都有這樣的結構:輸入層、隱藏層和輸出層。輸入層(或輸入)是存儲要處理的變量的地方。這是我們輸入我們認為可能影響結果的任何因素的地方。輸出層(輸出)是我們存儲所有結果的地方。
最後,隱藏層是機器進行計算以找到輸入和輸出之間的任何相關性的層。
上面顯示的神經網絡 (NN) 稱為多層感知器。
回到天氣示例:我們將存儲有關天氣狀況的所有歷史數據。記錄的溫度、濕度、大氣壓力、風等——這些可以作為輸入。輸出是我們想知道的——明天的天氣(明天的溫度、濕度、壓力、風)。一旦我們啟動神經網絡的訓練過程,隱藏層將開始尋找輸入層和輸出層中定義的事件之間的任何模式。
僅將那些與我們正在建模的過程相關的因素用作輸入是非常重要的。記住 GIGO 規則:垃圾進 - 垃圾出。
隱藏層是神經網絡技術的核心;它們允許構建非線性模型。
(如果輸入和輸出之間是線性關係,我們就不需要神經網絡。)
線性模型和非線性模型有什麼區別?
線性模型是我們可以找到反映某些輸入事件如何影響輸出的權重的模型。例如,我們可以使用如下線性公式計算明天的溫度:
明天的溫度 = 0.9 * 今天的溫度 - 0.17* 昨天的溫度 + 0.012 * 今天的壓力等。
然而,實際上我們處理的是更複雜的關係。代替上面的公式,我們可能會得到這組條件:
1)如果今天的溫度和壓力很高 - 明天的溫度也很高;
2)如果今天溫度高,壓力低——明天溫度低;
3)否則明天的溫度與今天的溫度相同。
這裡溫度和壓力共同作用,我們不能將溫度和壓力的影響分開。在非線性模型中,壓力的影響取決於溫度。相反,在線性模型中,我們能夠隔離溫度和壓力效應,如上例所示(溫度效應為 0.9,壓力效應為 0.012)。
隱藏層允許揭示這些非線性模式。我們擁有的隱藏神經元和隱藏層越多,
NN 可以揭示的非線性模式就越複雜。
神經網絡的訓練是使用可用歷史數據(我們已經知道的信息)調整神經網絡的過程。回到我們的示例,NN 將今天的天氣狀況(我們知道)作為輸出,並考慮輸入(昨天、兩天前的天氣狀況等;我們也知道它們)。NN 進行自我校正以在“預測”(輸出)和已知天氣之間獲得更好的準確性。然後我們將昨天的天氣作為新的輸出,而輸入是兩天、三天等前的天氣 - 並再次更正 NN。因此,我們得到了這個 NN 的預測與真實天氣條件之間的最佳一致性。為了訓練時序解決方案神經網絡,我們應用了反向傳播算法。
隨著我們增加隱藏層的大小,我們能夠分析越來越多的輸入參數及其對輸出的影響。如果我們發現一個隱藏層不夠用,我們可以添加多個隱藏層。這種神經網絡被稱為深度學習神經網絡,而這正是谷歌和其他公司在他們的面部識別算法中使用的。然而,對於財務分析,不需要如此復雜的神經網絡。我們過去曾嘗試添加額外的隱藏層,發現額外的層並沒有大大改善我們的預測。
一旦訓練完成,我們就會獲得有關輸入和輸出之間關係的新知識。它是時序解決方案預測模型的基礎。
當然,神經網絡不僅可以(並且正在)用於尋找天氣模式。在 TS中我們使用神經網絡技術來比較特定模型的表現與金融工具的市場走勢。這使我們可以自由地提出自己的模型,然後根據歷史價格數據測試它們的性能。還有一些預設模型可用於神經網絡分析;本課將主要關注這些。那麼,讓我們開始吧!
打開神經網絡模塊,請單擊此處:
最後,隱藏層是機器進行計算以找到輸入和輸出之間的任何相關性的層。
上面顯示的神經網絡 (NN) 稱為多層感知器。
回到天氣示例:我們將存儲有關天氣狀況的所有歷史數據。記錄的溫度、濕度、大氣壓力、風等——這些可以作為輸入。輸出是我們想知道的——明天的天氣(明天的溫度、濕度、壓力、風)。一旦我們啟動神經網絡的訓練過程,隱藏層將開始尋找輸入層和輸出層中定義的事件之間的任何模式。
僅將那些與我們正在建模的過程相關的因素用作輸入是非常重要的。記住 GIGO 規則:垃圾進 - 垃圾出。
隱藏層是神經網絡技術的核心;它們允許構建非線性模型。
(如果輸入和輸出之間是線性關係,我們就不需要神經網絡。)
線性模型和非線性模型有什麼區別?
線性模型是我們可以找到反映某些輸入事件如何影響輸出的權重的模型。例如,我們可以使用如下線性公式計算明天的溫度:
明天的溫度 = 0.9 * 今天的溫度 - 0.17* 昨天的溫度 + 0.012 * 今天的壓力等。
然而,實際上我們處理的是更複雜的關係。代替上面的公式,我們可能會得到這組條件:
1)如果今天的溫度和壓力很高 - 明天的溫度也很高;
2)如果今天溫度高,壓力低——明天溫度低;
3)否則明天的溫度與今天的溫度相同。
這裡溫度和壓力共同作用,我們不能將溫度和壓力的影響分開。在非線性模型中,壓力的影響取決於溫度。相反,在線性模型中,我們能夠隔離溫度和壓力效應,如上例所示(溫度效應為 0.9,壓力效應為 0.012)。
隱藏層允許揭示這些非線性模式。我們擁有的隱藏神經元和隱藏層越多,
NN 可以揭示的非線性模式就越複雜。
神經網絡的訓練是使用可用歷史數據(我們已經知道的信息)調整神經網絡的過程。回到我們的示例,NN 將今天的天氣狀況(我們知道)作為輸出,並考慮輸入(昨天、兩天前的天氣狀況等;我們也知道它們)。NN 進行自我校正以在“預測”(輸出)和已知天氣之間獲得更好的準確性。然後我們將昨天的天氣作為新的輸出,而輸入是兩天、三天等前的天氣 - 並再次更正 NN。因此,我們得到了這個 NN 的預測與真實天氣條件之間的最佳一致性。為了訓練時序解決方案神經網絡,我們應用了反向傳播算法。
隨著我們增加隱藏層的大小,我們能夠分析越來越多的輸入參數及其對輸出的影響。如果我們發現一個隱藏層不夠用,我們可以添加多個隱藏層。這種神經網絡被稱為深度學習神經網絡,而這正是谷歌和其他公司在他們的面部識別算法中使用的。然而,對於財務分析,不需要如此復雜的神經網絡。我們過去曾嘗試添加額外的隱藏層,發現額外的層並沒有大大改善我們的預測。
一旦訓練完成,我們就會獲得有關輸入和輸出之間關係的新知識。它是時序解決方案預測模型的基礎。
當然,神經網絡不僅可以(並且正在)用於尋找天氣模式。在 TS中我們使用神經網絡技術來比較特定模型的表現與金融工具的市場走勢。這使我們可以自由地提出自己的模型,然後根據歷史價格數據測試它們的性能。還有一些預設模型可用於神經網絡分析;本課將主要關注這些。那麼,讓我們開始吧!
打開神經網絡模塊,請單擊此處:
神經網絡輸出
神經網絡窗口分為三個步驟。與大多數數學模型不同,第一步是選擇輸出。這就是神經網絡將模型與之進行比較的結果。要選擇輸出,請單擊下圖所示的按鈕:
例如,讓我們預測週期為 50 個柱的去趨勢振盪器:
為此,請從下拉菜單中選擇“相對價格振盪器”。在選擇下方,設置相關的各種參數。在本例中,確保 MA2 和 MA3 都設置為 50。
這稱為 RPO50 - 週期為 50 個柱的相對價格震盪指標(這與百分比價格震盪指標相同)。這是相同的數據集,只是沒有顯示趨勢(我們已經擺脫了任何穩定的向上或向下移動)。去趨勢是必要的,因為神經網絡更適用於去趨勢指標(它尋找金融工具的價格變動與構成模型的事物之間的真實聯繫;趨勢的存在會混淆這個搜索)。
之後,單擊“嘗試”按鈕。這將在窗口的左下方預覽去趨勢的數據。單擊“確定”將輸出加載到神經網絡模塊中。
神經網絡輸入
下一步是定義輸入(可能對輸出產生一些影響的因素)。它們形成了一個模型,將針對輸出進行測試。輸入用於訓練神經網絡並找到模型與上面定義的輸出之間的任何相關性。
單擊主 Criteria 按鈕以從頭開始創建模型。或者,您可以應用在 ULE 模塊中創建的模型(這些應保存為 *.hyp 文件),或者您可以通過單擊“+”按鈕從預製模型中進行選擇。
這稱為 RPO50 - 週期為 50 個柱的相對價格震盪指標(這與百分比價格震盪指標相同)。這是相同的數據集,只是沒有顯示趨勢(我們已經擺脫了任何穩定的向上或向下移動)。去趨勢是必要的,因為神經網絡更適用於去趨勢指標(它尋找金融工具的價格變動與構成模型的事物之間的真實聯繫;趨勢的存在會混淆這個搜索)。
之後,單擊“嘗試”按鈕。這將在窗口的左下方預覽去趨勢的數據。單擊“確定”將輸出加載到神經網絡模塊中。
神經網絡輸入
下一步是定義輸入(可能對輸出產生一些影響的因素)。它們形成了一個模型,將針對輸出進行測試。輸入用於訓練神經網絡並找到模型與上面定義的輸出之間的任何相關性。
單擊主 Criteria 按鈕以從頭開始創建模型。或者,您可以應用在 ULE 模塊中創建的模型(這些應保存為 *.hyp 文件),或者您可以通過單擊“+”按鈕從預製模型中進行選擇。
在上面的例子中,托勒密相位用於預測 RPO50 與 15 度的球體。
訓練神經網絡
一旦定義了輸入和輸出,神經網絡就該學習了。在學習過程中,神經網絡會尋找輸入和輸出之間的任何關係。這發生在訓練間隔(位於 LBC 之前)。要開始培訓,請單擊此處:
一旦定義了輸入和輸出,神經網絡就該學習了。在學習過程中,神經網絡會尋找輸入和輸出之間的任何關係。這發生在訓練間隔(位於 LBC 之前)。要開始培訓,請單擊此處:
幾秒鐘後,主屏幕將如下所示:
這里紅色曲線是 NN 學習/訓練的產物,而黑色線代表 RPO50。紅色曲線正在改變,試圖找到使其適合價格振盪器的模型參數。這是我們的目標。這個過程需要一些時間。您可能想查看相關係數,但不建議這樣做。我們相信視覺評估效果更好;繼續 NN 訓練,直到您真正看到紅色曲線在訓練區間(LBC 之前的區域)內很好地反映了所選價格振盪器。
如果您發現紅色曲線與價格振盪器的匹配度令人滿意,您可以停止訓練過程(請參閱下面的詳細信息)。NN 訓練的時間越長,過度訓練的機會就越大。(如果太長,NN 開始產生噪聲而不是有效的投影線。您將觀察到訓練間隔幾乎完美的擬合,這是設計良好的神經網絡的證據,並且性能非常差現實生活中的投影線。)
神經網絡產生的紅色曲線延伸到 LBC 之外。這就是我們得到投影線的方式。一旦你停止訓練過程,這條線就不會改變。那裡沒有進行任何計算,您可以嚴格地看到在藍色區間(LBC 之前)中通過訓練創建的投影線以及 LBC 之後的相對價格震盪指標。程序不使用 LBC 後的數據來調整投影線。我們建議在 LBC 之後保留一小部分數據,以評估投影線的有用性。
如果您想查看此模型生成的投影線在價格歷史圖表的任何部分的表現如何,請單擊放大光標按鈕,然後選擇圖表上的適當區域進行檢查。以
如果您發現紅色曲線與價格振盪器的匹配度令人滿意,您可以停止訓練過程(請參閱下面的詳細信息)。NN 訓練的時間越長,過度訓練的機會就越大。(如果太長,NN 開始產生噪聲而不是有效的投影線。您將觀察到訓練間隔幾乎完美的擬合,這是設計良好的神經網絡的證據,並且性能非常差現實生活中的投影線。)
神經網絡產生的紅色曲線延伸到 LBC 之外。這就是我們得到投影線的方式。一旦你停止訓練過程,這條線就不會改變。那裡沒有進行任何計算,您可以嚴格地看到在藍色區間(LBC 之前)中通過訓練創建的投影線以及 LBC 之後的相對價格震盪指標。程序不使用 LBC 後的數據來調整投影線。我們建議在 LBC 之後保留一小部分數據,以評估投影線的有用性。
如果您想查看此模型生成的投影線在價格歷史圖表的任何部分的表現如何,請單擊放大光標按鈕,然後選擇圖表上的適當區域進行檢查。以
該程序顯示為所選間隔計算的相關性。當您選擇不同的間隔時,程序會重新計算此信息面板,因此您可以看到投影線如何適合不同間隔的價格。下面的示例顯示了選定的價格區間 1999-2001 以及我們的神經網絡如何在此區間上工作:
或者您可以在 LBC 之後的某個其他時間間隔觀察相同的神經網絡是如何工作的;讓它成為 2017-2018 年:
瀏覽不同時間間隔的神經網絡結果可以讓您了解它是如何工作的。問題來了:什麼時候停止神經網絡訓練?
何時停止神經網絡訓練關於這個對像沒有特定的規則。如果你訓練的神經網絡不夠,它不會從價格歷史中收集到適合構建投影線的信息。另一方面,如果你訓練神經網絡的時間過長,你肯定會得到過度訓練(記憶)的效果(當神經網絡只是簡單地記住價格歷史而不是從價格中收集有意義的信息時,就會發生這種情況)。
我們推薦三個規則:
規則 #1:當投影線在訓練過程中變化不大時,您可以停止神經網絡訓練。投影線可能會發生變化,但變化不應劇烈。
規則 #2:你應該在 10-30 個 epoch 內訓練神經網絡。
訓練時期是神經網絡科學中一個非常重要的定義。假設我們使用 1000 個價格柱訓練神經網絡;對於 EOD 圖表,這通常是大約四年的價格歷史。一個訓練步驟是當程序從這 1000 個價格條中隨機抽取一個價格條來糾正神經網絡的權重。使程序達到 1000 個訓練步驟,達到所有 1000 個價格柱;這是一個時代。我們可以說一個時期是達到所有可用價格歷史記錄的訓練步驟量。
如果我們在訓練間隔上有 10K 條,則程序需要十倍以上,即 10K 步才能達到所有可用的 10K 條。換句話說,在一個訓練時期內,一旦所有可用於訓練價格歷史點的神經網絡命中。當你訓練你的神經網絡時,面板的顏色會發生變化;
石灰色表示還沒有足夠的訓練步驟:亮橙色意味著神經網絡“成熟”(訓練有素):
何時停止神經網絡訓練關於這個對像沒有特定的規則。如果你訓練的神經網絡不夠,它不會從價格歷史中收集到適合構建投影線的信息。另一方面,如果你訓練神經網絡的時間過長,你肯定會得到過度訓練(記憶)的效果(當神經網絡只是簡單地記住價格歷史而不是從價格中收集有意義的信息時,就會發生這種情況)。
我們推薦三個規則:
規則 #1:當投影線在訓練過程中變化不大時,您可以停止神經網絡訓練。投影線可能會發生變化,但變化不應劇烈。
規則 #2:你應該在 10-30 個 epoch 內訓練神經網絡。
訓練時期是神經網絡科學中一個非常重要的定義。假設我們使用 1000 個價格柱訓練神經網絡;對於 EOD 圖表,這通常是大約四年的價格歷史。一個訓練步驟是當程序從這 1000 個價格條中隨機抽取一個價格條來糾正神經網絡的權重。使程序達到 1000 個訓練步驟,達到所有 1000 個價格柱;這是一個時代。我們可以說一個時期是達到所有可用價格歷史記錄的訓練步驟量。
如果我們在訓練間隔上有 10K 條,則程序需要十倍以上,即 10K 步才能達到所有可用的 10K 條。換句話說,在一個訓練時期內,一旦所有可用於訓練價格歷史點的神經網絡命中。當你訓練你的神經網絡時,面板的顏色會發生變化;
石灰色表示還沒有足夠的訓練步驟:亮橙色意味著神經網絡“成熟”(訓練有素):
規則#3:為了避免過度訓練,不要訓練神經網絡太久。
當您確定神經網絡生成的投影線沒問題(它在不同的時間間隔上非常適合價格),單擊“停止”按鈕停止訓練過程:
當您確定神經網絡生成的投影線沒問題(它在不同的時間間隔上非常適合價格),單擊“停止”按鈕停止訓練過程:
神經網絡創建的投影線會自動顯示在主窗口中。如果您不想看到它,請單擊以下按鈕之一:
主窗口下部的 NN 結果面板將消失。如果您不想看到 NN 結果面板但仍想看到投影線,
請單擊此“主窗口”按鈕:
請單擊此“主窗口”按鈕:
自動停止
如果您經常使用同一種金融工具並對其非常了解,則可能需要使用自動停止功能。你可以在這裡設置:
如果您經常使用同一種金融工具並對其非常了解,則可能需要使用自動停止功能。你可以在這裡設置:
在此示例中,當價格與神經網絡創建的投影線之間的相關性至少達到 15% 時,神經網絡停止訓練。
您可以定義更複雜的自動停止條件:
您可以定義更複雜的自動停止條件:
這裡,當神經網絡的投影線與價格的相關性至少達到 15% 或線性投影線與價格的相關性至少達到 36% 時,
神經網絡停止訓練。另一個例子涉及訓練時期的數量:
神經網絡停止訓練。另一個例子涉及訓練時期的數量:
這里程序在相關性達到 15% 或訓練 epoch 數量達到 10 時停止神經網絡訓練。
請記住,輸入 15% 表示我們表示相關性,而輸入 10 表示訓練 epoch 的數量。
請記住,輸入 15% 表示我們表示相關性,而輸入 10 表示訓練 epoch 的數量。
在TS的世界您也可以輕鬆生成自己的人工智能交易模型。