AWS Builder 文章

使用 Nasdaq、S&P 500、Dow、AgentCore 與 Strands 建立相對於基準的 Amazon 進出場時機系統

相對於基準的 AMZN 研究,會將訊號品質與指數 Beta 值、總體環境、流動性風險以及投資組合曝險進行對齊。本範例使用 Nasdaq 100、S&P 500 與 Dow Jones 資料建立僅做多的 Backtrader 範例,並透過 Amazon Bedrock AgentCore 與 Strands Agents 進行編排,為審閱委員會提供可稽核、可重複、符合金融服務業等級的投資研究工作流程與進出場時機證據。

AMZN 回測文章系列

免責聲明

教育目的: 此處內容僅聚焦於合法的財務規劃教育,目的在於提升對概念、方法論與分析方式的理解,並不推廣任何特定證券、策略或市場參與決策。

非個人化建議: 本教育材料在任何情況下均不提供個人化推薦、招攬或保證,也不明示、暗示或以其他方式表示對未來績效、結果或報酬有任何保證。

資料限制: 由於沙盒(Sandbox)環境中無法取得即時資料,上傳結果依賴確定性的離線資料,因此輸出應解讀為示範性範例,而非即時分析。

僅做多範圍: 所有研究語言皆僅限於做多,不包含選擇權、賣權、放空或看跌策略,以確保討論整體聚焦於傳統資產持有與正向方向性曝險概念。


開場:在市場脈絡中衡量 AMZN

一個僅做多的 Amazon 部位不應只用自身的價格路徑來評估。AMZN 需要與成長型基準、廣泛美股曝險,以及較低波動的替代選項共同競爭資本。因此,本文將 Nasdaq 100、S&P 500 與 Dow Jones 的市場脈絡視為進出場時機證據的一部分,而不是股票圖表周圍的裝飾。


定位

本文的語氣是一位具備基準意識的投資組合操作負責人。文章要探討的是:AMZN 進出場時機規則是否相對於相關市場環境改善了參與品質?基準篩選器是否降低了較弱的進場點?以及委員會是否能分辨個股專屬證據與廣泛市場 Beta 值的差異?


值得解決的客戶問題

相對於基準的研究,可以避免將一張獲利的 AMZN 圖表變成缺乏支撐的能力主張。投資團隊需要知道某個規則是否相對於 Nasdaq 100 動能、S&P 500 市場狀態(Regime)與 Dow 風險情緒增加了有用的進出場時機證據。風險團隊也需要同樣的比較,以理解結果究竟是由較低曝險、較低回撤,還是較佳的相對強度所驅動。


此工作流程支援的業務成果

此工作流程協助委員會用相對而非孤立的方式討論 AMZN 進出場時機。它支援基準篩選器測試(Benchmark-filter testing)、日曆對齊的資料審閱(Calendar-aligned data review)、相對強度解讀(Relative strength interpretation),以及更清楚地說明某策略究竟降低了市場風險、改善了進場品質,還是只是花更多時間持有現金。


目錄

  • 第 1 部分:開場脈絡與文章焦點 介紹 AMZN 僅做多進出場時機問題、文章焦點,以及在討論任何配置決策前先建立證據的業務理由。本部分協助讀者理解交易語氣、市場脈絡,以及為何此工作流程屬於教育性而非顧問建議。
  • 第 2 部分:代理式架構與治理控制 說明 AgentCore 與 Strands 的運作模型,包括協調器、資料代理、策略代理、風險審閱者、治理檢查器、工具權限、稽核產出物與人工核准邊界。本部分讓架構在程式碼與策略紀錄出現前更容易閱讀。
  • 第 3 部分:資料、基準與回測框架 涵蓋真實或經核准的資料輸入、基準脈絡、OHLCV(開高低收量)對齊、資料血緣,以及可重複使用的回測框架。本部分展示 AMZN、Nasdaq 100、S&P 500 與 Dow Jones 脈絡如何成為可審閱的研究證據。
  • 第 4 部分:相對於基準的策略框架與程式邏輯 說明本文策略家族背後的實作框架,包括進場邏輯、出場邏輯、部位規模控管、執行分離、風險控制與白話程式碼審閱。本部分協助讀者在不失去治理脈絡的情況下檢視策略範例。
  • 第 5 部分:交易台帳與部位管理證據 聚焦於交易台帳、部位管理證據、周轉率、回撤審閱,以及為何每一次模擬的進場與出場都必須可追溯。本部分將回測從圖表轉換成可審閱的決策序列。
  • 第 6 部分:治理、風險審閱與機構挑戰 彙整機構審閱指引、模型風險問題、挑戰流程、稽核軌跡預期、正式環境就緒度、參數敏感度、失效模式與委員會證據標準。本部分將治理內容集中於策略紀錄之前,以提升可讀性。
  • 第 7 部分:策略目錄與閱讀方法 呈現策略目錄與閱讀策略紀錄的方法。本部分在治理概念與個別策略範例之間提供簡短的導覽銜接。
  • 第 8 部分:策略紀錄 11-15:相對強度、市場狀態、Dow、Keltner 與 ADX 將策略 11-15 分組在一個可讀章節中,讓讀者審閱本文的五個策略紀錄,而不必將每個策略都變成獨立的頂層目錄項目。焦點在於研究目的、程式邏輯、風險控制與交易台帳解讀。
  • 第 9 部分:執行委員會摘要與口頭收尾 將技術研究轉換為主管與委員會語言。本部分總結已測試內容、仍不確定事項、為何工作流程不能取代人的問責,以及如何負責任地談論結果。
  • 第 10 部分:來源、資料註記與最終揭露 將來源、資料註記、限制與最終揭露語言放在一起。本部分釐清資料假設、時間窗口、AWS 設計參考,以及文章的教育邊界。

第 1 部分:開場脈絡與文章焦點

相關摘要: 介紹 AMZN 僅做多進出場時機問題、文章焦點,以及在討論任何配置決策前先建立證據的業務理由。本部分協助讀者理解交易語氣、市場脈絡,以及為何此工作流程屬於教育性而非顧問建議。

開場與市場脈絡

相關摘要: 建立 AMZN 進出場時機問題,說明為何回測屬於機構審閱範疇,並將文章定位為「證據生成」而非「市場預測」。本節將一個獲利的僅做多部位連結到風險紀律、基準意識、揭露語言與符合委員會標準的溝通。

一篇強而有力的文章應從交易問題開始,而不是從軟體開始。一個僅做多的 Amazon 部位可能獲利,卻仍可能受困於進出場時機薄弱、出場紀律不清楚,以及曝險過大。因此,本節將回測定位為一種治理工具,協助交易台在討論配置前先說明決策。

先前交付說明的實用內容在此被消化為:用證據說話、明確說出假設、避免確定性語氣。受眾應聽到工作流程測試了什麼、哪些資料支撐它、可能失敗之處,以及哪些仍屬於人的決策。這比在結尾附上重複的實務段落更有力量。

市場脈絡非常重要,因為 AMZN 受到成長型需求、廣泛股市狀態、消費者預期、雲端情緒、流動性與估值壓力的影響。具備基準意識能幫助交易員避免宣稱每一分收益都來自個股專屬的技術。


系列焦點

本文聚焦於相對於基準的訊號、市場篩選器與受風險控制的參與。它是四篇技術系列文章的一部分。結構已達可發布狀態,且避免暴露草稿指令。它保留了寫作指導的意圖,同時將訊息轉化為面向金融服務受眾的精煉章節。


業務問題:Timing 是治理問題

Amazon 部位可能在長期區間獲利,卻仍管理不佳。因此,機構需要「流程語言」,而不僅僅是「績效語言」。研究團隊應展示買了什麼、何時買、為何買、何時賣、為何賣,以及該決策相對於主要股票基準的行為。代理式(Agentic)工作流程讓這些證據更容易產生,也更容易被挑戰。


第 2 部分:代理式架構與治理控制

相關摘要: 說明 AgentCore 與 Strands 的運作模型,包括協調器、資料代理、策略代理、風險審閱者、治理檢查器、工具權限、稽核產出物與人工核准邊界。本部分讓架構在程式碼與策略紀錄出現前更容易閱讀。

代理式研究架構

相關摘要: 說明 Bedrock AgentCore、Strands Agents、資料工具、策略生成、Backtrader 執行與結果摘要如何形成受控工作流程。本節強調工具權限、職責分離、稽核產出物,以及在任何真實投資組合決策前的人為核准。

代理式架構會分離職責。協調器(Orchestrator)接收請求,資料工具驗證 OHLCV 輸入,策略生成器準備規則邏輯,Backtrader 工具執行模擬,風險審閱者彙總回撤與交易行為,治理檢查器則驗證政策邊界。

被消化後的交付規則以架構紀律的形式呈現:每個代理人的行動都應產生證據。一個有用的執行會留下資料引用、程式碼版本、參數、時間戳記、交易台帳、量化指標、圖表路徑與異常紀錄。這些產出物讓投資、技術與風險團隊能夠審閱輸出結果。

AgentCore 與 Strands Agents 可以加速研究循環,但有限授權至關重要。系統可以執行經核准的工具並準備備忘錄;它不應決定適用性、核准資本配置,或將歷史回測轉換為績效保證。


使用 Bedrock AgentCore 與 Strands Agents 的 代理式架構

此架構將判斷與自動化分離。量化協調器(Quant Orchestrator)接收研究請求並協調專業工具。策略生成器(Strategy Generator)撰寫或擷取 Backtrader 策略類別。市場資料工具(Market Data Tool)擷取 AMZN^NDX^GSPC^DJI 的每日 OHLCV 資料。風險摘要代理人(Risk Summary Agent)計算報酬、回撤、曝險、交易次數、勝率、獲利因子,以及相對於基準的行為。治理代理人(Governance Agent)檢查政策邊界:僅做多普通股、無衍生性商品、無未經證實的績效保證。

此設計適合機構研究,因為它建立了可追溯性。模型不會暗中決定投資組合。相反地,代理人呼叫經核准的工具、記錄輸入與輸出,並回傳可由人工委員會挑戰的備忘錄。程式碼範例使用 Backtrader,因為它提供了事件驅動的研究引擎、技術指標、分析器、訂單處理與交易統計。


代理執行階段草圖


第 3 部分:資料、基準與回測框架

相關摘要: 涵蓋真實或經核准的資料輸入、基準脈絡、OHLCV 對齊、資料血緣,以及可重複使用的回測框架。本部分展示 AMZN、Nasdaq 100、S&P 500 與 Dow Jones 脈絡如何成為可審閱的研究證據。

真實市場資料與 Benchmarks

相關摘要: 定義 AMZN 作為研究資產,並定義 Nasdaq 100、S&P 500 與 Dow Jones Industrial Average 作為基準脈絡。本節說明調整後 OHLCV 資料、日曆對齊、資料血緣、公司權益變動處理(Corporate-action handling),以及為何不應使用虛構的市場價格。

資料血緣(Data lineage)是一項交易控制。調整後價格、公司權益變動、缺失值、交易日曆、數據商變更與基準對齊,都可能改變進出場時機規則的表面行為。本節將資料工程視為投資治理的一部分,而不是背景任務。

AMZN 是可交易資產。Nasdaq 100、S&P 500 與 Dow Jones Industrial Average 分別提供成長型狀態、廣泛股市風險與藍籌股情緒的不同視角。工作流程應記錄為何使用每個基準,以及每個基準可能在哪裡產生誤導。

本文避免虛構價格與缺乏支撐的績效宣稱。若無法擷取資料,應說明限制。若使用正式環境資料,資料集快照與調整政策應與回測產出物一併保存。


真實資料設定

範例使用 Amazon 普通股作為可交易資產,並使用三個基準指數作為脈絡:Nasdaq 100 代表成長型與科技股環境,S&P 500 代表廣泛美股環境,Dow Jones Industrial Average 代表藍籌股風險情緒。可執行的自動化套件在您的環境中執行時,會透過 yfinance 下載真實每日資料。本文不虛構市場價格或捏造績效數字。


第 4 部分:相對於基準的策略框架與程式邏輯

相關摘要: 說明本文策略家族背後的實作框架,包括進場邏輯、出場邏輯、部位規模控管、執行分離、風險控制與白話程式碼審閱。本部分協助讀者在不失去治理脈絡的情況下檢視策略範例。

相對於基準的策略實作與程式邏輯

相關摘要: 介紹本文使用的策略範例,並說明每個規則如何建立進場與出場條件。本節將訊號邏輯與執行邏輯分離,並將程式碼翻譯成白話的部位管理控制項。

策略實作應讀起來像一張控制地圖。進場邏輯說明為何開立多頭部位;出場邏輯說明為何平倉;部位規模邏輯說明承擔多少曝險;風險邏輯說明流程何時覆寫訊號。這讓非開發者也能理解程式碼審閱。

訊號邏輯與執行邏輯應保持分離。訊號可以辨識有利條件,但執行引擎必須檢查既有部位狀態(Position state)、可用現金、手續費、風險停損點(Risk stops)與目標出場點。分離可改善可稽核性,並降低隱藏行為。

本文將程式碼說明放在主要策略討論內,而不是作為分離的附註。每個策略應依其交易台帳、回撤、周轉率、基準行為與操作可行性進行評估,而不是只看標題式的報酬率。

本文特別聚焦於相對於基準的訊號、Nasdaq 確認、S&P 市場狀態篩選器、Dow 風險檢查與相對強度解讀。因此,程式碼審閱應評估該策略家族是否支援該業務目標,以及其交易紀錄是否足以向機構審閱者進行解釋。


第 5 部分:交易台帳與部位管理證據

相關摘要: 聚焦於交易台帳、部位管理證據、周轉率、回撤審閱,以及為何每一次模擬的進場與出場都必須可追溯。本部分將回測從圖表轉換成可審閱的決策序列。

相對強度紀錄與部位管理

相關摘要: 說明交易台帳如何透過記錄進場、出場、價格、部位規模、已實現損益、訊號原因、回撤行為、周轉率與風險調整後審閱,來支援部位管理決策。

交易台帳(Trade ledger)是交易台的記憶系統。它記錄進場日期、出場日期、價格、部位規模、總損益、進場原因與出場原因。沒有台帳,策略就只是一個故事。有了台帳,委員會可以檢查模擬決策的實際序列。

回撤審閱必須先於報酬慶祝。策略可能在總報酬上看起來具吸引力,卻難以在真實壓力中持有。台帳與回撤路徑協助審閱者判斷該規則是否符合投資授權與風險承受度。

先前實務附註的訊息被消化進審閱流程中:在得出任何結論之前,先說明資料來源、日期範圍、策略規則、基準脈絡、風險指標與交易台帳。本文將其保留在部位管理章節內,因為它改變了證據的閱讀方式。


二十年交易歷史結構(Schema)

欄位 意義
進場日期 (entry_date) 模擬 AMZN 多頭部位開立時的交易日期
出場日期 (exit_date) 模擬 AMZN 多頭部位平倉時的交易日期
進場價格 (entry_price) Backtrader 模擬的進場價格
出場價格 (exit_price) Backtrader 模擬的出場價格
部位規模 (size) 模擬部位中的 AMZN 股數
總損益 (gross_pnl) 扣除稅收及額外實作成本前的總損益
進場原因 (entry_reason) 觸發進場的訊號標籤
出場原因 (exit_reason) 觸發出場的訊號、目標或風險控制標籤

交易歷史非常重要,因為它能防止模糊的敘事。委員會可以檢查獲利是來自多次可重複的交易還是某個異常期間、出場是否在熊市狀態中降低了傷害、基準篩選器是否有幫助,以及周轉率是否能承受現實中的實作成本。


第 6 部分:治理、風險審閱與機構挑戰

相關摘要: 彙整機構審閱指引、模型風險問題、挑戰流程、稽核軌跡預期、正式環境就緒度、參數敏感度、失效模式與委員會證據標準。本部分將治理內容集中於策略紀錄之前,以提升可讀性。

示範模式;請針對正式環境調整 IAM、網路、核准與日誌記錄。

from bedrock_agentcore import BedrockAgentCoreApp
from strands import Agent, tool

app = BedrockAgentCoreApp()

ALLOWED = {
    "breakout_55": "Breakout55Strategy",
    "ema_cross": "EMACrossStrategy",
    "multi_factor": "MultiFactorEnsembleStrategy",
}

@tool
def validate_policy(strategy_key: str, side: str, derivatives: bool) -> dict:
    if side.lower() != "long_only":
        return {"ok": False, "reason": "Only long-only equity research is allowed."}
    if derivatives:
        return {"ok": False, "reason": "Derivative instruments are outside this workflow."}
    if strategy_key not in ALLOWED:
        return {"ok": False, "reason": "Strategy is not approved in the registry."}
    return {"ok": True, "reason": "Policy accepted."}

@tool
def run_registered_backtest(strategy_key: str) -> dict:
    return {"status": "submitted", "strategy": ALLOWED[strategy_key], "artifact_prefix": f"s3://research/amzn/{strategy_key}/"}

agent = Agent(tools=[validate_policy, run_registered_backtest])

@app.entrypoint
def invoke(payload):
    return agent(payload.get("request", "Run approved AMZN long-only backtest."))

if __name__ == "__main__":
    app.run()

主文應用細節 1:基準選擇紀律

相對於基準的研究從「基準選擇」開始。Nasdaq 100、S&P 500 與 Dow Jones Industrial Average 回答不同的問題。本文說明每個指數為何被使用、它確認了什麼,以及它可能在哪裡誤導讀者。


主文應用細節 2:相對強度與絕對報酬

股票可以上漲,卻仍可能輸給其機會成本集合(Opportunity set)。相對強度詢問 AMZN 是否相對於科技股與廣泛股票替代方案更值得占有一席之地。這會將對話從單純的獲利轉向有紀律的資本配置。


主文應用細節 3:S&P 環境篩選器審閱

S&P 500 市場狀態篩選器是一個廣泛的風險透鏡。它可以幫助避開較弱的市場環境,但也可能排除快速的復甦。本文描述了這種權衡(Tradeoff),使基準篩選器被視為一種假設,而不是不容質疑的真理。


主文應用細節 4:Dow 風險情緒脈絡

Dow Jones 的確認並非高成長單一股票的完美匹配,但它可以顯示更廣泛的風險胃納(Risk appetite)。交易員應說明此輸入是一個脈絡變數(Context variable),且應與其他市場狀態定義一同進行測試。


主文應用細節 5:基準日曆對齊

相對比較需要日曆對齊(Calendar alignment)。若 AMZN 與基準序列未對齊,訊號可能會被位移或扭曲。本文將這個資料工程重點帶入主要內容,因為基準研究高度依賴乾淨的時間對齊。


主文應用細節 6:委員會對相對結果的解讀

委員會應詢問:相對於基準的邏輯是降低了回撤、改善了進場時機,還是只是降低了曝險?較低的報酬搭配較低的回撤在某個投資授權中可能可以接受,在另一個投資授權中則可能不可接受。本文讓這個投資授權問題保持可見。


機構審閱視角 1:證據套件設計

完整的證據套件(Evidence package)應包含研究問題、資料來源、調整政策、標的清單、程式碼版本、參數集、交易台帳、回撤輪廓(Profile)、指標摘要、異常日誌與揭露語言。這讓回測可在投資、風險、技術與法規遵循團隊之間被審閱。


機構審閱視角 2:人工挑戰流程

當工作流程能邀請挑戰時,它才算成功。審閱者應詢問資料是否乾淨、規則是否具備經濟合理解釋(Economic rationale)、基準是否適當、參數是否穩定、成本是否切合實際,以及結論是否局限於證據所支持的範圍。


機構審閱視角 3:僅做多政策邊界

本文將政策邊界保持為「僅做多」。該邊界讓工作流程聚焦於進出場時機、部位規模控管、出場與證據品質,而不是複雜的金融工具建構。它也給了治理代理人一條明確的規則,用於拒絕缺乏支撐的請求。


機構審閱視角 4:圖表與台帳解讀

圖表很有用,但台帳才是稽核軌跡。資產淨值曲線(Equity curve)可能隱藏集中度風險,單一報酬數字也可能隱藏高周轉率。因此,本文將圖表、台帳與指標視為互補證據,而非可互換的證明。


機構審閱視角 5:正式環境就緒檢查清單

筆記本(Notebook)不是正式環境。正式環境就緒度(Production readiness)需要受控的資料存取、版本控管的程式碼、參數紀錄、可重複的執行、異常處理、產出物儲存、核准工作流程與監控。代理式工具應支援這些控制項,而不是繞過它們。


機構審閱視角 6:失效模式揭露

專業文章應及早指出失效模式。趨勢規則可能會遭到來回洗盤(Whipsaw),動能可能會消耗殆盡,波動度篩選器可能會落後,基準篩選器也可能排除快速復甦。點名這些風險能提高可信度,並協助委員會準備有用的問題。


第 7 部分:策略目錄與閱讀方法

相關摘要: 呈現策略目錄與閱讀策略紀錄的方法。本部分在治理概念與個別策略範例之間提供簡短的導覽銜接。

閱讀紀錄前的策略審閱方法

閱讀策略紀錄前,對每個規則使用相同的證據序列:確認資料、辨識進場條件、辨識出場條件、檢查部位規模假設、審閱回撤、比較基準行為,並記錄汲取的教訓(Lesson learned)。這句話將重複的交付說明轉化為文章內使用的方法。


本文策略目錄

  • 策略 11:RelativeStrengthNDX 策略 — AMZN 相對強度對比 Nasdaq 100。
  • 策略 12:MarketRegimeSPX 策略 — 結合 AMZN 動能的 S&P 500 市場狀態篩選器。
  • 策略 13:DowRiskFilter 策略 — 結合 AMZN 進場訊號的 Dow Jones 趨勢篩選器。
  • 策略 14:KeltnerChannel 策略 — Keltner 軌道趨勢進場。
  • 策略 15:ADXTrend 策略 — 經 ADX 確認的趨勢參與。

第 8 部分:策略紀錄 11-15:相對強度、市場狀態、Dow、Keltner 與 ADX

相關摘要: 將策略 11-15 分組在一個可讀章節中,讓讀者審閱本文的五個策略紀錄,而不必將每個策略都變成獨立的頂層目錄項目。焦點在於研究目的、程式邏輯、風險控制與交易台帳解讀。

策略 11:RelativeStrengthNDX 策略

Strategy 11 chart for RelativeStrengthNDXStrategy
Strategy 11: RelativeStrengthNDXStrategy

研究目的。 AMZN 相對強度對比 Nasdaq 100。此策略被寫作僅做多 AMZN 進出場時機範例。它可以進入多頭部位、平掉多頭部位,或維持現金。它不建立空頭曝險,也不使用選擇權、賣權、交換合約(Swaps)、期貨(Futures)、保證金交易(Margin)或其他衍生性金融工具。

部位管理審閱。 針對 RelativeStrengthNDX 策略,交易台應評估 AMZN 相對強度對比 Nasdaq 100 是否在考量成本、回撤與基準脈絡後仍能增加有用的進出場時機證據。審閱應檢查規則交易頻率、出場是否可理解、持有期間是否符合投資授權,以及訊號是否能提供超越在每個市場狀態中單純持有 AMZN 的洞見。

Backtrader 程式碼。 將此類別加在可重複使用的測試套件(Harness)下方,然後在受控的研究環境中執行 run_backtest(RelativeStrengthNDX策略, "RelativeStrengthNDX策略")

class RelativeStrengthNDXStrategy(TradeLoggerMixin, bt.Strategy):
    params = dict(rs_period=90, risk_per_trade=0.08)
    def __init__(self):
        TradeLoggerMixin.__init__(self)
        self.rs = self.data0.close / self.data1.close
        self.rs_ma = bt.ind.SMA(self.rs, period=self.p.rs_period)
    def next(self):
        self.risk_exit_check()
        if not self.position and self.rs[0] > self.rs_ma[0] and self.rs[-1] <= self.rs_ma[-1]:
            self.buy_long("amzn_relative_strength_vs_ndx")
        elif self.position and self.rs[0] < self.rs_ma[0]:
            self.close_long("relative_strength_fade")

代理人對 RelativeStrengthNDX 策略的審閱應總結此特定策略執行的訊號路徑、台帳完整性、風險控制活動與僅做多政策狀態。


策略 12:MarketRegimeSPX 策略

Strategy 12 chart for MarketRegimeSPXStrategy
Strategy 12: MarketRegimeSPXStrategy

研究目的。 結合 AMZN 動能的 S&P 500 市場狀態篩選器。此策略被寫作僅做多 AMZN 進出場時機範例。它可以進入多頭部位、平掉多頭部位,或維持現金。它不建立空頭曝險,也不使用選擇權、賣權、交換合約、期貨、保證金交易或其他衍生性金融工具。

部位管理審閱。 針對 MarketRegimeSPX 策略,交易台應評估 S&P 500 市場狀態篩選器結合 AMZN 動能是否在考量成本、回撤與基準脈絡後仍能增加有用的進出場時機證據。審閱應檢查規則交易頻率、出場是否可理解、持有期間是否符合投資授權,以及訊號是否能提供超越在每個市場狀態中單純持有 AMZN 的洞見。

Backtrader 程式碼。 將此類別加在可重複使用的測試套件下方,然後在受控的研究環境中執行 run_backtest(MarketRegimeSPX策略, "MarketRegimeSPX策略")

class MarketRegimeSPXStrategy(TradeLoggerMixin, bt.Strategy):
    params = dict(spx_period=200, amzn_period=50, risk_per_trade=0.08)
    def __init__(self):
        TradeLoggerMixin.__init__(self)
        self.spx_ma = bt.ind.SMA(self.data2.close, period=self.p.spx_period)
        self.amzn_ma = bt.ind.SMA(self.data0.close, period=self.p.amzn_period)
    def next(self):
        self.risk_exit_check()
        regime_ok = self.data2.close[0] > self.spx_ma[0]
        if not self.position and regime_ok and self.data0.close[0] > self.amzn_ma[0]:
            self.buy_long("spx_regime_amzn_momentum")
        elif self.position and (not regime_ok or self.data0.close[0] < self.amzn_ma[0]):
            self.close_long("regime_or_momentum_exit")

代理人對 MarketRegimeSPX 策略的審閱應總結此特定策略執行的訊號路徑、台帳完整性、風險控制活動與僅做多政策狀態。


策略 13:DowRiskFilter 策略

Strategy 13 chart for DowRiskFilterStrategy
Strategy 13: DowRiskFilterStrategy

研究目的。 結合 AMZN 進場訊號的 Dow Jones 趨勢篩選器。此策略被寫作僅做多 AMZN 進出場時機範例。它可以進入多頭部位、平掉多頭部位,或維持現金。它不建立空頭曝險,也不使用選擇權、賣權、交換合約、期貨、保證金交易或其他衍生性金融工具。

部位管理審閱。 針對 DowRiskFilter 策略,交易台應評估 Dow Jones 趨勢篩選器結合 AMZN 進場訊號是否在考量成本、回撤與基準脈絡後仍能增加有用的進出場時機證據。審閱應檢查規則交易頻率、出場是否可理解、持有期間是否符合投資授權,以及訊號是否能提供超越在每個市場狀態中單純持有 AMZN 的洞見。

Backtrader 程式碼。 將此類別加在可重複使用的測試套件下方,然後在受控的研究環境中執行 run_backtest(DowRiskFilter策略, "DowRiskFilter策略")

class DowRiskFilterStrategy(TradeLoggerMixin, bt.Strategy):
    params = dict(dow_period=150, amzn_fast=20, amzn_slow=80, risk_per_trade=0.07)
    def __init__(self):
        TradeLoggerMixin.__init__(self)
        self.dow_ma = bt.ind.EMA(self.data3.close, period=self.p.dow_period)
        self.fast = bt.ind.EMA(self.data0.close, period=self.p.amzn_fast)
        self.slow = bt.ind.EMA(self.data0.close, period=self.p.amzn_slow)
        self.cross = bt.ind.CrossOver(self.fast, self.slow)
    def next(self):
        self.risk_exit_check()
        if not self.position and self.data3.close[0] > self.dow_ma[0] and self.cross[0] > 0:
            self.buy_long("dow_risk_filter_amzn_cross")
        elif self.position and self.cross[0] < 0:
            self.close_long("amzn_cross_exit")

代理人對 DowRiskFilter 策略的審閱應總結此特定策略執行的訊號路徑、台帳完整性、風險控制活動與僅做多政策狀態。


策略 14:KeltnerChannel 策略

Strategy 14 chart for KeltnerChannelStrategy
Strategy 14: KeltnerChannelStrategy

研究目的。 Keltner 軌道趨勢進場。此策略被寫作僅做多 AMZN 進出場時機範例。它可以進入多頭部位、平掉多頭部位,或維持現金。它不建立空頭曝險,也不使用選擇權、賣權、交換合約、期貨、保證金交易或其他衍生性金融工具。

部位管理審閱。 針對 KeltnerChannel 策略,交易台應評估 Keltner 軌道趨勢進場是否在考量成本、回撤與基準脈絡後仍能增加有用的進出場時機證據。審閱應檢查規則交易頻率、出場是否可理解、持有期間是否符合投資授權,以及訊號是否能提供超越在每個市場狀態中單純持有 AMZN 的洞見。

Backtrader 程式碼。 將此類別加在可重複使用的測試套件下方,然後在受控的研究環境中執行 run_backtest(KeltnerChannel策略, "KeltnerChannel策略")

class KeltnerChannelStrategy(TradeLoggerMixin, bt.Strategy):
    params = dict(ema_period=20, atr_period=10, mult=1.8, risk_per_trade=0.08)
    def __init__(self):
        TradeLoggerMixin.__init__(self)
        self.ema = bt.ind.EMA(self.data0.close, period=self.p.ema_period)
        self.atr = bt.ind.ATR(self.data0, period=self.p.atr_period)
        self.upper = self.ema + self.p.mult * self.atr
    def next(self):
        self.risk_exit_check()
        if not self.position and self.data0.close[0] > self.upper[0]:
            self.buy_long("keltner_upper_break")
        elif self.position and self.data0.close[0] < self.ema[0]:
            self.close_long("keltner_ema_exit")

代理人對 KeltnerChannel 策略的審閱應總結此特定策略執行的訊號路徑、台帳完整性、風險控制活動與僅做多政策狀態。


策略 15:ADXTrend 策略

Strategy 15 chart for ADXTrendStrategy
Strategy 15: ADXTrendStrategy

研究目的。 經 ADX 確認的趨勢參與。此策略被寫作僅做多 AMZN進出場時機範例。它可以進入多頭部位、平掉多頭部位,或維持現金。它不建立空頭曝險,也不使用選擇權、賣權、交換合約、期貨、保證金交易或其他衍生性金融工具。

部位管理審閱。 針對 ADXTrend 策略,交易台應評估經 ADX 確認的趨勢參與是否在考量成本、回撤與基準脈絡後仍能增加有用的進出場時機證據。審閱應檢查規則交易頻率、出場是否可理解、持有期間是否符合投資授權,以及訊號是否能提供超越在每個市場狀態中單純持有 AMZN 的洞見。

Backtrader 程式碼。 將此類別加在可重複使用的測試套件下方,然後在受控的研究環境中執行 run_backtest(ADXTrend策略, "ADXTrend策略")

class ADXTrendStrategy(TradeLoggerMixin, bt.Strategy):
    params = dict(adx_period=14, adx_min=25, ma_period=50, risk_per_trade=0.08)
    def __init__(self):
        TradeLoggerMixin.__init__(self)
        self.adx = bt.ind.ADX(self.data0, period=self.p.adx_period)
        self.plus_di = bt.ind.PlusDI(self.data0, period=self.p.adx_period)
        self.minus_di = bt.ind.MinusDI(self.data0, period=self.p.adx_period)
        self.ma = bt.ind.SMA(self.data0.close, period=self.p.ma_period)
    def next(self):
        self.risk_exit_check()
        if not self.position and self.adx[0] > self.p.adx_min and self.plus_di[0] > self.minus_di[0] and self.data0.close[0] > self.ma[0]:
            self.buy_long("adx_positive_trend")
        elif self.position and self.plus_di[0] < self.minus_di[0]:
            self.close_long("adx_direction_exit")

代理人對 ADXTrend 策略的審閱應總結此特定策略執行的訊號路徑、台帳完整性、風險控制活動與僅做多政策狀態。


第 9 部分:執行委員會摘要與口頭收尾

相關摘要: 將技術研究轉換為主管與委員會語言。本節說明代理人如何加速研究而不取代問責、證據應如何被挑戰,以及專業人士如何持續負責適用性、風險承受度、資料品質、實作就緒度與最終的資本決策。

結尾將相對於基準的輸出轉換為決策語言。委員會需要知道 AMZN 進出場時機是否改善了相對參與度、降低了廣泛市場回撤,或只是在困難期間降低了曝險。

代理人不會取代專業人士。代理式工具可以對齊指數資料並總結相對行為,但基準選擇、機會成本、適用性與最終資本決策仍是人的責任。

有紀律的結尾會避免促銷式語言。核心訊息是:將 AMZN 與其市場脈絡進行比較,在宣稱操作技術前先檢查相對強度,並把問責留在投資團隊。


主管簡報口頭收尾

最後的訊息是基準特異性的(Benchmark-specific):獲利的 AMZN 規則仍需要在 Nasdaq、S&P 與 Dow 脈絡中證明其位置。AgentCore 與 Strands Agents 可以組織比較,Backtrader 可以重播交易,但委員會必須決定相對證據是否足夠有用。


供委員會使用的主管摘要

這篇相對於基準的文章應協助審閱者詢問:AMZN 策略行為是個股專屬、由成長型指數支撐、依賴廣泛市場,還是受到防禦型篩選器的保護?最強的輸出不是單一勝出者,而是更清楚的地圖,顯示每個規則如何相對於 Nasdaq、S&P 與 Dow 脈絡運作。

最終決策仍由人負責。代理式工具可以對齊基準並總結相對證據,但審閱者仍需決定基準選擇、日曆處理與機會成本權衡是否符合投資授權。


第 10 部分:來源、資料註記與最終揭露

相關摘要: 將來源、資料註記、限制與最終揭露語言放在一起。本部分釐清資料假設、時間窗口、AWS 設計參考,以及文章的教育邊界。

來源與資料註記

  • 真實資料工作流程:可執行範例使用 yfinance 下載 AMZN^NDX^GSPC^DJI 的每日 OHLCV 資料。
  • 時間範圍:2006-06-192026-06-19,受市場休假日與資料提供商可用性的影響。
  • AWS 設計模式:Bedrock AgentCore 執行階段用於代理人編排(Agent orchestration),Strands Agents 用於工具協調(Tool coordination),而 AWS 受管資料模式則用於資料血緣、存取與產出物儲存。
  • 僅供教育用途:非個人化建議、非招攬,亦非績效保證。

最終治理資料註記

  • 真實資料工作流程:可執行範例應使用經核准的每日 OHLCV 資料,涵蓋 AMZN、Nasdaq 100、S&P 500 與 Dow Jones Industrial Average。
  • 時間範圍:範例設計使用二十年的研究窗口,並應在每次執行中記錄精確的開始與結束日期。
  • AWS 設計模式:Bedrock AgentCore 執行階段可代管代理人編排,而 Strands Agents 可協調工具使用與結果審閱。
  • 僅供教育用途:非個人化建議、非招攬,亦非績效保證。