溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么使用Python判斷牛熊

發(fā)布時間:2021-06-12 18:38:28 來源:億速云 閱讀:362 作者:小新 欄目:編程語言

小編給大家分享一下怎么使用Python判斷牛熊,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

創(chuàng)建牛市和熊市實力指數(shù)

上古雷指數(shù)MEAs數(shù)字購銷壓力量和兩個柱狀圖,其中一個就是所謂的多頭力量和其他的空頭力量的。直方圖是根據(jù)以下公式計算的:

怎么使用Python判斷牛熊

EMA變量指的是指數(shù)移動平均線,它是一種移動平均線,將更多的權(quán)重放在最近的值上。

可以使用以下功能來計算指數(shù)移動平均值:

def ma(Data, lookback, what, where):          for i in range(len(Data)):       try:         Data[i, where] = (Data[i - lookback + 1:i + 1, what].mean())                      except IndexError:                 pass     return Data def ema(Data, alpha, lookback, what, where):          # alpha is the smoothing factor     # window is the lookback period     # what is the column that needs to have its average calculated     # where is where to put the exponential moving average          alpha = alpha / (lookback + 1.0)     beta  = 1 - alpha          # First value is a simple SMA     Data = ma(Data, lookback, what, where)          # Calculating first EMA     Data[lookback + 1, where] = (Data[lookback + 1, what] * alpha) + (Data[lookback, where] * beta)             # Calculating the rest of EMA     for i in range(lookback + 2, len(Data)):       try:         Data[i, where] = (Data[i, what] * alpha) + (Data[i - 1, where] * beta)                      except IndexError:                 pass     return Data

怎么使用Python判斷牛熊

第一個面板中的EURUSD和50周期的牛熊指標

上面顯示了EURUSD每小時數(shù)據(jù),第二個面板中有50個周期的牛熊指標。在繼續(xù)執(zhí)行指標代碼之前,我們必須編寫兩個簡單的函數(shù):

def deleter(Data, index, times):          for i in range(1, times + 1):              Data = np.delete(Data, index, axis = 1)return Data     def jump(Data, jump):          Data = Data[jump:, ]          return Data

現(xiàn)在,我們準備好代碼了。記住要準備好OHLC陣列。

def bull_bear_power(Data, lookback, what, high, low, where):          # Adding the required columns     Data = adder(Data, 3)          # Calculating the exponential moving average     Data = ema(Data, 2, lookback, what, where)              # Calculating the Bull Power     Data[:, where + 1] = Data[:, high] - Data[:, where]          # Calculating the Bear Power     Data[:, where + 2] = Data[:, where] - Data[:, low]          # Deleting initial empty rows     Data = jump(Data, lookback)          return Data

怎么使用Python判斷牛熊

USDCHF位于第一個面板中,并且是50周期的牛熊指標。

要對上面的圖表進行編碼,我們可以使用以下函數(shù):

def indicator_plot_double_bull_bear(Data, name = '', name_ind = '', window = 250):   fig, ax = plt.subplots(2, figsize = (10, 5))   Chosen = Data[-window:, ]        for i in range(len(Chosen)):              ax[0].vlines(x = i, ymin = Chosen[i, 2], ymax = Chosen[i, 1], color = 'black', linewidth = 1)         ax[0].grid()   for i in range(len(Chosen)):              ax[1].vlines(x = i, ymin = 0, ymax = Chosen[i, 6], color = 'green', linewidth = 1)     ax[1].vlines(x = i, ymin = Chosen[i, 7], ymax = 0, color = 'red', linewidth = 1)                  ax[1].grid()    ax[1].axhline(y = 0, color = 'black', linewidth = 0.5, linestyle = '--') # The above code considers columns 6 and 7 to inhibit Bull Power and Bear Power respectively.

回測簡單策略

與任何適當?shù)难芯糠椒ㄒ粯?,其目的是對指標進行回測,并能夠自己查看是否值得將其作為我們先前存在的交易框架的補充。請注意,以下內(nèi)容僅對過去10年中僅對10個貨幣對的一個時間范圍進行回測。這可能不是該策略的最佳時限,但我們只是試圖找到一種“一刀切”的“幾乎適合所有人”的策略。

條件已簡化,我們將基于主觀障礙使用逆勢方法:

  • 當牛市力量指標達到-0.001并且前兩個值大于0.001時,做多(買入)。保持該位置,直到收到新信號(該位置已關(guān)閉)。

  • 每當熊市力量指標達到0.001(前兩個值均低于0.001)時,做空(賣出)。保持該位置,直到收到新信號(該位置已關(guān)閉)。

歐元兌美元的信號圖。

def signal(Data, bull_power, bear_power, buy, sell):        for i in range(len(Data)):     if Data[i, bull_power] < lower_barrier and Data[i - 1, bull_power] > lower_barrier :         Data[i, buy] = 1                  if Data[i, bear_power] < lower_barrier and Data[i - 1, bear_power] > lower_barrier:         Data[i, sell] = -1

怎么使用Python判斷牛熊

USDCHF上的信號圖

根據(jù)自2010年以來按小時數(shù)據(jù)散布的0.5個基點得出的結(jié)果,并且沒有采用風(fēng)險管理算法,得出的結(jié)果如下。

怎么使用Python判斷牛熊

效果表

怎么使用Python判斷牛熊

遵循該策略的股權(quán)曲線

顯然,該指標并沒有增加價值。嘗試優(yōu)化甚至更改與之相關(guān)的策略可能會更好。我們可能可以添加一些熊市條件來驗證看漲信號,并添加一些牛市條件來驗證看跌信號。

我們還可以相應(yīng)地調(diào)整回溯和障礙。我們可以做的最后一件事是將策略從逆勢轉(zhuǎn)變?yōu)樽裱厔荨?/p>

結(jié)論

記住要經(jīng)常做背部測試。即使我提供了指標的功能(而不只是吹牛說它是圣杯,并且它的功能是秘密),您也應(yīng)該始終相信其他人是錯誤的。我的指標和交易風(fēng)格對我有用,但可能并非對每個人都適用。我依靠以下規(guī)則:

市場價格在超過50%的時間內(nèi)無法預(yù)測或很難預(yù)測。但是市場反應(yīng)是可以預(yù)測的。

意思是,我們可以在一個區(qū)域周圍形成一個小區(qū)域,并可以確信地說市場價格將對該區(qū)域周圍的區(qū)域產(chǎn)生反應(yīng)。但是我們不能真正說它會從那里下跌4%,然后再次測試,并在第三次嘗試跌至103.85美元時突破。由于我們預(yù)測過度,因此誤差項呈指數(shù)級增長。

以上是“怎么使用Python判斷牛熊”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI