金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3159|回复: 10

这里context 是否可以替换为canshu

[复制链接]

3976

主题

4045

帖子

4070

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-3-21 16:23 | 显示全部楼层 |阅读模式
这里context 是否可以替换为canshu
4.png
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

30

主题

7075

帖子

7085

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-3-21 17:32 | 显示全部楼层
本帖最后由 技术008 于 2022-3-21 17:55 编辑

不可以,这是软件定义好的对象,必须时context
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

20

主题

76

帖子

76

积分

等级: 免费版

注册:
2022-2-11
曾用名:
发表于 2022-3-22 10:12 | 显示全部楼层
你好 按照左侧软件Python 自带案例 右侧抄写的,通过代码对比软件 检查等都没发现不同,实际却一个跑某个股票正常交易 自己写的却无交易,编译是成功的,请帮忙看看问题所在 谢谢
截图202203221009573040.png
回复

使用道具 举报

30

主题

7075

帖子

7085

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-3-22 10:19 | 显示全部楼层
代码直接贴下
另外如果有条件,自己可以尝试print输出下条件是否满足
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

20

主题

76

帖子

76

积分

等级: 免费版

注册:
2022-2-11
曾用名:
发表于 2022-3-22 11:19 | 显示全部楼层
软件 系统案例 代码如下:

# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。

# 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。
#简单的期货趋势策略,选用简单的均线金叉死叉进行买卖
import time
import os
import csv
import numpy
import talib as ta

def init(context):
    # 在context中设置一些参数
    context.s1 = context.run_info.base_book_id
    #两条均线的周期长度
    context.long_period = 20
    context.short_period = 5

# before_trading此函数会在每天策略交易开始前被调用,当天只会被调用一次
def before_trading(context):
    pass


# 你选择的证券的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新
def handle_bar(context):
    # 开始编写你的主要的算法逻辑

    # bar_dict[order_book_id] 可以拿到某个证券的bar信息
    # context.portfolio 可以拿到现在的投资组合信息

    # 使用order_shares(id_or_ins, amount)方法进行落单

    # TODO: 开始编写你的算法吧!
    #获取交易品种价格,并产生对应的均线数据
    close = history_bars(context.s1, context.long_period+1, 'self', 'close',True)
    if len(close) < context.long_period+1 :
        return
    ma5 = ta.SMA(close,context.short_period)
    ma20 = ta.SMA(close,context.long_period)
    #logger.info('ma5均线'+str(ma5[-1])+'ma20均线'+str(ma20[-1]))
    if ma5[-1]>ma20[-1] and ma5[-2]<ma20[-2]:
        buy_open(context.s1, "market", volume=100)
    if ma5[-1]<ma20[-1] and ma5[-2]>ma20[-2]:
        portfolio = get_portfolio(context.s1,0)
        sell_close(context.s1,"market", volume=portfolio.buy_quantity)
   
# after_trading函数会在每天交易结束后被调用,当天只会被调用一次
def after_trading(context):
    pass
回复

使用道具 举报

20

主题

76

帖子

76

积分

等级: 免费版

注册:
2022-2-11
曾用名:
发表于 2022-3-22 11:20 | 显示全部楼层
自己仿照编写的代码如下:

#可以自己import我们平台支持的第三方Python模块,比如pands、numpy等。

#导入各种库
import time
import os
import csv
import numpy
import talib as ta
#写一些变量和有关的赋值
def init(context):
   
    context.s1 = context.run_info.base_book_id
    #均线的两个周期
    context.long_period = 20
    context.short_period = 5
#befor_trading 此函数会每天策略交易开始前被调用,当天只会被调用一次
def before_trading(context):
    pass
#你选择的证券数据更新将会触发 此段逻辑,例如日或分钟历史数据切片或者实时数据切片更新
def handle_bar(context):
   
#写主要逻辑 开始写算法
#获取交易品种价格,并产生对应的均线数据
    close = history_bars(context.s1, context.long_period+1, 'self ', 'close',True)
    if len(close) < context.long_period+1:
        return
    ma5 = ta.SMA(close,context.short_period)
    ma20 = ta.SMA(close,context.long_period)
    if ma5[-1]>ma20[-1] and ma5[-2]< ma20[-2]:
        buy_open(context.s1, "market" ,volume=100,serial_id = 1)

    if ma5[-1] < ma20[-1] and ma5[-2] > ma20[-2]:
        portfolio = get_portfolio(context.s1,0)
        sell_close(context.s1,"market",volume=portfolio.buy_quantity,serial_id = 2)
# after_trading 函数会在每天交易结束后被调用,当天只会被调用一次
def after_trading(context):
    pass

回复

使用道具 举报

30

主题

7075

帖子

7085

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-3-22 12:26 | 显示全部楼层
close = history_bars(context.s1, context.long_period+1, 'self ', 'close',True)

你的self里多了一个空格
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

30

主题

7075

帖子

7085

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2022-3-22 12:27 | 显示全部楼层
类似问题,以后建议用户自己多加print输出看
我们检查代码也是这样调试的,都是花时间而已
截图202203221226571044.png
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

20

主题

76

帖子

76

积分

等级: 免费版

注册:
2022-2-11
曾用名:
发表于 2022-3-22 18:53 | 显示全部楼层
确实是多了个空格。。谢谢
请问如何print呢?调试吗?应该如何调试呢? 看了些视频还不太清楚 能否稍微说下 谢谢!
回复

使用道具 举报

20

主题

76

帖子

76

积分

等级: 免费版

注册:
2022-2-11
曾用名:
发表于 2022-3-22 19:04 | 显示全部楼层
技术008 发表于 2022-3-21 17:32
不可以,这是软件定义好的对象,必须时context

尝试了修改为 canshu 测试也不影响 是不是也是可以的一般情况下
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 11:28 , Processed in 0.199699 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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