等级: 免费版
- 注册:
- 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
#--------------------------------------------------------------
|
-
|