Skip to content

比特币交易新利器:ML驱动的水晶球预测模型(附完整代码)

作者:老余捞鱼

原创不易,转载请标明出处及原作者。

写在前面的话:大家好!今天我要和大家分享一个让比特币交易更加精准的神器——基于机器学习的价格预测模型。这个模型的建立,就像让你拥有了一颗能透视未来的水晶球,捕捉每一个可能的交易机会。快来一起探索这个神秘而又强大的工具吧!

身为数字货币的交易者,我们对价格的短期起伏格外在意。近期比特币价格在突破 10 万美元的历史新高后,始终于该位置附近来回波动,而每一个信号、每一项指标、每一条交易曲线都极为重要。正因如此,我构建了一个依据 72 小时历史数据、专注 5 小时预测的模型。虽说我们难以百分之百精准预测未来,但也许能够借助机器学习构建一个极为接近的预测模型。

一、交易模型搭建

让我们一步步的来搭建交易系统,我会详细解释每个步骤如何帮助你实现本模型。

步骤 1:数据收集

from pycoingecko import CoinGeckoAPI
cg = CoinGeckoAPI()
data = cg.get_coin_market_chart_by_id(id='bitcoin', vs_currency='usd', days='3')

我们提取了 72 小时内的数据,因为它为我们提供了足够的历史背景来发现形态,但又不至于冲淡近期的价格走势。非常适合日内交易!

步骤 2:功能构建

df['hour'] = df['timestamp'].dt.hour
df['day'] = df['timestamp'].dt.day
df['prev_price'] = df['price'].shift(1)
df['price_change'] = df['price'].pct_change()

这些功能是日间交易者的核心价值:

  • hour: (小时)捕捉日内交易模式。
  • prev_price: 动量交易的必要条件。
  • price_change: 价格变化适合波动性分析。

步骤 3:多模型方法

models = {
    'Decision Tree': DecisionTreeRegressor(random_state=42),
    'Linear Regression': LinearRegression(),
    'Random Forest': RandomForestRegressor(random_state=42),
    'Gradient Boosting': GradientBoostingRegressor(random_state=42),
}

上面采用的每种模式都有其独特之处:

  • Decision Tree: 决策树捕捉价格突破的绝佳工具。
  • Linear Regression: 线性回归适合趋势跟踪。
  • Random Forest: 随机森林函数完美处理市场噪音。
  • Gradient Boosting: 梯度提升是学习最近模式的高手。

步骤 4:价格预测引擎

def predict_next_hours_based_on_72_hours(model, df, n_hours=5):
    last_data = df.tail(72).copy()
    predicted_prices = []
    predicted_timestamps = []
    
    for _ in range(n_hours):
        prediction = model.predict(X_last)
        predicted_prices.append(prediction[0])
        # ... prediction logic

5 小时预测窗口对交易者至关重要:

  • 第 1-2 小时:即时交易机会;
  • 第 5 小时:退出战略规划。

步骤 5:可视化交易信号

def plot_predictions(df, predicted_timestamps, predicted_prices):
    plt.figure(figsize=(12, 6))
    plt.plot(last_24_hours['timestamp'], last_24_hours['price'], 
             label="Last 24 Hours (Actual)", color="blue", marker="o")
    plt.plot(predicted_timestamps, predicted_prices, 
             label="Next 5 Hours (Predicted)", color="red", marker="x")

可视化可以帮助我们实现:

  • 现货趋势延续与逆转;
  • 确定潜在的入口/出口点;
  • 比较预测与实际价格走势。


二、技术指标与时间框架配置

如果想让其更适合您的交易风格,可以添加这些技术指标

# Add RSI
df['RSI'] = calculate_rsi(df['price'])

# Add MACD
df['MACD'] = calculate_macd(df['price'])

# Add Volume Profile
df['volume_profile'] = analyze_volume(df)

你也可以根据自己的需要增加和调整技术指标在本模型中的使用。

时间框架是采用了过去 72 小时历史数据并专注于 5 小时预测的模型。

# Fetch Bitcoin market data for the last 72 hours
data = cg.get_coin_market_chart_by_id(id='bitcoin', vs_currency='usd', days='3')  # Fetch 3 days of data

# Predict the next 5 hours
predicted_timestamps, predicted_prices = predict_next_hours_based_on_72_hours(pipeline, last_72_hours_data, n_hours=5)

三、策略要点与交易技巧

下面介绍如何将这一模式融入到您交易中的一些要点,仅供参考:

  • 使用前 2 小时的预测值进行入场计时;
  • 通过传统技术分析进行确认;
  • 实时监控预测准确性;
  • 根据预测的价格范围调整止损点;
  • 利用每小时 5 次的预测设定盈利目标;
  • 注意预测与实际价格之间的差异;
  • 在预测的重大趋势变化之前计划退出。

这是我整理的一些在市场上的交易技巧,也许大家用得上:

  • 切勿盲目交易:将此模型作为交易工具之一,而非唯一工具;
  • 验证是关键:在纸面交易阶段跟踪模型的准确性;
  • 风险管理:设置严格的止损点,无论模型预测如何;
  • 持续学习:模型会根据新数据进行更新,您的战略也应如此!

四、观点总结

本文介绍了如何利用机器学习技术构建一个用于比特币日间交易的价格预测模型,旨在帮助交易者更准确地判断市场走势。

  • 数据收集:使用 CoinGeckoAPI 获取过去72小时的比特币价格历史数据,以便分析和预测。
  • 功能构建:提取关键特征,如小时、日期、前一个价格和价格变化,这些特征对于捕捉日内交易模式至关重要。
  • 多模型方法:利用多种机器学习模型,如决策树、线性回归、随机森林和梯度提升,来捕捉不同的市场动态和趋势。
  • 价格预测引擎:构建一个预测未来5小时比特币价格的模型,帮助交易者制定交易策略。
  • 可视化交易信号:通过图表展示预测和实际价格,帮助交易者更直观地理解市场走势和潜在的交易机会。
  • 实际交易策略:提供了如何将模型预测结果应用于实际交易的具体建议,包括确定入市时机、设置止损和盈利目标,以及规划退出战略。
  • 交易技巧:强调了模型准确性的验证、风险管理和持续学习的重要性,并提供了如何根据个人交易风格定制模型的技巧。

这是否对您的交易有所帮助?有改进它的想法吗?是否已准备好提高您的日内交易技能?请前往Colab笔记本,查看完整的比特币交易模型代码。https://colab.research.google.com/drive/1yNOih_O8g_V58YglxNVI5DYqeQOHmCZa?usp=sharing

和数字货币相关的文章推荐:

感谢您阅读到最后,希望本文能给您带来新的收获。码字不易,请帮我点赞、分享。祝您投资顺利!如果对文中的内容有任何疑问,请给我留言,必复。


本文内容仅限技术探讨和学习,不构成任何投资建议。

Published inAI&Invest专栏

Be First to Comment

    发表回复