问答交流

想请教一下如何实现买入后五天卖出的功能

由bqytasdg创建,最终由bqs2pgj8 被浏览 6 用户

各位大佬好,我之前都是通过图形界面来写代码的。现在就是想实现一个简单的功能,比方说每天遍历一下全市场,然后满足条件的股票我买入后持有3个交易日后再卖出。这个功能需要怎么怎么实现?能否提供一个简单能运行的demo程序,我在此基础上学习。

还有就是有没有专门讲如何通过代码来写策略的教程或方法,我有一定的coding经验,就是不知道怎么入门学习,谢谢!

评论
  • 两种方法:
  • 1.    
  • def initialize(context: bigtrader.IContext):
  • df_signals=(一次性计算所有调仓信号)
  • # 每N天调仓
  •     context.data = bigtrader.TradingDaysRebalance(context.rebalance_days, context=context).select_rebalance_data(df_signals)
  • def handle_data(context: bigtrader.IContext, data: bigtrader.IBarData):
  •     """处理交易信号"""
  •     return bigtrader.HandleDataLib.handle_data_weight_based(context, data)
  • 2.
  •             # 获取当前已持有股票
  •             current_hold_instruments = set(context.get_account_positions().keys())
  •             positions = context.get_account_positions()
  •             # 卖出不在目标持有列表中的股票
  •             for instrument in current_hold_instruments - target_hold_instruments:
  •                 s_r = context.order_target_percent(instrument, 0)
  •             # 买入目标持有列表中的股票
  •             for instrument in target_hold_instruments - current_hold_instruments:
  •                 b_r = context.order_percent(instrument, context.weight)
  • 因为是粘贴的代码,所以需要自己调一下缩进。其实方法很多,核心就是两个API:bigtrader.HandleDataLib.handle_data_weight_based(context, data)和context.order_percent(instrument, context.weight)具体参数如何使用查一下bigtrader的API文档就行。
{link}