金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2800|回复: 7

多个策略交易同一个品种,平仓问题

[复制链接]

1

主题

2

帖子

12

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
发表于 2021-8-25 11:10 | 显示全部楼层 |阅读模式
python策略中,我按照范例future_ma5_buy方式, 设置

portfolio = get_portfolio(context.s1,0),  然后
if portfolio.buy_quantity == 0:
    condition....
       buy_open(...)
if portfolio.buy_quantity > 0:
    condition ...
        sell_close(...)
现在遇到这样的问题:
1. backtest的时候没有问题;

2. 在交易的时候,如果启动两个策略做同一个品种,没有建仓的那个策略会读取 portfolio的信息,然后执行平仓,而建仓的策略到平仓的时候已经没有持仓了;
请问如何处理?






回复

使用道具 举报

30

主题

7075

帖子

7085

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2021-8-25 11:11 | 显示全部楼层
无法处理,你可以想象两个人同事操作你账户做同一个品种
第一个人买了,第二个人能看到第一个人的持仓的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

30

主题

7075

帖子

7085

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2021-8-25 11:14 | 显示全部楼层
https://www.weistock.com/docs/HE ... A8%A1%E7%BB%84.html

看下模组功能,原理就是创建一个模组账户,pythoN有专门模组函数你可以搜下
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

1

主题

2

帖子

12

积分

Rank: 2

等级: 标准版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-8-25 11:15 | 显示全部楼层
原来的图表交易系统可以在模型内区分,在python中不能这样处理吗?

补充内容 (2021-8-25 11:17):
我设置过一个变量context.holding记录持仓,这种方式在backtest的时候就出问题了。那么在交易中能用吗?
回复

使用道具 举报

30

主题

7075

帖子

7085

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2021-8-25 11:16 | 显示全部楼层
不可以
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

13

主题

46

帖子

46

积分

Rank: 1

等级: 新手上路

注册:
2021-8-11
曾用名:
发表于 2021-8-28 10:22 | 显示全部楼层
估计很难做到吧 除非是多账户吧
回复

使用道具 举报

13

主题

37

帖子

37

积分

Rank: 1

等级: 新手上路

注册:
2021-6-23
曾用名:
发表于 2021-9-2 15:19 | 显示全部楼层
你可以通过自己处理的方式,自己来区别能不能平仓

比如:策略1已经有开仓成功了,那么才允许平仓.策略2如果还没有开仓,或者已经平仓完了,就不允许再平仓.

实际实现的时候,使用全局变量来判断
回复

使用道具 举报

13

主题

37

帖子

37

积分

Rank: 1

等级: 新手上路

注册:
2021-6-23
曾用名:
发表于 2021-9-2 15:28 | 显示全部楼层
def init(context):
    context.allow_sell_close=0      #context.allow_sell_close为0表示还没有开多,为1表示已经开多

def handle_bar(context):
    portfolio = get_portfolio(context.s1,0),
    if (context.allow_sell_close==0):
        condition....
            buy_open(...)
            context.allow_sell_close=1  #这边是给你举个例子,实际应该去判断buy_open已经成交了才设置为1
    if (portfolio.buy_quantity>0 and context.allow_sell_close==1):
        condition ...
            sell_close(...)
            context.allow_sell_close=0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2024-11-16 07:46 , Processed in 0.397800 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表