| 
 等级: 免费版 
注册: 2023-9-29曾用名:  | 
 
 
 楼主|
发表于 2025-4-17 14:57
|
显示全部楼层 
| 如下是我的代码和日志贴图: # 本Python代码主要用于策略交易
 # 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。
 from PythonApi import *
 
 import pandas as pd
 import numpy as np
 #  参数定义区,这里定义的参数可以直接在context对象中获取。--(选择实现)
 #def parameter()
 #    input_par(myvalues1,5,1,20,1)
 #    input_par(myvalues2,10,1,20,1)
 
 class GlobalCls:
 def _init_(self):
 self.name = 'global var'
 g = GlobalCls()
 
 #PS: 确保g.context已经设置
 def Print(content):
 dt_str = g.context.now.strftime('%Y%m%d %H:%M:%S')
 print("[{}] {}".format(dt_str, content))
 
 #----------------------------------------
 pd.set_option('display.max_columns', None) #解决显示列省略问题
 pd.set_option('display.max_rows', None)
 pd.set_option('display.width', 1000)   # 控制,使不换行
 pd.set_option('display.float_format', lambda x: '%.2f' % x) #取消科学计数显示
 #  在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。--(必须实现)
 def init(context):
 # 在context中保存全局变量
 print("------初始化逻辑init(context)-------")
 g.context = context
 g.run_type = context.run_info.run_type
 print(f"context.run_info:{context.run_info}")
 print(f"context.run_info.base_book_id:{context.run_info.base_book_id}")
 
 # print(策略启动) #调试打印输出
 
 
 # before_trading此函数会在每天基准合约的策略交易开始前被调用,当天只会被调用一次。--(选择实现)
 def before_trading(context):
 pass
 
 
 # 你选择的品种的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新。--(必须实现)
 def handle_bar(context):
 # 开始编写你的主要的算法逻辑。
 symbol = 'UR00'
 freq = '5m'
 bars = history_bars(symbol, 1, freq, ['datetime', 'close'], include_now=True)
 Print(f" {symbol} {freq} ret bars' end_stamp:{bars[-1,0]}")
 pass
 
 
 # after_trading函数会在每天交易结束后被调用,当天只会被调用一次。 --(选择实现)
 def after_trading(context):
 pass
 
 #--------------------------------------------------------------
 
 
 | 
 
  |