金融市場的動態本質需要利用可靠的數據來開發和驗證交易策略。在回測環境中有效地整合高品質資料對於交易者和分析師來說至關重要。 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中文網其他相關文章!

ArraySareBetterForlement-WiseOperationsDuetofasterAccessCessCessCessCessCessCessCessAndOptimizedImplementations.1)ArrayshaveContiguucuulmemoryfordirectAccesscess.2)列出sareflexible butslible butslowerduetynemicizing.3)

在NumPy中进行整个数组的数学运算可以通过向量化操作高效实现。1)使用简单运算符如加法(arr 2)可对数组进行运算。2)NumPy使用C语言底层库,提升了运算速度。3)可以进行乘法、除法、指数等复杂运算。4)需注意广播操作,确保数组形状兼容。5)使用NumPy函数如np.sum()能显著提高性能。

在Python中,向列表插入元素有兩種主要方法:1)使用insert(index,value)方法,可以在指定索引處插入元素,但在大列表開頭插入效率低;2)使用append(value)方法,在列表末尾添加元素,效率高。對於大列表,建議使用append()或考慮使用deque或NumPy數組來優化性能。

tomakeapythonscriptexecutableonbothunixandwindows:1)addashebangline(#!/usr/usr/bin/envpython3)Andusechmod xtomakeitexecutableonix.2)onWindows,確保pytythonisinstalledandassionstalledandassociatedwith.pyfiles,oruseabatchfile(runun.batchfile(runitter)(rugitty.batt)

當遇到“commandnotfound”錯誤時,應檢查以下幾點:1.確認腳本存在且路徑正確;2.檢查文件權限,必要時使用chmod添加執行權限;3.確保腳本解釋器已安裝並在PATH中;4.驗證腳本開頭的shebang行是否正確。這樣做可以有效解決腳本運行問題,確保編碼過程順利進行。

ArraySareAryallyMoremory-Moremory-forigationDataDatueTotheIrfixed-SizenatureAntatureAntatureAndirectMemoryAccess.1)arraysStorelelementsInAcontiguxufulock,ReducingOveringOverheadHeadefromenterSormetormetAdata.2)列表,通常

ToconvertaPythonlisttoanarray,usethearraymodule:1)Importthearraymodule,2)Createalist,3)Usearray(typecode,list)toconvertit,specifyingthetypecodelike'i'forintegers.Thisconversionoptimizesmemoryusageforhomogeneousdata,enhancingperformanceinnumericalcomp

Python列表可以存儲不同類型的數據。示例列表包含整數、字符串、浮點數、布爾值、嵌套列表和字典。列表的靈活性在數據處理和原型設計中很有價值,但需謹慎使用以確保代碼的可讀性和可維護性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

Dreamweaver CS6
視覺化網頁開發工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中