分享

股票量化交易,每涨10%卖,每跌5%买,实际效果到底怎么样?

 草容生 2023-12-08 发表于湖南

如果我有一笔资金100万,我将会选择十只股票,股票量化交易,每涨10%卖,每跌5%买,严格执行,我就不信能亏!!!

投资有风险,入市需谨慎,此文章不作为任何投资建议!

股票量化交易,每涨10%卖,每跌5%买,实际效果到底怎么样?

“我的策略是先以总资金的买入10%。后续根据股价的收盘价,以实时持仓成本价为基础的涨跌比例加仓。跌到5%才加仓持有仓位跌幅相同比例,涨到持仓成本价10%以上就卖出,清仓的股票等价格回落到原持仓价,又重复上面的操作。”

相信类似的方法如半仓法,马丁格尔策略等方法在各位投资者脑海里面早就初具雏形,但因为现实原因总是不能实践,往往克服不了情绪,没有时间专职做等,那么我就用数据算法脚本来演示这样的策略在股票投资中是否有效。

股票量化交易,每涨10%卖,每跌5%买,实际效果到底怎么样?

为了模拟这个交易策略,我会创建一个Python脚本,它将执行以下操作:

1. 生成股票数据:模拟10只股票每天的涨跌数据,持续300天。

2. 交易策略:

  • 初始总仓位的10%买入。
  • 根据持仓成本价的涨跌比例调整仓位:跌到5%加仓相同比例,涨到成本价10%以上时清仓。
  • 清仓的股票在价格回落到原持仓价时,重复上述操作。

3. 模拟交易:使用生成的数据进行交易,根据策略调整仓位。

4. 计算收益:在模拟期结束后,计算总收益。

这个模拟将基于随机生成的数据进行,所以结果仅供参考,不代表实际市场表现。接下来,我将编写这个脚本。

想直接看结果的朋友可以直接跳过代码部分


```pythonimport numpy as npimport pandas as pdclass AdvancedStockTradingSimulator: def __init__(self, initial_cash, num_stocks, num_days): self.initial_cash = initial_cash self.cash = initial_cash self.num_stocks = num_stocks # 生成二维股价数组 self.stock_prices = np.random.normal(1, 0.02, (num_days, num_stocks)).cumprod(axis=0) self.portfolio = {i: {'position': 0, 'cost_price': 0} for i in range(num_stocks)} def initial_buy(self): investment_per_stock = self.initial_cash * 0.1 / self.num_stocks for i in range(self.num_stocks): self.portfolio[i]['position'] = investment_per_stock / self.stock_prices[0, i] self.portfolio[i]['cost_price'] = self.stock_prices[0, i] self.cash -= investment_per_stock def calculate_position_value(self, position, current_price): return position * current_price def trade(self, day): for i in range(self.num_stocks): current_price = self.stock_prices[day, i] position = self.portfolio[i]['position'] cost_price = self.portfolio[i]['cost_price'] if position > 0: # 如果仍持有股票 position_value = self.calculate_position_value(position, current_price) cost_value = self.calculate_position_value(position, cost_price) price_change_percent = (position_value - cost_value) / cost_value if price_change_percent <= -0.05: # 跌到5%,加仓 invest_amount = position_value * -price_change_percent if self.cash >= invest_amount: self.portfolio[i]['position'] += invest_amount / current_price self.cash -= invest_amount elif price_change_percent >= 0.10: # 涨到10%,清仓 self.cash += position_value self.portfolio[i]['position'] = 0 self.portfolio[i]['cost_price'] = 0 elif self.cash > 0 and current_price <= cost_price: # 清仓的股票价格回落到原持仓价,重新买入 investment = self.cash * 0.1 self.portfolio[i]['position'] = investment / current_price self.portfolio[i]['cost_price'] = current_price self.cash -= investment def calculate_total_value(self, day): total_value = self.cash for i in range(self.num_stocks): total_value += self.calculate_position_value(self.portfolio[i]['position'], self.stock_prices[day, i]) return total_value# 设置参数initial_cash = 1000000 # 初始资金100万num_stocks = 10 # 股票数量num_days = 300 # 交易天数# 初始化模拟器simulator = AdvancedStockTradingSimulator(initial_cash, num_stocks, num_days)# 初始买入simulator.initial_buy()# 模拟交易for day in range(num_days): simulator.trade(day)# 计算最终总资产价值final_portfolio_value = simulator.calculate_total_value(num_days - 1)```

这段代码包含了交易模拟器的定义、股票数据的生成、初始买入、日常交易逻辑以及最终资产价值的计算。我们可以使用这个脚本来模拟不同的交易策略和市场情况。

最终结果!是。。。。。。

模拟交易完成后,100万的最终的总资产价值约为712,721元。

这意味着在实施我们的交易策略并经过300天的模拟交易后,初始投资100万的资产减少了约30%。这个结果反映了您的策略在模拟的市场条件下的表现。请记住,这是基于随机生成的数据进行的模拟,实际市场表现可能会有很大差异。此外,模拟过程中没有考虑券商交易成本和税费等因素。税费不可避免,我们都是合法纳税的好公民,但减低券商交易成本是必不可少的。

量化交易需要超高频率的交易,随之而来的就是高额手续费,拥有一个超低佣金的股票账户十分有必要。不会开的可以直接联系@斯内克复盘笔记

现在我们来复盘一下,为什么我们的策略会有问题,造成30%的亏损呢?

在此之前我们换几组基础参数:

  1. 其他条件不变,若涨5%就卖,跌3%就加,在300天的交易模拟后,最终的总资产价值约为901,577.99元。
  2. 初始仓位调整为20%,若涨4%就卖,跌2%就加,在300天的交易模拟后,最终的总资产价值约为928,785.90元。
  3. 如有自己的想法可以留言评论区。

那么为什么看似严谨的策略却总是亏损?

1. 随机股价波动:模拟中股价的波动是随机生成的,可能并不完全反映真实市场的动态。

2. 买卖点设置:我们的策略是在股价上涨4%时卖出,下跌2%时买入。这种策略可能导致在下跌趋势中过早买入,而在上涨趋势中过早卖出,从而错过更大的利润空间。

3. 交易频率与市场波动性:如果市场波动性很大,频繁的交易可能导致重大亏损。

4. 未考虑交易成本和税费:实际交易中,每次买卖都会产生交易费用和可能的税费

5. 市场趋势与时间窗口:300天的时间框架可能不足以捕捉到股市的长期趋势。股市可能在某段时间内表现不佳,而我们的策略可能未能适应这种趋势。

6. 策略灵活性:股市是复杂且多变的,单一的策略很难在所有市场条件下都表现良好。策略的灵活性和多样性对于应对不同的市场情况非常重要。

总的来说,这样的策略可能在某些市场条件下有效,但在其他条件下则可能导致亏损。重要的是要有对市场的深入理解,灵活调整策略,并考虑到交易成本和税费。此外,应当注意风险管理,不要过度依赖单一策略。

如果大家还有更好的量化策略,可以在评论区留言讨论~~

投资有风险,入市需谨慎,此文章不作为任何投资建议!

股票量化交易,每涨10%卖,每跌5%买,实际效果到底怎么样?

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多