如何将数据追加到列表

时间:2020-05-19 10:22:48

标签: python list dataframe append

我试图通过使用stockstats macdh值来获得买入信号。我可以得到macdh值,当我打印它们时,我可以看到值。但是当我使用获取信号的状态时,我的购买信号列表为空。 macdh值类型可能有问题。如何填写购买信号清单?

import pandas as pd
import requests
import json
from stockstats import StockDataFrame as Sdf



class TradingModel:
    def __init__(self, symbol):
        self.symbol = symbol
        self.df = self.getData

    @property
    def getData(self):
        base = 'https://api.binance.com'
        endpoint = '/api/v3/klines'
        params = '?&symbol='+self.symbol+'&interval=4h'

        url = base + endpoint + params


        Data = requests.get(url)
        dictionary = Data.json()


        df = pd.DataFrame.from_dict(dictionary)
        df = df.drop(range(6, 12), axis=1)


        # rename columns and stockstasts
        col_names = ['time', 'open', 'high', 'low', 'close', 'volume']
        df.columns = col_names
        stock = Sdf.retype(df)

        for col in col_names:
            df[col]=df[col].astype(float)

        df['macdh']=stock['macdh']

        return  (df)

    def strategy(self):
        df = self.df
        buy_signals=[]
        for i in range(1, len(df['close'])):
                if df['macdh'].iloc[-1]>0 and df['macdh'].iloc[-2]<0:
                    buy_signals.append([df['time'][i], df['low'][i]])
                print(buy_signals)
def Main():
    symbol = "BTCUSDT"
    model = TradingModel(symbol)
    model.strategy()
if __name__ == '__main__':
    Main()





1 个答案:

答案 0 :(得分:0)

在运行您的代码时,我发现df['macdh'].iloc[-1]df['macdh'].iloc[-2]的值在所有情况下都为负,因此条件if df['macdh'].iloc[-1]>0 and df['macdh'].iloc[-2]<0从不满足,但是附加了列表的代码是正确的,只要满足条件就可以使用。

希望有帮助!