像专业人士一样使用外汇 API 进行回测
金融市场的动态本质需要利用可靠的数据来开发和验证交易策略。在回测环境中有效地整合高质量数据对于交易者和分析师来说至关重要。 TraderMade API 通过提供精确、详细和全面的市场数据来为这些专业人士提供支持。
此分析利用 TraderMade 的时间序列 API 来获取历史数据,执行简单的简单移动平均线 (SMA) 交叉策略,并评估其历史表现。
关于SMA交叉策略
简单移动平均线(SMA)交叉策略是一种基本技术分析技术。它涉及对两个 SMA 的观察:一个是短期 SMA,它对价格变动表现出更高的敏感性;另一个是长期 SMA,它可以减轻短期价格波动的影响。
当短期移动平均线超过长期移动平均线时,就会产生买入信号,表明潜在的上升趋势。相反,当短期 SMA 跌破长期 SMA 时,会触发卖出信号,表明潜在的下跌趋势。
数据收集
首先安装 TraderMade 的 SDK,如下所示:
!pip install tradermade
我们使用安装的软件开发套件(SDK)来检索外汇(forex)对的每小时时间序列数据。随后的 Python 代码示例了获取 EUR/USD 货币对的数据。
import tradermade as tm import pandas as pd def fetch_forex_data(api_key, currency, start_date, end_date, interval="hourly", fields=["open", "high", "low", "close"]): # Set API key tm.set_rest_api_key(api_key) # Fetch the data data = tm.timeseries(currency=currency, start=start_date, end=end_date, interval=interval, fields=fields) # Convert data directly to DataFrame df = pd.DataFrame(data) # Convert 'date' column to datetime df["date"] = pd.to_datetime(df["date"]) # Set 'date' as the index df.set_index("date", inplace=True) return df # Adjust as needed api_key = "YOUR TRADERMADE API KEY" currency = "EURUSD" start_date = "2024-11-01-00:00" end_date = "2024-11-27-05:12" # Fetch the data and display the first few rows forex_data = fetch_forex_data(api_key, currency, start_date, end_date) forex_data = forex_data.rename(columns={"open": "Open", "high": "High", "low": "Low", "close": "Close"}) forex_data.head()
回测数据采集和预处理已顺利完成。
简单 SMA 交叉策略的实施和回测
本节利用回测 Python 库来定义和评估我们的 SMA 交叉策略。对于那些不熟悉回测库的人来说,它被认为是用于回测技术交易策略的一个突出且强大的 Python 框架。这些策略涵盖广泛,包括 SMA 交叉、RSI 交叉、均值反转策略、动量策略等。
import numpy as np from backtesting import Backtest, Strategy from backtesting.lib import crossover from backtesting.test import SMA # Define the SMA crossover trading strategy class SMACrossoverStrategy(Strategy): def init(self): # Calculate shorter-period SMAs for limited data price = self.data.Close self.short_sma = self.I(SMA, price, 20) # Short window self.long_sma = self.I(SMA, price, 60) # Long window def next(self): # Check for crossover signals if crossover(self.short_sma, self.long_sma): self.buy() elif crossover(self.long_sma, self.short_sma): self.sell() # Initialize and run the backtest bt = Backtest(forex_data, SMACrossoverStrategy, cash=10000, commission=.002) result = bt.run() # Display the backtest results print("Backtest Results:") print(result)
该策略采用两条移动平均线:20 周期 SMA 和 60 周期 SMA。当短期 SMA 超过长期 SMA 时,买入订单被执行。相反,当短期 SMA 跌破长期 SMA 时,会触发卖单。在 25 天的交易期内,这种简单的策略通过 6 笔交易获得了 243 美元的利润。
股票和 SMA 曲线分析
后续Python代码评估SMA交叉策略的性能。 SMA 有助于价格趋势的可视化并识别产生买入/卖出信号的交叉点。股票曲线作为绩效指标,说明这些信号对投资组合增长的影响。
通过整合两条曲线,交易者可以轻松观察交叉事件与投资组合价值变化之间的相关性,从而为 SMA 交叉策略的有效性提供重要见解。
Plotly 用于可视化净值和 SMA 曲线,使交易者能够有效评估其策略的盈利能力。
!pip install tradermade
结束语
成功的回测需要准确、高频的数据,而 TraderMade 的 API 有助于无缝集成。无论您的经验水平如何 - 无论您是探索不同策略的新手还是开发复杂模型的经验丰富的分析师 - 公司的产品都提供必要的工具。
您准备好将 TraderMade 的 API 纳入您的工作流程了吗?今天就开始您的旅程,将您的概念变为现实。
以上是像专业人士一样使用外汇 API 进行回测的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。 Python以简洁和强大的生态系统着称,C 则以高性能和底层控制能力闻名。

两小时内可以学到Python的基础知识。1.学习变量和数据类型,2.掌握控制结构如if语句和循环,3.了解函数的定义和使用。这些将帮助你开始编写简单的Python程序。

Python在游戏和GUI开发中表现出色。1)游戏开发使用Pygame,提供绘图、音频等功能,适合创建2D游戏。2)GUI开发可选择Tkinter或PyQt,Tkinter简单易用,PyQt功能丰富,适合专业开发。

2小时内可以学会Python的基本编程概念和技能。1.学习变量和数据类型,2.掌握控制流(条件语句和循环),3.理解函数的定义和使用,4.通过简单示例和代码片段快速上手Python编程。

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。

要在有限的时间内最大化学习Python的效率,可以使用Python的datetime、time和schedule模块。1.datetime模块用于记录和规划学习时间。2.time模块帮助设置学习和休息时间。3.schedule模块自动化安排每周学习任务。

Python在web开发、数据科学、机器学习、自动化和脚本编写等领域有广泛应用。1)在web开发中,Django和Flask框架简化了开发过程。2)数据科学和机器学习领域,NumPy、Pandas、Scikit-learn和TensorFlow库提供了强大支持。3)自动化和脚本编写方面,Python适用于自动化测试和系统管理等任务。

Python在自动化、脚本编写和任务管理中表现出色。1)自动化:通过标准库如os、shutil实现文件备份。2)脚本编写:使用psutil库监控系统资源。3)任务管理:利用schedule库调度任务。Python的易用性和丰富库支持使其在这些领域中成为首选工具。
