当前位置: 首页 > news >正文

QMT学习课程Day1

我们先从交易的最基础,如何进行下单,最为简答的下单,帮助大家建立自信心。

首先导入相关函数:

#encoding:gbk
import pandas as pd
import numpy as np
import datetime
import pandas as pd
import numpy as np
import talib
import time 
import math
"""
示例说明:双均线实盘策略,通过计算快慢双均线,在金叉时买入,死叉时做卖出
"""class a():pass
A = a() #创建空的类的实例 用来保存委托状态 
#ContextInfo对象在盘中每次handlebar调用前都会被深拷贝, 如果调用handlebar的分笔不是k线最后分笔 ContextInfo会被回退到深拷贝的内容 所以ContextInfo不能用来记录快速交易的信号def init(C):C.etf_pool = ['518880.SH', #黄金ETF(大宗商品)'513100.SH', #纳指100(海外资产)'159915.SZ', #创业板100(成长股,科技股,中小盘)'510180.SH', #上证180(价值股,蓝筹股,中大盘)]A.acct= '39130129'#账号为模型交易界面选择账号A.acct_type= 'STOCK'#账号类型为模型交易界面选择账号C.account= '39130129'#账号为模型交易界面选择账号C.acctount_type= 'STOCK'#账号类型为模型交易界面选择账号A.amount = 10000 #单笔买入金额 触发买入信号后买入指定金额A.waiting_list = [] #未查到委托列表 存在未查到委托情况暂停后续报单 防止超单A.buy_code = 23 if A.acct_type == 'STOCK' else 33 #买卖代码 区分股票 与 两融账号A.sell_code = 24 if A.acct_type == 'STOCK' else 34#C.run_time("run_buy_func","15nSecond","2024-07-25 14:45:00")C.run_time("run_buy_func","1nDay","2024-07-25 14:47:00")#指定时间交易C.run_time("reverse_repurchase_of_treasury_bonds_1","1nDay","2024-07-25 14:57:00")C.run_time("trader_info","3nSecond","2024-07-25 13:20:00")

代码解析:

C.run_time("run_buy_func","15nSecond","2024-07-25 14:45:00")

效果图:

可以让买入命令在指定时间交易

C.run_time("run_buy_func","1nDay","2024-07-25 14:47:00")#指定时间交易

可以让买入命令每过15秒运行

分析买入函数:

def run_buy_func(C):print("开始交易")#跳过历史k线if not C.is_last_bar():returnnow = datetime.datetime.now()now_time = now.strftime('%H%M%S')#跳过非交易时间if now_time < '093000' or now_time > "150000":returnaccount = get_trade_detail_data(A.acct, A.acct_type, 'account')if len(account)==0:print(f'账号{A.acct} 未登录 请检查')returnaccount = account[0]available_cash = int(account.m_dAvailable)#如果有未查到委托 查询委托if A.waiting_list:found_list = []orders = get_trade_detail_data(A.acct, A.acct_type, 'order')for order in orders:if order.m_strRemark in A.waiting_list:found_list.append(order.m_strRemark)A.waiting_list = [i for i in A.waiting_list if i not in found_list]if A.waiting_list:print(f"当前有未查到委托 {A.waiting_list} 暂停后续报单")returnholdings = get_trade_detail_data(A.acct, A.acct_type, 'position')holdings = {i.m_strInstrumentID + '.' + i.m_strExchangeID : i.m_nCanUseVolume for i in holdings}#获取行情数据vol = 100for i in C.etf_pool:passorder(A.buy_code, 1101, A.acct, i, 14, -1, vol, '双均线实盘', 1 ,'' , C)#print(msg)A.waiting_list.append('')

卖出函数解析:

def run_sell_func(C):#跳过历史k线if not C.is_last_bar():returnnow = datetime.datetime.now()now_time = now.strftime('%H%M%S')#跳过非交易时间if now_time < '093000' or now_time > "150000":returnaccount = get_trade_detail_data(A.acct, A.acct_type, 'account')if len(account)==0:print(f'账号{A.acct} 未登录 请检查')returnaccount = account[0]available_cash = int(account.m_dAvailable)#如果有未查到委托 查询委托if A.waiting_list:found_list = []orders = get_trade_detail_data(A.acct, A.acct_type, 'order')for order in orders:if order.m_strRemark in A.waiting_list:found_list.append(order.m_strRemark)A.waiting_list = [i for i in A.waiting_list if i not in found_list]if A.waiting_list:print(f"当前有未查到委托 {A.waiting_list} 暂停后续报单")#returnholdings = get_trade_detail_data(A.acct, A.acct_type, 'position')holdings = {i.m_strInstrumentID + '.' + i.m_strExchangeID : i.m_nCanUseVolume for i in holdings}#获取行情数据#vol = 100for i in C.etf_pool:passorder(A.sell_code, 1101, A.acct, i, 14, -1, holdings.get(i,0), '双均线实盘', 1 ,'' , C)#print(msg)A.waiting_list.append('')

总结:

通过本文的学习,相信你已经掌握如何在QMT学会使用买入卖出函数以及如何定时周期执行。希望本文可以帮助你!

相关文章:

  • 针对密码学的 EM 侧信道攻击
  • OpenCV 图形API(62)特征检测-----在图像中查找最显著的角点函数goodFeaturesToTrack()
  • day36图像处理OpenCV
  • mfc学习(一)
  • 处理任务“无需等待”:集成RabbitMQ实现异步通信与系统解耦
  • Python 一等函数(函数内省)
  • Redis安装及入门应用
  • Docker从0-1搭建个人云盘(支持Android iOS PC)
  • 以运营为核心的智能劳动力管理系统,破解连锁零售、制造业排班难题
  • linux centOS7.9 No package docker-ce available
  • 30天通过软考高项-第二天
  • web 分页查询 分页插件 批量删除
  • 金融系统上云之路:云原生后端架构在金融行业的演化与实践
  • 架构-计算机网络
  • 基于STM32的汽车主门电动窗开关系统设计方案
  • 数据结构与算法实战:从理论到落地的深度探索
  • rd.debug启动参数(救援模式下)
  • 机器人操作中的生成式 AI:综述(上)
  • 【缓存与数据库结合方案】伪从技术 vs 直接同步/MQ方案的深度对比
  • Java 运算符:深度解析
  • 2025全球智慧城市指数排名揭晓,阿布扎比跃升至第五位
  • “茉上茶田”傍大牌诱导加盟续:违规从事特许经营被罚没670余万元
  • 沂水县委书记陈士贤,跨市履新泰安市委常委、组织部部长
  • 股市劝服马斯克
  • 十三届全国政协经济委员会副主任张效廉严重违纪违法被开除党籍
  • 亮相!神二十乘组与中外媒体记者集体见面