量化現貨合約跟單app軟體開發原始碼(可二開)

nice1022發表於2023-03-07

特徵構建

 #下面我們來定義一個用於分類的函式,系統開發I34-案例I633-演示53I9,給資料表增加三個欄位

#首先是開盤價減收盤價,命名為‘Open-Close’

#其次是高價減低價,命名為‘High-Low’


def classification_tc(df):

    df['Open-Close'] = df['open'] - df['close']

    df['High-Low'] = df['high'] - df['low']

    #在新增一個target欄位,如果次日收盤價高於當日收盤價,則標記為1,反之為0

    df['target'] = np.where(df['close'].shift(-1)>df['close'], 1, 0)

    #去掉有空值的行

    df = df.dropna()

    #將‘Open-Close’和‘High-Low’作為資料集的特徵

    X = df[['Open-Close', 'High-Low']]

    #將target賦值給y

    y = df['target']

    #將處理好的資料表以及X與y進行返回

    return(df,X,y)

#下面定義一個用於迴歸的函式

#特徵的新增和分類函式類似

#只不過target欄位改為次日收盤價減去當日收盤價


#下面定義一個用於迴歸的函式

#特徵的新增和分類函式類似

#只不過target欄位改為次日收盤價減去當日收盤價

def regression_tc(df):

    df['Open-Close'] = df['open'] - df['close']

    df['High-Low'] = df['high'] - df['low']

    df['target'] = df['close'].shift(-1) - df['close']

    df = df.dropna()

    X = df[['Open-Close', 'High-Low']]

    y = df['target']

    #將處理好的資料表以及X與y進行返回

    return(df,X,y)

#使用classification_tc函式生成資料集的特徵與目標


from sklearn.model_selection import train_test_split

df, X, y = classification_tc(zgpa)

#將資料集拆分為訓練集與驗證集

X_train, X_test, y_train, y_test =\

train_test_split(X, y, shuffle=False,train_size=0.8)

shuffle=False表示安裝順序進行劃分,因為股市具有時間性,只能用前面的資料訓練後面的資料。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70011332/viewspace-2938504/,如需轉載,請註明出處,否則將追究法律責任。

相關文章