from abc import ABC, abstractmethod
from op_futures.op_objects.tick_data import TickData
from op_futures.op_objects.order_data import OrderData
from tqz_extern.tqz_constant import OrderSide, OrderType
class TemplateStrategy(ABC):
def __init__(self):
self.profit_and_loss_detail = []
self.pos = 0
@abstractmethod
def on_init(self):
pass
@abstractmethod
def on_tick(self, tick: TickData):
pass
@abstractmethod
def on_stop(self):
pass
def buy(self, symbol: str, lots: float, price: float, order_type: OrderType = OrderType.LIMIT) -> OrderData:
assert lots > 0, f'Bad buy lots: {lots}.'
order_data = OrderData(symbol=symbol, lots=lots, price=price, order_side=OrderSide.BUY, order_type=order_type)
self.profit_and_loss_detail.append(order_data)
self.pos += lots
return order_data
def sell(self, symbol: str, lots: float, price: float, order_type: OrderType = OrderType.LIMIT) -> OrderData:
assert lots > 0, f'Bad sell lots: {lots}.'
order_data = OrderData(symbol=symbol, lots=lots, price=price, order_side=OrderSide.SELL, order_type=order_type)
self.profit_and_loss_detail.append(order_data)
self.pos -= lots
return order_data
def short(self, symbol: str, lots: float, price: float, order_type: OrderType = OrderType.LIMIT) -> OrderData:
assert lots > 0, f'Bad short lots: {lots}.'
order_data = OrderData(symbol=symbol, lots=lots, price=price, order_side=OrderSide.SHORT, order_type=order_type)
self.profit_and_loss_detail.append(order_data)
self.pos -= lots
return order_data
def cover(self, symbol: str, lots: float, price: float, order_type: OrderType = OrderType.LIMIT) -> OrderData:
assert lots > 0, f'Bad cover lots: {lots}.'
order_data = OrderData(symbol=symbol, lots=lots, price=price, order_side=OrderSide.COVER, order_type=order_type)
self.profit_and_loss_detail.append(order_data)
self.pos += lots
return order_data
量化交易之One Piece篇 - CTA策略模板(新增更新pos、断言、盈亏细节列表)
原创
©著作权归作者所有:来自51CTO博客作者ErwinSmith的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
量化交易开发之基本语法(三)
本教程则是以量化的情景从零讲解python编程,所以将更适合想学做量化策略的人。
数据 变量名 python -
量化交易开发之函数API(四)
我们讲解一下python中的函数知识
API 数据 python -
量化交易开发之初识量化(一)
本系列课程将开启手把手保姆级实战课程,开发属于你自己的量化策略!!!
量化交易 策略因子 实战教学 -
量化交易之One Piece篇 - CTA策略模板(父类)
【代码】量化交易之One Piece篇 - CTA策略模板(父类)
python 开发语言 ide bc -
量化交易之One Piece篇 - 模板 - ITraderApi.h
【代码】量化交易之One Piece篇 - 模板 - ITraderApi.h。
one piece c++ #include #pragma Data -
量化交易之One Piece篇 - 模板 - ICoreListener.h
【代码】量化交易之One Piece篇 - 模板 - ICoreListener.h。
one piece c++ #include #pragma -
量化交易之One Piece篇 - 模板 - IPluginContext.h
【代码】量化交易之One Piece篇 - 模板 - IPluginContext.h。
c++ one piece #include ios #pragma -
量化交易之One Piece篇 - 模板 - IMarketApi.h
【代码】量化交易之One Piece篇 - 模板 - IMarketApi.h。
c++ one piece #pragma #include -
量化交易之One Piece篇 - one_piece_server.py(stable版)
【代码】量化交易之One Piece篇 - one_piece_server.py(stable版)
python 开发语言 GAP json 启动脚本 -
量化交易之One Piece篇 - OnePieceEnum.h
【代码】量化交易之One Piece篇 - OnePieceEnum.h。
one piece #pragma -
量化交易之One Piece篇 - MarketCTP.h
【代码】量化交易之One Piece篇 - MarketCTP.h。
c++ linux one piece #include ios -
量化交易之One Piece篇 - spdlog - 示例demo
【代码】量化交易之One Piece篇 - spdlog - 示例demo。
c++ 算法 开发语言 #include