No symbol “scan_list“ in current context.

(gdb) bt
#0  0x00007f56910d41f7 in raise () from /lib64/libc.so.6
#1  0x00007f56910d58e8 in abort () from /lib64/libc.so.6
#2  0x00007f5691113f47 in __libc_message () from /lib64/libc.so.6
#3  0x00007f569111cd7d in _int_malloc () from /lib64/libc.so.6
#4  0x00007f569111f10c in malloc () from /lib64/libc.so.6
#5  0x00007f56919d8ecd in operator new(unsigned long) () from /lib64/libstdc++.so.6
#6  0x00007f5691a37ab9 in std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) () from /lib64/libstdc++.so.6
#7  0x00007f5691a37c76 in std::string::_M_mutate(unsigned long, unsigned long, unsigned long) () from /lib64/libstdc++.so.6
#8  0x00000000004119c6 in MD5Info::~MD5Info (this=0x7f565ef11880, __in_chrg=<optimized out>) at ../src/Define.h:147
#9  0x000000000042c966 in CEndpoint::CheckCreate (this=0x7f5638001200, event=..., scan_list=empty std::list, info=...) at ../Endpoint.cpp:365
...

(gdb) p scan_list
No symbol "scan_list" in current context.
(gdb) f 9
#9  0x000000000042c966 in CEndpoint::CheckCreate (this=0x7f5638001200, event=..., scan_list=empty std::list, info=...) at ../Endpoint.cpp:365
365	../src/Endpoint.cpp: No such file or directory.
(gdb) p scan_list
$1 = empty std::list

需要先切换到相应的栈帧,然后才能p 变量。

import numpy as np import pandas as pd import talib def initialize(context): context.symbol = 'BTCUSDT' context.window_size = 5 context.deviation = 1 context.trade_size = 0.01 context.stop_loss = 0.05 context.take_profit = 0.1 schedule_function(rebalance, date_rules.every_day(), time_rules.market_open()) def rebalance(context, data): price = data.history(context.symbol, 'close', context.window_size + 1, '1d') signal = mean_reversion_signal(price, context.window_size, context.deviation) current_position = context.portfolio.positions[context.symbol].amount if signal[-1] == 1 and current_position <= 0: target_position_size = context.trade_size / data.current(context.symbol, 'close') order_target_percent(context.symbol, target_position_size) elif signal[-1] == -1 and current_position >= 0: order_target(context.symbol, 0) elif current_position > 0: current_price = data.current(context.symbol, 'close') stop_loss_price = current_price * (1 - context.stop_loss) take_profit_price = current_price * (1 + context.take_profit) if current_price <= stop_loss_price or current_price >= take_profit_price: order_target(context.symbol, 0) def moving_average(x, n): ma = talib.SMA(x, timeperiod=n) return ma def std_deviation(x, n): std = talib.STDDEV(x, timeperiod=n) return std def mean_reversion_signal(price, window_size, deviation): ma = moving_average(price, window_size) std = std_deviation(price, window_size) upper_band = ma + deviation * std lower_band = ma - deviation * std signal = np.zeros_like(price) signal[price > upper_band] = -1 # 卖出信号 signal[price < lower_band] = 1 # 买入信号 return signal ''' 运行回测 ''' start_date = pd.to_datetime('2019-01-01', utc=True) end_date = pd.to_datetime('2021-01-01', utc=True) results = run_algorithm( start=start_date, end=end_date, initialize=initialize, capital_base=10000, data_frequency='daily', bundle='binance' ) ''' 查看回测结果 ''' print(results.portfolio_value)格式错误
最新发布
05-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HeathXian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值