股票自动化交易

股票自动化交易

在这里插入图片描述

代码如下:

from Dc_api import DFCFTrader
from Ths import THSTrader
import time
from xuangu import *

Trade = DFCFTrader()  #东方财富
THSTrade = THSTrader('123456','******','A123456','00000000')    


def 东方财富风控(止损=-500,止盈=1500):
    position = Trade.持仓()
    for i in position["data"]:
        print("证券代码",i["stkCode"])
        print("证券名称",i["stkName"])
        print("证券余额",i["drsl"])
        print("可用余额",i["drsl"])
        print("冻结数量",i["drsl"])
        print("股票实际",i["drsl"])
        print("成本价",i["cbj"])
        print("市价",i["newPrc"])
        print("市值",i["mktVal"])
        print("浮动盈亏",i["fdyk"])
        print("盈亏比例",i["rateMax"])
        if float(i["fdyk"]) <= float(止损) or float(i["fdyk"]) > float(止盈):
            平仓 = Trade.sell(stock_code=i["stkCode"],price=i["newPrc"],amount=i["drsl"])
            print(平仓)   
def 同花顺风控(止损=-500,止盈=1500):
    position1 = THSTrade.get_position1()    # 全部持仓
    # print(position1)
    for position in position1:
        print("编号",position["d_3001"])
        print("证券代码",position["d_2102"])
        print("证券名称",position["d_2103"])
        print("证券余额",position["d_2117"])
        print("可用余额",position["d_2121"])
        print("冻结数量",position["d_2118"])
        print("股票实际",position["d_2164"])
        print("成本价",position["d_2122"])
        print("市价",position["d_2124"])
        print("市值",position["d_2125"])
        print("浮动盈亏",position["d_2147"])
        print("盈亏比例",position["d_3616"])
        print("币种",position["d_2175"])
        print("交易市场",position["d_2108"])
        # # print("股东账户",position["d_2106"])
        print("="*30)
        if float(position["d_2147"]) <= float(止损) or float(position["d_2147"]) > float(止盈):
            stock = THSTrade.sell( stock_code=position["d_2102"], price=position["d_2124"], amount=position["d_2121"], volume=0, entrust_prop='limit')
            print("平仓")

def 撤单():
    qryChedan = Trade.撤单()   #东方财富
    qryChedan = THSTrade.撤单()    #同花顺
def 选股():
    #qes = 'macd金叉,dea>0,量比>2,涨幅<3%'
    #qes = '60分钟macd金叉,涨幅<3%,量比>2'
    #qes = '(成交额/总市值)>5%,成交额>5亿,换手率>5%,量比>2,kdj金叉'
    #qes = '连续三天量比>2,成交额>10亿,10天涨幅<20%'
    #qes = 'rsi(rsi24值)上穿30,换手率大于3%,涨幅<3%,量比>2'
    #qes = '周平均换手率>30%,上市天数>200天'
    #qes = '基金重仓,基金连续6个季度增仓,上市天数大于500,rsi金叉'
    # qes = '成交额>5亿,涨幅<3%,量比>2'
    qes = '周rsi上穿30,涨幅<3%,量比>2'
    # qes = "rsi上穿70,量比大于2,dea大于0,股价大于60均线,换手率大于3%,涨幅小于5%"
    #qes = "kdj金叉,量比大于3,dea大于0,股价大于60均线,换手率大于3%,涨幅小于5%"
    #qes = "macd上移,量比大于2,dea大于0,股价大于60均线,换手率大于5%,涨幅小于5%"
    gupiao = get_stock(qes)
    for i in gupiao:
        print(i["代码"][:-3])
        # print(i["价格"])      
        # 开仓 = Trade.buy(stock_code=i["代码"][:-3],price=i["价格"],amount=300)      #东方财富
        #print(开仓)
        # 开仓 = THSTrade.buy(stock_code=i["代码"][:-3],price=i["价格"],amount=500)      #同花顺
        # print(开仓)        
def 定时():
    while True:
        time.sleep(60)
        _time = time.strftime('%H%M%S')
        if _time == '100100':
            撤单()
            东方财富风控()
            同花顺风控()
            选股()
        撤单()
        东方财富风控()
        同花顺风控()         

if __name__ == '__main__':
    定时()

关注微信公众号: Ctp接口量化

猜你喜欢

转载自blog.csdn.net/qq_20575249/article/details/109432947