股票量化交易,每涨10%卖,每跌5%买,实际效果到底怎么样?
来自:斯内克复盘笔记
如果我有一笔资金100万,我将会选择十只股票,股票量化交易,每涨10%卖,每跌5%买,严格执行,我就不信能亏!!!
投资有风险,入市需谨慎,此文章不作为任何投资建议!

“我的策略是先以总资金的买入10%。后续根据股价的收盘价,以实时持仓成本价为基础的涨跌比例加仓。跌到5%才加仓持有仓位跌幅相同比例,涨到持仓成本价10%以上就卖出,清仓的股票等价格回落到原持仓价,又重复上面的操作。”
相信类似的方法如半仓法,马丁格尔策略等方法在各位投资者脑海里面早就初具雏形,但因为现实原因总是不能实践,往往克服不了情绪,没有时间专职做等,那么我就用数据算法脚本来演示这样的策略在股票投资中是否有效。

为了模拟这个交易策略,我会创建一个Python脚本,它将执行以下操作:
1. 生成股票数据:模拟10只股票每天的涨跌数据,持续300天。
2. 交易策略:
- 初始总仓位的10%买入。
- 根据持仓成本价的涨跌比例调整仓位:跌到5%加仓相同比例,涨到成本价10%以上时清仓。
- 清仓的股票在价格回落到原持仓价时,重复上述操作。
3. 模拟交易:使用生成的数据进行交易,根据策略调整仓位。
4. 计算收益:在模拟期结束后,计算总收益。
这个模拟将基于随机生成的数据进行,所以结果仅供参考,不代表实际市场表现。接下来,我将编写这个脚本。
想直接看结果的朋友可以直接跳过代码部分
```python
import numpy as np
import pandas as pd
class 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%的亏损呢?
在此之前我们换几组基础参数:
- 其他条件不变,若涨5%就卖,跌3%就加,在300天的交易模拟后,最终的总资产价值约为901,577.99元。
- 初始仓位调整为20%,若涨4%就卖,跌2%就加,在300天的交易模拟后,最终的总资产价值约为928,785.90元。
- 如有自己的想法可以留言评论区。
那么为什么看似严谨的策略却总是亏损?
1. 随机股价波动:模拟中股价的波动是随机生成的,可能并不完全反映真实市场的动态。
2. 买卖点设置:我们的策略是在股价上涨10%时卖出,下跌5%时买入。这种策略可能导致在下跌趋势中过早买入,而在上涨趋势中过早卖出,从而错过更大的利润空间。
3. 交易频率与市场波动性:如果市场波动性很大,频繁的交易可能导致重大亏损。
4. 未考虑交易成本和税费:实际交易中,每次买卖都会产生交易费用和可能的税费。
5. 市场趋势与时间窗口:300天的时间框架可能不足以捕捉到股市的长期趋势。股市可能在某段时间内表现不佳,而我们的策略可能未能适应这种趋势。
6. 策略灵活性:股市是复杂且多变的,单一的策略很难在所有市场条件下都表现良好。策略的灵活性和多样性对于应对不同的市场情况非常重要。
总的来说,这样的策略可能在某些市场条件下有效,但在其他条件下则可能导致亏损。重要的是要有对市场的深入理解,灵活调整策略,并考虑到交易成本和税费。此外,应当注意风险管理,不要过度依赖单一策略。
如果大家还有更好的量化策略,可以在评论区留言讨论~~
投资有风险,入市需谨慎,此文章不作为任何投资建议!

最新讨论 ( 更多 )
- 年攒5-15|﹏ 平凡的世界 ° (2025年度🌸家庭账~) (浅浅浅笑.✨)
- 年攒5-15|2025攒攒攒,努力还房贷ing🌱 (耶)
- 树洞|存到100个,非常想花钱,你们觉得合适吗? (哟哟)
- 年攒<5万|2025年攒钱记录,控制不必要花销 (澜桥)
- 年攒5-15|2025极简、低物欲~碎碎念 (酸酸甜甜奶疙瘩)