Zerodha风筝连接api的Python代码

2024-06-11 04:39:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用kite api来自动执行买卖等交易,我正在从csv文件中提取数据并将它们放入变量中。 这是excel文件中的快照。enter image description here 这是我的密码。。在

import csv
from kiteconnect import KiteConnect
import urllib.request
import webbrowser
csvfile = open('../desktop/venkat.csv','r')
csvFileArray = []
for row in csv.reader(csvfile, delimiter = '\t'):
        csvFileArray.append(row)

header =csvFileArray[0][0].split(',')

kite = KiteConnect(api_key="pgxi3s1pltmrjlkw")
#print(kite.login_url())
data = kite.request_access_token("lqa7c5i65srjnb2wgnfdzoy8dhal4wx0",secret="i345wx7pto3yx2gtb999q531qb2ffkzf")
kite.set_access_token(data["access_token"])
#print(kite.access_token)
for each in csvFileArray[1:]:
        data= each[0].split(',')
        for i in range(len(data)):
            if i==0:
                    exchange=str(data[i])
            elif i==1:
                    tradingsymbol=str(data[i])
            elif i==2:  
                    transaction_type=str(data[i])
            elif i==3:
                    quantity=int(data[i])
            elif i==4:
                    price=int(data[i])
            elif i==5:  
                    product=str(data[i])
            elif i==6:    
                    order_type=str(data[i])
            elif i==7:
                    validity=str(data[i])
            elif i==8:  
                    squareoff_value=int(data[i])
            elif i==9:  
                    stoploss_value=int(data[i])
            elif i==10:  
                    trailing_stoploss=int(data[i])
            else:  
                    variety=str(data[i]) # this is the additional line
        #print(exchange)
        disclosed_quantity=None
        trigger_price=None
        tag=''
        try:
            order_id = kite.order_place(exchange,tradingsymbol,transaction_type,quantity,price,product,order_type,validity,squareoff_value,stoploss_value,trailing_stoploss,variety,disclosed_quantity,trigger_price,tag)
            #print(exchange, tradingsymbol, transaction_type, quantity, price, product, order_type, validity, disclosed_quantity, trigger_price, squareoff_value, stoploss_value, trailing_stoploss, variety, tag)
            #print("Order Placed")
            #print("Order placed. ID is", order_id)
        except Exception as e:
            print("Order placement failed", e.message)

这是一个我无法解决的错误。这是终端的截图。在

enter image description here

这也是文档中的代码。。在

^{pr2}$

调用order_place()函数时出错。 请看一下,帮我一下。谢谢!在


Tags: csvimportdatavaluetypeorderpricequantity
1条回答
网友
1楼 · 发布于 2024-06-11 04:39:11

调用函数的方式有错误。把api_keyapi_secretrequest_token的帖子发到这里让大家看,这不是个好主意。在

文件是这样写的:

def order_place(self, exchange, tradingsymbol, transaction_type, quantity, price=None, product=None, order_type=None, validity=None, disclosed_quantity=None, trigger_price=None, squareoff_value=None, stoploss_value=None, trailing_stoploss=None, variety='regular', tag='') 

以下是您如何调用函数:

^{2}$

函数按顺序获取值。你在最后通过了披露数量和触发价格,它们应该在有效期后通过。在

试着使用这个:

order_id = kite.order_place(exchange,tradingsymbol,transaction_type,quantity,price,product,order_type,validity,disclosed_quantity,trigger_price,squareoff_value,stoploss_value,trailing_stoploss,variety,tag)

我不确定这是否能在没有复制错误和测试已更正的函数调用的方法的情况下修复错误。在

现在kiteconnect API更新到版本3。所以现在下单的方式略有不同。在

相关问题 更多 >