金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
楼主: 100021030

python逻辑相关问题

[复制链接]

7

主题

108

帖子

108

积分

Rank: 2

等级: 标准版

注册:
2024-11-26
曾用名:
 楼主| 发表于 2025-3-13 10:58 | 显示全部楼层
另外问下,商品分时均价怎么算出来的,我用get_dynainf只能取到当前均价,我想用之前的均价就取不到了,想自己算。我看了下并不是简单的1分钟收盘价算平均。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2025-3-13 11:30 | 显示全部楼层
本帖最后由 技术009 于 2025-3-13 11:33 编辑

1. 再加个日期不就行了.
from datetime import datetime , timedelta
datetime.now()+timedelta(hours=4)+timedelta(days=2)

2.
[Python] 复制代码


from PythonApi import *
import time
import math
import os 

import datetime
import pandas as pd
import numpy as np
from PythonApi import *
import pandas as pd


def init(context):
    pass


def handle_bar(context):   
    code = context.run_info.base_book_id
    #Point是最小变动价位的小数位
    point = round(get_dynainf(code,208),7)
    
    if int(point)>0:
        point = 0
    else:
        point = len(str(point).split(".")[1])
    start_date = '2025-03-13 01:00:00'
    end_date = '2025-03-13 19:00:00' 
    dt = history_bars_date(code,start_date,end_date,'1m',['close','datetime','volume'])


    ndr = []
    sum1 = 0
    sum2 = 0
    for it in dt:
        c = np.around(it[0],decimals=point+1)
        vol =it[2]
        strx = str(int(it[1]))
        date = strx[0:8]
        time = strx[8:]
        sum1 =sum1 + c*vol
        sum2 = sum2+vol
        result =round(sum1/sum2,point+1)
        ndr.append([date,time,result])
        if time == '190000':             
            sum1 = 0
            sum2 = 0
    df = pd.DataFrame(ndr,columns=['Date','time','settle'])
    print(df.iloc[-5:, 1:])





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

使用道具 举报

7

主题

108

帖子

108

积分

Rank: 2

等级: 标准版

注册:
2024-11-26
曾用名:
 楼主| 发表于 2025-3-26 09:58 | 显示全部楼层
有什么办法可以实现逐笔回测嘛,目前我看金字塔只能支持按照取值周期回测,基本没意义。多个取值周期,就会取到未来值。如果自建数据库,也就是取数不用history_bar函数,但是复用金字塔下单系统
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2025-3-26 11:05 | 显示全部楼层
可以先在小周期上重新统计一组数据,然后拿来修改大周期最后位置的K的数值来模拟当时的情况。
例如在小周期重新统计出一个5分钟K的不完整的K结果,来覆盖到大周期数组的最后位置的值,再用来算指标。   这个思路没有实践过,理论上可行,只是不确定效率如何。

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

使用道具 举报

7

主题

108

帖子

108

积分

Rank: 2

等级: 标准版

注册:
2024-11-26
曾用名:
 楼主| 发表于 2025-6-3 16:19 | 显示全部楼层
咨询下,我用
sell_open(item, "market", volume=2, serial_id=34)
buy_open(item, "market", volume=2, serial_id=33)
开仓,已经是用的市价了,按理来说无论如何都会成叫
但是时不时得都会出现成交不了得情况
我用的是模拟盘下单。
是因为模拟盘问题嘛,还是因为代码层面得问题。
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2025-6-3 16:34 | 显示全部楼层
本帖最后由 技术009 于 2025-6-3 16:36 编辑

你可以看下当时具体情况 是下单报错 还是有挂单成交不了?如果是simnow模拟,那么其实他们是不支持市价的。必须全部转为限价报单。用市价会报错。

如果是金字塔模拟盘 可能就是模拟柜台撮合成交机制问题了,没办法像实盘那样处理到位的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

7

主题

108

帖子

108

积分

Rank: 2

等级: 标准版

注册:
2024-11-26
曾用名:
 楼主| 发表于 2025-6-4 14:50 | 显示全部楼层
是下单报错 还是有挂单成交不了?这两个怎么看,我就是在sell_open(item, "market", volume=2, serial_id=34)语句下加了一行print,怎么分辨下单报错还是挂单成交不了呢。
什么是simnow模拟?我就是用金字塔开的虚拟账户,这个是不是金字塔模拟盘。
然后我现在发现不论开仓,还是平仓,都会出现开不进去,或者平不了得情况
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2025-6-4 15:13 | 显示全部楼层
这个要看系统日志的报错。没有日志是不好判断的。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

7

主题

108

帖子

108

积分

Rank: 2

等级: 标准版

注册:
2024-11-26
曾用名:
 楼主| 发表于 2025-6-4 15:38 | 显示全部楼层
如何将系统日志发给你
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2025-6-4 15:40 | 显示全部楼层
直接以附件形式发送到这里就行。如果日志比较多,请务必先根据委托的时间去定位到当时的日志文件。

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-7 19:53 , Processed in 0.169598 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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