中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

CUSUM在擇時交易中的應用方法是什么

發布時間:2022-01-12 22:23:47 來源:億速云 閱讀:195 作者:iii 欄目:編程語言

這篇文章主要講解了“CUSUM在擇時交易中的應用方法是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“CUSUM在擇時交易中的應用方法是什么”吧!

原理描述:CUSUM控制圖的設計思想是對信息加以累積,將過程的小偏移累加起來,達到放大的結果,從而提高檢驗小偏移的靈敏度。CUSUM作為一個統計量,其由來具有嚴格的數學推理,總的來說,是一個變點假設檢驗通過極大似然法推導得到的統計量。

具體推導不研究了,直接看具體引用

CUSUM在擇時交易中的應用方法是什么

CUSUM在擇時交易中的應用方法是什么

形成一個對數收益率的近似正太分布。如上圖,這里有一個上下允偏量k,這里設為k = 0.02, 先說上閾值, 那么時序隊列里面,下一個時段的對數收益率大于0.02,yi則差值為正;如果差值累計yi的和Ci大于h,比如h為0.5。則觸發向上趨勢。

其實就是如果多次超過允偏量收益率發生,或者一次非常大的收益率情況發生,使得c值大于h 就會觸發向上趨勢判斷。如果只是偶爾一次大于允偏量,那么下一次小于k (0.02)時候,差值為負值,和值Ci就變小了,這里Max的作用就是保證C為正,不會因為多次低于k值為負值。向下趨勢判斷也是同理。

代碼如下,這里調用ta-lib庫來計算均值和標準差,速度比起用numpy還快一些。用標準差做為允偏量k;5倍標準差為h 閾值。

# encoding: UTF-8
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import talib
def detect_via_cusum_lg(ts, istart=30, threshold_times=5):
    """
    detect a time series using  cusum algorithm
    :param ts: the time series to be detected
    :param istart: the data from index 0 to index istart will be used as cold startup data to train
    :param threshold_times: the times for setting threshold
    :return:
    """
    S_h = 0
    S_l = 0
    S_list = np.zeros(istart)
    meanArray = talib.SMA(ts,timeperiod = istart)
    stdArray = talib.STDDEV(np.log(ts/meanArray),timeperiod = istart)
    for i in range(istart+1, len(ts)-1):
        tslog = np.log(ts[i] / meanArray[i - 1])
        S_h_ = max(0, S_h + tslog - stdArray[i-1])
        S_l_ = min(0, S_l + tslog + stdArray[i-1])
        if S_h_> threshold_times * stdArray[i-1]:
            S_list = np.append(S_list,1)
            S_h_ = 0
        elif abs(S_l_)> threshold_times *  stdArray[i-1]:
            S_list = np.append(S_list, -1)
            S_l_ = 0
        else:
            S_list = np.append(S_list, 0)
        S_h = S_h_
        S_l = S_l_
    return S_list
#數據導入
df5min =  pd.read_csv("bar5rb8888.csv")
dt0 = np.array(df5min["close"])
listup,listdown = [],[]
s_list = detect_via_cusum_lg(dt0,istart=30, threshold_times=5)
for i in range(0,len(s_list)):
    if s_list[i] == 1:
        listup.append(i)
    elif s_list[i] == -1 :
        listdown.append(i)
plt.subplot(2,1,1)
plt.plot(dt0, color='y', lw=2.)
plt.plot(dt0, '^', markersize=5, color='r', label='UP signal', markevery=listup)
plt.plot(dt0, 'v', markersize=5, color='g', label='DOWN signal', markevery=listdown)
plt.legend()
plt.subplot(2,1,2)
plt.title('s_list')
plt.plot(s_list,'r-')
plt.show()

感謝各位的閱讀,以上就是“CUSUM在擇時交易中的應用方法是什么”的內容了,經過本文的學習后,相信大家對CUSUM在擇時交易中的應用方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

九江市| 铜陵市| 洪湖市| 阳朔县| 枣强县| 隆化县| 车险| 甘洛县| 达孜县| 河源市| 青浦区| 岢岚县| 清远市| 屯留县| 曲水县| 珲春市| 昆山市| 菏泽市| 会理县| 喜德县| 噶尔县| 苗栗市| 通州区| 隆林| 苏尼特左旗| 蓬莱市| 将乐县| 台山市| 万年县| 灵宝市| 佳木斯市| 武安市| 皮山县| 桃江县| 宜兴市| 德令哈市| 双桥区| 永年县| 荣昌县| 榆社县| 泸西县|