猿问

Panda DataFrame Row Items 如果比较没有返回正确的结果

我从 quandl 检索数据并将其加载到 Pandas DF 对象。


然后我根据“最后价格”计算 SMA 值(SMA21、SMA55)。将这些 SMA 值作为一列添加到我的 DF 对象中。


我遍历 DF 以捕捉买入信号。


我知道购买条件适用于某些日期,但我的代码没有打印出任何内容。我希望至少打印购买条件。


如下所示,您可以看到以下情况:


kitem['SMA21'] >= kitem['Last'] 

我的代码:


import requests 

import pandas as pd

import json


class URL_Params:


    def __init__ (self, endPoint, symboll, startDate, endDate, apiKey):

        self.endPoint = endPoint

        self.symboll = symboll

        self.startDate = startDate

        self.endDate = endDate

        self.apiKey = apiKey


    def createURL (self):

        return self.endPoint + self.symboll + '?start_date=' + self.startDate + '&end_date=' + self.endDate + '&api_key=' + self.apiKey


    def add_url(self, _url):

        self.url_list


my_portfolio = {'BTC':1.0, 'XRP':0, 'DSH':0, 'XMR':0, 'TotalBTCValue':1.0}


_endPoint = 'https://www.quandl.com/api/v3/datasets/BITFINEX/'

_symbolls = ['BTCEUR','XRPBTC','DSHBTC','IOTBTC','XMRBTC']

_startDate = '2017-01-01'

_endDate = '2019-03-01'

_apiKey = '' #needs to be set for quandl


my_data = {}

my_conns = {}

my_col_names =  ['Date', 'High', 'Low', 'Mid', 'Last', 'Bid', 'Ask', 'Volume']

orderbook = []




#create connection and load data for each pair/market.

#load them in a dict for later use

for idx_symbol in _symbolls:

    my_url_params = URL_Params(_endPoint,idx_symbol,_startDate,_endDate,_apiKey)

    response = requests.get(my_url_params.createURL())

    my_data[idx_symbol] = json.loads(response.text)


#Prepare Data

my_raw_data_df_xrpbtc = pd.DataFrame(my_data['XRPBTC']['dataset']['data'], columns= my_data['XRPBTC']['dataset']['column_names'])


#Set Index to Date Column and Sort

my_raw_data_df_xrpbtc['Date'] = pd.to_datetime(my_raw_data_df_xrpbtc['Date'])

my_raw_data_df_xrpbtc.index = my_raw_data_df_xrpbtc['Date']

my_raw_data_df_xrpbtc = my_raw_data_df_xrpbtc.sort_index()


我知道有很多行是正确的,但我的代码从未进入此代码路径,因此它不会打印出我期望的内容。


任何人都可以请帮助/评论可能有什么问题吗?


HUWWW
浏览 183回答 1
1回答

至尊宝的传说

原因是你的比较是错误的。的结果kitem['SMA21'] >= kitem['Last']将是numpy.bool_. 当您is用来将它与Truethis进行比较时会失败,因为它不是同一个对象。如果您将比较更改为==它会按预期工作:if (kitem['SMA21'] >= kitem['Last']) == True:
随时随地看视频慕课网APP

相关分类

Python
我要回答