PyCharm运行Python价格抓取机器人仅返回exit code 0无输出问题
问题原因及修复方案
核心错误点
- 主程序入口判断错误:
if __name__ == '_main__':应为if __name__ == '__main__':,Python中__name__魔术变量在主运行脚本中取值是双下划线包裹的__main__,原写法会导致整个主逻辑块完全不执行,程序直接正常退出,所以无任何输出。 - 变量名不匹配:原代码加载数据后赋值给了
def_df,后续调用和打印用的是未定义的data_df,就算主入口修复后也会抛出NameError异常。 - 可选优化:当前
cmo_trading_strategy是空实现,回测运行后不会产生任何交易逻辑,后续可以补充对应的策略代码。
修正后可运行代码
import pandas as pd import pandas_datareader from pandas.testing import assert_frame_equal from gemini.gemini_core.gemini_master import Gemini from gemini.helpers import poloniex, analyze def cmo_trading_strategy(data, gemini): # 后续补充策略逻辑 pass # TODO optimise params PAIR = "BTC_USD" PERIOD = 300 DAYS_HISTORY = 100 params = { 'capital_base': 100, 'data_frequency': 'D', 'fees': { 'open_fee': 0.01, 'close_fee': 0.01 } } if __name__ == '__main__': # 修复变量名统一为data_df data_df = poloniex.load_dataframe(pair=PAIR, period=PERIOD, days_history=DAYS_HISTORY) backtesting_engine = Gemini(Logic=cmo_trading_strategy, sim_params=params, analyze=analyze.analyze_bokeh) backtesting_engine.run(data=data_df) print(data_df)
内容的提问来源于stack exchange,提问作者elite.dragon
相关产品推荐
相关产品推荐

