![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
vnpy
_Erwin_
one's achievements = core algorithm * (repeat times)^n
展开
-
量化交易之vnpy篇 - 同步模块避开自成交风险、新增同步完成提示
"""事情起因:融行虽然有规避自成交的功能模块;但还有很多情况,程序同时发相同合约多空两向的单子,融行并不会做处理,估计这是融行系统的一个bug。但现在的MOM账户大都用的是融行系统,所以自成交风险的避免还是要我们自己程序这边来处理。"""from vnpy.app.position_manager import StrategyTemplatefrom vnpy.trader.utility import BarGeneratorimport mathfrom time impor.原创 2022-04-21 15:10:34 · 515 阅读 · 0 评论 -
量化交易之vnpy篇 - 绕过process_trade_event修改pos - 发单时直接修改json的pos值
class CtaTemplate(ABC): """part code""" @virtual def on_order(self, order: OrderData): """ Callback of new order data update. """ if self.trading is False: return if order.status in [Statu.原创 2021-11-07 16:05:18 · 311 阅读 · 0 评论 -
量化交易之vnpy篇 - auto-report - copy当天收盘后需要看的数据到新的文件夹
import osimport reimport pandasfrom datetime import datetimefrom vnpy.trader.tqz_extern.tools.file_path_operator.file_path_operator import TQZFilePathOperatorfrom vnpy.trader.tqz_extern.tools.position_operator.position_operator import TQZJsonOperato.原创 2021-09-19 15:41:41 · 147 阅读 · 0 评论 -
量化交易之vnpy篇 - tqz_logging - 新增日志(理论/真实持仓变动时更新日志)
""" tqz_logging.py """import loggingimport osfrom vnpy.trader.tqz_extern.tools.file_path_operator.file_path_operator import TQZFilePathOperatorclass TQZLogging: __strategy_bug_fold = TQZFilePathOperator.current_file_father_path(file=__file__) .原创 2021-09-14 14:24:34 · 309 阅读 · 0 评论 -
量化交易之vnpy篇 - 从Tushare获取股票(日线、周线、月线)数据
class TQZTushareClient: __api = tushare.pro_api() # --- api part --- @classmethod def query_bars(cls, vt_symbol: str, exchange: Exchange, interval: Interval = Interval.DAILY, days: int = 20) -> List[BarData]: """ Api o.原创 2021-09-13 15:04:35 · 2461 阅读 · 0 评论 -
量化交易之vnpy篇 - 最小单边轧差发单策略、重写发单功能、拆单算法
import mathfrom vnpy.app.position_manager import StrategyTemplatefrom vnpy.trader.utility import BarGeneratorfrom vnpy.trader.tqz_extern.tools.position_operator.position_operator import TQZPositionJsonOperatorfrom vnpy.trader.tqz_extern.tools.file_p.原创 2021-09-02 10:06:09 · 1672 阅读 · 1 评论 -
量化交易之vnpy篇 - 重构主力合约换月模块 - 更换主力合约部分
import pandasimport refrom vnpy.trader.tqz_extern.tools.position_operator.position_operator import TQZJsonOperatorfrom vnpy.trader.tqz_extern.tools.symbol_operator.symbol_operator import TQZSymbolOperatorfrom vnpy.app.tqz_main_contracts_app.main_cont.原创 2021-08-09 11:11:14 · 532 阅读 · 0 评论 -
量化交易之vnpy篇 - 重构主力合约换月模块 - 更新主力合约数据源部分
import osimport pandasfrom vnpy.trader.tqz_extern.tqz_constant import TQZMainContractsColumnType, TQZMainContractsSheetTypefrom vnpy.app.tqz_main_contracts_app.main_contracts_data_file_path import TQZMainContractsChangeFilePathfrom vnpy.trader.tqz_se.原创 2021-08-09 11:07:53 · 212 阅读 · 0 评论 -
量化交易之vnpy篇 - 更新期货市场沉淀资金数据表
import osimport pandasfrom vnpy.trader.tqz_server_data import TQZServerDatafrom vnpy.trader.tqz_extern.tqz_constant import ( TQZSedimentaryFundSheetType, TQZSedimentaryFundColumnType, TQZCurrentFutureContractColumnType)from vnpy.trader..原创 2021-08-09 10:56:53 · 576 阅读 · 0 评论 -
量化交易之vnpy篇 - 数据中转(天勤) - 拉取主力合约、期货市场沉淀资金数据
import mathimport pandasimport datetimefrom typing import Listfrom tqsdk import TqApi, TqKqfrom tqsdk.objs import Quotefrom vnpy.trader.tqz_extern.tqz_constant import TQZCurrentFutureContractColumnType# show all columnspandas.set_option('disp.原创 2021-08-09 10:48:51 · 1693 阅读 · 0 评论 -
量化交易之vnpy篇 - tqz_model - TQZMonitorTimeModel、TQZAccountModel
class TQZMonitorTimeModel: """ Monitor time of main_contracts_load、yesterday_accounts_data、auto_report、main_contract_change """ MAIN_CONTRACT_LOAD_START_TIME = time(15, 20) MAIN_CONTRACT_LOAD_END_TIME = time(15, 30) RECORD_YESTER.原创 2021-07-26 20:21:33 · 171 阅读 · 0 评论 -
量化交易之vnpy篇 - tqz_object - @dataclass的简单使用
from dataclasses import dataclassfrom vnpy.trader.object import AccountData@dataclassclass TQZAccountData(AccountData): """ Add user_deposit、risk_float based on AccountData """ def __post_init__(self): """ callback after ...原创 2021-07-26 20:21:10 · 191 阅读 · 0 评论 -
量化交易之vnpy篇 - 登录模块 - multi_accounts、multi_apps
import multiprocessingimport sysimport osfrom time import sleepfrom datetime import datetime, timefrom logging import INFOfrom typing import Typefrom vnpy.event import EventEnginefrom vnpy.trader.setting import SETTINGSfrom vnpy.trader.engine im.原创 2021-07-26 20:20:55 · 501 阅读 · 0 评论 -
量化交易之vnpy篇 - 主力合约换月 - 引擎调用私有api部分
# --- private part --- def __change_main_contracts(self): """ Change main contracts data """ if self.__today_main_contracts_has_change is False: self.__today_main_contracts_has_change = True ...原创 2021-07-26 20:20:41 · 190 阅读 · 0 评论 -
量化交易之vnpy篇 - 主力合约换月 - 引擎调用部分
import timeimport pandasimport refrom vnpy.trader.tqz_extern.tqz_model import TQZMonitorTimeModelfrom vnpy.trader.tqz_extern.tools.position_operator.position_operator import TQZJsonOperatorfrom vnpy.trader.tqz_extern.tools.symbol_operator.symbol_ope.原创 2021-07-26 20:20:18 · 279 阅读 · 0 评论 -
量化交易之vnpy篇 - 主力合约换月 - 拉取当前主力合约数据 (天勤)
class TQZTqClient: """ Client for querying main future contracts of current market from Tianqin. """ def __init__(self, account_name, account_password): """ init api with account_name & account_password """ .原创 2021-07-23 15:47:58 · 1053 阅读 · 0 评论 -
量化交易之vnpy篇 - 主力合约换月 - 相关文件路径部分 (TQZMainContractsChangeFilePath)
from tqsdk import TqApi, TqKqfrom vnpy.trader.tqz_extern.tools.file_path_operator.file_path_operator import TQZFilePathOperatorfrom vnpy.trader.tqz_extern.tqz_constant import TQZMainContractsColumnType, TQZMainContractsSheetTypeimport osimport panda.原创 2021-07-23 15:41:50 · 195 阅读 · 0 评论 -
量化交易之vnpy篇 - 监控模块 - 监控引擎部分
from remi.server import Serverfrom vnpy.app.tqz_monitor_app.tqz_monitor_accounts_web import TQZMonitorAccountsWebclass TQZMonitorEngine: def __init__(self, web_class): self.web_class = web_class def tqz_start(self, port): "".原创 2021-07-23 15:30:59 · 216 阅读 · 0 评论 -
量化交易之vnpy篇 - 监控模块 - UI部分
def main(self): self.__app_load_data() return self.__add_child_widgets() # private part # - app load data / add child widgets - def __app_load_data(self): all_account_data_list = self.__get_current_accounts_dat...原创 2021-07-23 15:27:30 · 320 阅读 · 0 评论 -
量化交易之vnpy篇 - 监控模块 - 回调函数监控部分
from remi.server import App, Serverimport remi.gui as guiimport timefrom vnpy.trader.tqz_extern.tools.position_operator.position_operator import TQZJsonOperatorfrom vnpy.trader.tqz_extern.tools.file_path_operator.file_path_operator import TQZFilePath.原创 2021-07-23 15:25:50 · 224 阅读 · 0 评论 -
量化交易之vnpy篇 - 报表自动化 - inter operation private part
# --- inter operation private part --- @classmethod def __init_base_date_dataframe(cls, account_id_account_dataframe_dictionary): # concat all date dataframe of accounts date_dataframe = pandas.concat( account_id_ac...原创 2021-07-23 14:49:15 · 155 阅读 · 0 评论 -
量化交易之vnpy篇 - 报表自动化 - private api part部分
# --- auto report api of private part --- @classmethod def __create_source_data_excel(cls, settlement_jsonfile): """ Create dataframe about source data """ TQZAutoReportFilePath.ensure_sourceDataFold_is_exist() .原创 2021-07-23 13:54:39 · 158 阅读 · 0 评论 -
量化交易之vnpy篇 - 报表自动化 - outer api部分
class TQZAutoReport: __is_updating = False @classmethod def tqz_update(cls, settlement_jsonfile): """ Create or Update today auto report. """ if TQZAutoReport.__source_data_is_update( current_.原创 2021-07-23 13:44:45 · 117 阅读 · 0 评论 -
量化交易之vnpy篇 - 报表自动化 - 文件路径部分 (TQZAutoReportFilePath)
class TQZAutoReportFilePath: @classmethod def autoReport_data_fold(cls): return TQZFilePathOperator.current_file_father_path(file=__file__) + '/auto_report_data' @classmethod def source_data_fold(cls): return cls.autoRepo.原创 2021-07-23 13:29:59 · 118 阅读 · 0 评论 -
量化交易之vnpy篇 - json读写模块添加异常的抛出/处理、json写入部分添加互斥锁
import jsonimport mathimport reimport threadingfrom vnpy.app.position_manager.tools.tqz_extern.tqz_constant import ( TQZCffexSymbolType, TQZJsonOperatorType, TQZCodingType, TQZPositionKeyType)class TQZJsonOperator: __write_lo.原创 2021-06-09 22:06:40 · 133 阅读 · 0 评论 -
量化交易之vnpy篇 - wx库 - 获取系统上的所有可用字体
import wxwx_app = wx.App(False)# FontEnumerator 枚举系统上所有可用的字体font_enum = wx.FontEnumerator()font_list = font_enum.GetFacenames()print("可用字体数:", len(font_list))[print(font_name) for font_name in font_list[:20]]...原创 2021-06-08 20:55:23 · 119 阅读 · 0 评论 -
量化交易之vnpy篇 - 根据模型属性排序(TQZAccountModel)
from tqz_constant.tqz_constant import TQZAccountKeyTypeclass TQZAccountModel: def __init__(self, account_id, balance, risk_percent): self.account_id = account_id self.balance = float(balance) self.risk_percent = float(risk..原创 2021-06-08 20:04:50 · 165 阅读 · 0 评论 -
量化交易之vnpy篇 - 多线程dump账户权益、风险度数据(互斥锁、异常处理)
""" 部分代码 """ def process_account_event(self, event: Event) -> None: """ Dump balance、risk_percent data of account """ account = event.data self.accounts[account.vt_accountid] = account tqz_vnpy_pat.原创 2021-06-08 19:44:08 · 288 阅读 · 0 评论 -
量化交易之vnpy篇 - 重构多账户登录模块(gateway_accounts_login.py)
import multiprocessingimport sysimport osfrom time import sleepfrom datetime import datetime, timefrom logging import INFOfrom typing import Typefrom vnpy.event import EventEnginefrom vnpy.trader.setting import SETTINGSfrom vnpy.trader.engine im.原创 2021-06-08 19:37:39 · 981 阅读 · 0 评论 -
量化交易之vnpy篇 - 重构position_operator.py
import jsonimport mathimport refrom vnpy.app.position_manager.tools.tqz_extern.tqz_constant import ( TQZCffexSymbolType, TQZJsonOperatorType, TQZCodingType, TQZPositionKeyType)from vnpy.app.position_manager.tools.tqz_extern.tqz_deco.原创 2021-06-08 19:28:14 · 271 阅读 · 0 评论 -
量化交易之vnpy篇 - 封装文件路径操作类(os)
import osfrom vnpy.app.position_manager.tools.position_operator.position_operator import TQZJsonOperatorclass TQZFilePathOperator: @classmethod def current_file_path(cls, file=__file__): return os.path.abspath(file) @classmethod.原创 2021-06-08 19:25:18 · 216 阅读 · 0 评论 -
量化交易之vnpy篇 - 几种同步发单模式(中金所股指锁仓模式、最小单边轧差操作模式、双边同步模式,净头寸模式)
""" 发单逻辑部分 """ def tqz_synchronization_position_cffex_lock_mode(self, market_vt_symbol, now_price, offset_price, strategy_position_net, real_position_net): """ synchronization position with lock mode(cffex mode) """ v.原创 2021-04-24 13:10:09 · 577 阅读 · 0 评论 -
量化交易之vn.py篇 - 同步仓位部分实现逻辑(分钟级别发单,on_bar实现)
def on_bar(self, bar: BarData): """ Callback of new bar data update. """ self.cancel_all() # get current strategy data & current strategy_position(buy & sell) of symbol & current real_position(buy &...原创 2021-04-17 14:53:15 · 707 阅读 · 0 评论 -
量化交易之vn.py篇 - cta_strategy - CincoStrategy(示例)
""" 不要用来跑实盘, CincoStrategy策略还有很多需要迭代的地方, 以下代码仅供学习参考使用"""from typing import Anyfrom vnpy.app.cta_strategy import (ArrayManager, BarData, BarGenerator, CtaTemplate, OrderData, StopOrder, TickData, .原创 2021-03-29 14:14:26 · 734 阅读 · 0 评论 -
量化交易之vn.py篇 - cta_strategy - CuatroStrategy(示例)
""" 不要用来跑实盘, cuatro_strategy可迭代处还有很多, 以下代码仅供学习参考使用"""from vnpy.app.cta_strategy import ( CtaTemplate, BarGenerator, ArrayManager, TickData, BarData, OrderData, TradeData, StopOrder)from typing import Anyfrom vnp.原创 2021-03-29 14:10:24 · 601 阅读 · 0 评论 -
量化交易之vn.py篇 - cta_strategy - DemoStrategy(一个稳定亏损的双均线策略...)
from vnpy.app.cta_strategy import ( CtaTemplate, BarGenerator, ArrayManager)from typing import Anyfrom vnpy.trader.object import ( BarData, TickData,)class DemoStrategy(CtaTemplate): author = "Post-Truth" # 定义参数 .原创 2021-03-29 14:04:34 · 720 阅读 · 0 评论 -
量化交易之vn.py篇 - 仓位同步时(非净头寸),需要把策略所有的多空仓位分别加总再同步,而不是只同步净仓位
import jsonimport math""" 处理异常的装饰器类"""class DecorateExcept: def __init__(self, function): self.function = function def __call__(self, *args, **kwargs): try: function_result = self.function(*args, **kwargs) .原创 2021-03-26 09:18:23 · 422 阅读 · 0 评论 -
量化交易之vn.py篇 - 同步持仓发单逻辑(非净头寸 & 净头寸)
""" 同步持仓 非净头寸发单(逻辑部分的代码)""" for market_vt_symbol, bar in bars.items(): # strategy position strategy_position = TQZSymbolOperator.tqz_get_strategy_position( market_vt_symbol=market_vt_symbol, .原创 2021-03-18 14:02:11 · 820 阅读 · 0 评论 -
量化交易之vn.py篇 - 关于json文件中头寸操作的部分,全部转化为预处理
""" 因为vnpy在实际运行中,json文件保存策略的理论持仓部位; 所以对于vnpy项目中的json文件的相关操作,不能采用直接修改的形式; 需要先把json文件中的数据取出来再在内存中进行处理,所以要把之前实现的所有功能(持仓加总、按倍数调整、清仓)转换成在内存中操作,而不是直接修改原json文件;"""import jsonimport math""" 处理异常的装饰器类"""class DecorateExcept: def __in.原创 2021-03-16 13:07:45 · 195 阅读 · 0 评论 -
量化交易之vn.py篇 - 获取账户真实持仓数据、根据品种获取当前真实持仓(多、空、净)
from vnpy.trader.object import PositionDatafrom typing import Listfrom vnpy.trader.constant import Directionclass TQZPositionData: __position_datas = None __position_data_models = None is_fresh = False __vt_symbol_key = "vt_symbol"...原创 2021-03-16 12:58:23 · 1863 阅读 · 0 评论