量化交易4:python程序帮你自动下单
量化交易的最终需要电脑自动下单,但因为安全性问题,券商通常不会提供交易接口。
怎么办?python的pyautogui库来解决!
原理很简单,先看懂sell_stock()卖出股票函数 buy_stock()买入股票函数。
涉及到pyautogui的三个基本功能:
1,准备工作: 导入库 和 设定时间变量 和 开启临时退出机制
2,键盘操作:字符输入 typewrite() 和 功能按键 press()
3,鼠标操作:移动鼠标 moveto() 和 点击鼠标 click()
import pyautogui as auto
auto.PAUSE = 1.0
durtime=0.001
auto.FAILSAFE = True #鼠标到屏幕左上角可以随时退出程序!!!
def sell_stock(stockcode, sellingprice, sellingqty):
time.sleep(5)
# left click "Sell"
auto.moveTo(275, 50, duration=durtime)
auto.click(button='left')
# auto.typewrite(['000835', '4.60', 'tab', '2000', 'tab', 'space'], 1)
auto.typewrite(stockcode, durtime)
auto.typewrite(sellingprice, durtime)
auto.press('tab')
auto.typewrite(sellingqty, durtime)
auto.press('tab')
auto.press('space')
auto.press('enter')
time.sleep(2)
auto.press('enter')
# left click "trade already"
auto.moveTo(350, 50, duration=durtime)
auto.click(button='left')
def buy_stock(stockcode, buyprice, buyqty):
time.sleep(5)
# left click "Sell"
auto.moveTo(235, 50, duration=durtime)
auto.click(button='left')
# auto.typewrite(['000835', '4.60', 'tab', '2000', 'tab', 'space'], 1)
auto.typewrite(stockcode, durtime)
auto.typewrite(buyprice, durtime)
auto.press('tab')
auto.typewrite(buyqty, durtime)
#auto.press('enter')
auto.press('enter')
auto.press('enter')
time.sleep(2)
auto.press('enter')
# left click "trade already"
auto.moveTo(350, 50, duration=durtime)
auto.click(button='left')
移动鼠标有两种方法:
(1)绝对移动,按你给定的坐标移动,技巧是屏幕截图然后在win自带的“画笔”中查看你要点击位置的绝对坐标。
(2)相对移动更聪明,能在屏幕上搜索特定形状的“图片”,代码如下:
pwr_location = auto.locateOnScreen('pwr.png', grayscale=False)
movemouse_and_click(pwr_location.left-10, pwr_location.top+10, duration=durtime)#点击三个数据选项
其中"pwr.png"就是提前截图并存放在程序运行目录下的图片。
使用pyautogui,也可以用电脑自动做很多繁琐的重复工作,如:导入导出大智慧的自定义数据,收盘后自动下载数据,自动做条件选股......
任何量化交易程序,都是为特定的“操作策略”服务的;
没有成熟完善的“操作策略”,痴迷量化交易就是给自己挖坑,希望你能听得懂。
ps: 以上解决方案,如果帮到你,收藏加“关注”