金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
12
返回列表 发新帖
楼主: 嘉敏

是否可以用python编写指标

[复制链接]

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-6-10 17:32 | 显示全部楼层
是的,建议自己多用print去输出看
编程重点是通过输出看去理解
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

1

主题

9

帖子

9

积分

Rank: 1

等级: 新手上路

注册:
2025-6-9
曾用名:
 楼主| 发表于 2025-6-12 09:01 | 显示全部楼层
技术008 发表于 2025-6-10 17:32
是的,建议自己多用print去输出看
编程重点是通过输出看去理解

get_blocks函数,block_name参数,根据金字塔学院文档说明,来源于在菜单栏“工具”--“市场与板块”--“板块”中展示的板块。但是在Mypython_LLT例子中,get_blocks("沪深300样本股",1)的这个"沪深300样本股"是在板块菜单中找不到的。那么block_name到底有哪些合法的取值,可以在什么地方查的到,所有的合法取值。
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-6-12 09:05 | 显示全部楼层
是这个,沪深300

说明中有说明从哪里看的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

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

使用道具 举报

1

主题

9

帖子

9

积分

Rank: 1

等级: 新手上路

注册:
2025-6-9
曾用名:
 楼主| 发表于 2025-6-12 11:37 | 显示全部楼层
技术008 发表于 2025-6-12 09:05
是这个,沪深300

说明中有说明从哪里看的

我是找到这里了,但是block_name是“沪深300样本股”,这个字符串是可以自由组装的?比如“沪深300样本股权重”,“沪深300成分股”?另外我按照例子写了一个指标,调用python模块,提示get_blocks("沪深300样本股",1)所在行返回了NULL。不知道怎么处理。
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-6-12 13:02 | 显示全部楼层
当然不是随便写的,这里都有说明,参考下面说明点开看到是什么就是根据看到的去填写的

电话我把
021-20339087

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

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

使用道具 举报

1

主题

9

帖子

9

积分

Rank: 1

等级: 新手上路

注册:
2025-6-9
曾用名:
 楼主| 发表于 2025-6-12 13:41 | 显示全部楼层
代码调试过程中的问题不知道怎么处理,需要求助。下面是我python应用模块UpNumber的代码。
from PythonApi import *

def init(context):
    try:
        context.code = get_blocks("沪深300",1)
    except Exception as e:
        log_debug_info('d:\pel_test_log.txt',str(e))
   
   
def before_trading(context):
    pass
        
def handle_bar(context):
   
    stocks = context.code
    count = 0
    # 开始编写你的主要的算法逻辑
   
    #调取收盘价数据,这里的CallMe是主图K线数据,方便不同品种使用,提高运行效率
    #close = pel_history_bars(context.long_period+1 ,'close')

    #调试打印输出

    # log_debug_info('d:\pel_test_log.txt',str(close))
   
    #计算2根均线,返回值放在context对象中。
    #context.ma5 = close[-context.short_period:].sum() / context.short_period
    #context.ma10 = close[-context.long_period:].sum() / context.long_period
    for i in context.code:
        close_yesterday = history_bars(i,1,"1d","close")
        close = history_bars(i,1,"m","close")
        if close[0]>close_yesterday[0]:
            count += 1
    context.count = count
   
# exit函数会在公式结束时被调用,整个过程只会被调用一次
def exit(context):
    pass
我另外写了一个pel的指标调用这个python引用。但是运行的时候报错。其中的行标比较奇怪,我都没那么多行代码。

然后我看了一下代码中输出的日志。

发现get_blocks还是返回NULL,但是不知道什么原因。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-6-12 13:43 | 显示全部楼层
你去python模块里使用看看

电话我说

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-6 03:10 , Processed in 0.147098 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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