日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

AT学习报告一 软件的初步使用

發布時間:2023/12/16 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AT学习报告一 软件的初步使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

AT 學習報告一·軟件的初步使用

首先,表達一下我的歉意。說好周末交的學習報告卻推遲到了國慶假期。

接下來,話入正題。這是我的第一篇學習報告。主要是關于新回測結構的四個本地例子的學習筆記。這一篇學習報告主要是學習如何使用 AT 對這些策略本身以及策略代碼編寫是否合理可靠暫不研究。

CSDN 中 mermaid 似乎不能正常顯示的,請見諒

對 AT 回測的認識

目前,我僅接觸到用 AT 進行回測。下面談談我對 AT 回測的認識。
在 AT 中實現對一個策略的回測由兩部分構成。

  • 一是編寫一個策略回測的配置腳本,在該腳本中,配置回測的標的,主函數所需要的自定義參數,滑點,祝初始資金等,一系列的內容。最后,通過調用 traderRunBacktestV2 函數還實現回測。
  • 編寫策略邏輯主函數。這是整個策略的核心部分。
    該函數的運行過程如下:
graph TB a(全局變量的聲明和自定義變量的獲取) --> b(通過 blnit 實現賬戶初始化); b --> c(啟動交易);

其中,賬戶的初始化部分具體如下:

graph LR b(賬戶初始化) --> b1(設置并行計算); b --> b2(注冊數據); b --> b3(計算信號); b --> b4(定義 container 變量)

其中,交易部分邏輯如下:

graph TB a(開始) --> b[獲取賬戶信息]; b --> c{判斷是否滿足交易條件}; c -->|是|d[計算相關指標]; c -->|否|a; d --> f[平倉]; f --> g[開倉]
  • 作為用戶能接觸到的 AT 回測只有兩部分。但是作為回測而言,績效的計算是相當重要的。AT 中的績效指標的統計模塊并未向用戶公開。此部分或可改進,或者允許用戶自定義。
  • 對于回測而言,信號的事先計算固然能夠提高回測速度,但這樣的做法是否合理呢?會不會引起一些問題?或者忽略了一些問題?

需要注意的函數

  • 策略主函數,比如示例中的 turtle。注意到在 traderRunBacktestV2 函數調用 turtle 時,采用的是以句柄的方式調用。這里要注意的數函數的輸入參數。雖然說策略主函數,有三個固定參數,即 bInit、bDayBegin 和 cellPar,但這了前兩個參數是所謂的固定結構,事實上在用的時候只給第三個參數賦值。關于這個用法我有點疑惑,有待查閱 matlab 的幫助文檔查證一下。
  • traderSetParalMode 設置并行計算的函數,不需要調試時應當設置為 true。
  • traderRegKData 用于注冊數據的函數。

    • 用法:Idx=traderRegKData(KFrequency, KFreNum);
    • 這兩個輸入參數容易理解,一個是數據頻率,另一個是數據的刷新頻率。但是這個函數的輸出我很好奇,文意來看是下標。幫助文檔中沒有說明。所幸后面有策略代碼,示范了如何使用這返回的參數,要不然實在不明白。
    • 話說這返回的數據長度也有所困惑,在 Aberration 函數中是 10 ,估計在外層已經用了一次用戶自定義的參數,所以讀取的數據是一定長度,而不是回測時間段內的所以數據,該函數有待進一步研究。
  • traderGetRegKData 獲取已經注冊的 K 線數據

    • 用法:OutMatrix = traderGetRegKData(Idx,len,FilledUp,bpPFCell
    • 與 traderRegKData 是固定搭配,因此也不追求上面的函數到底返回了什么。先學會用,后面慢慢體會。
  • 使用經驗

  • 在這里開倉和平倉完成才算一手交易。一開始我很困惑

    作為起始月份,既然交易次數為0,那么毛利毛損從何而來。后來我才明白。
  • 這里使用了全局變量和 container 等數據類型,來記錄重要數據。比如對 openPrice 的引用。若是低版本的 matlab 沒有加進這種數據類型那就尷尬了。
  • 對于 AT 還沒有親自動手編寫過策略,目前的認識也是相當初淺。不過通讀了幾個示例策略,大體明白了該如何使用 AT 編寫策略。文中如有錯誤認識,請勿見怪。下一篇學習報告,將展示我利用 AT 復現策略庫上一些代碼時的學習體會。
  • 對AT軟件的一點建議

    說一句老實話 AT 給我的體驗并不是太好。這里給出一些我使用時感覺到的問題和建議。

    • 幫助文檔一些部分寫的并不是太清晰,甚至有錯。比如 tradeGetRegKData 函數返回的是一個包含 time open high low close volume turnover openinterest 等字段組成的矩陣,這些字段是按照列排行的,而幫助文檔卻是說是 N*1 矩陣。matlab 用戶一般而言比較習慣使用列排列,我覺得想這些矩陣調整為列排列會更符合習慣。
    • 有時候回測會出錯而遲遲不能完成,關閉 AT 軟件,重新啟動后同樣的策略卻能快速完成回測。
      這個問題出現地非常頻繁,望趕緊修正有關 bug。
    • 很有意思同樣的策略配置,我將回測時間稍做修改。原來是 20160101-20171005 修改為 20161001-2017 但原來總交易次數為120,而修改后總交易次數卻為119,然而從1601 到 1610 發生的交易次數絕對大于 1 這另我非常費解。
    • 可以在幫助文檔中增加解釋一下績效指標的計算,因為有些指標的計算方式,各個平臺可能不同會導致困惑。甚至還可以增加自定義績效指標等模塊。這有利于使用者進行個性化分析。
    • 這個回測時間的計時,我認為應該從配置腳本開時而不是從具體策略函數開始。對用戶而言,直接感受到回測用時是從配置腳本開始的。而由于各種原因,有時候這兩者的計時差距不小。如圖:
    • 在 matlab 已經打開的情況下,已經完成一個策略的回測。從 AT 中選中啟動腳本,又新開了一個 matlab。希望不要新開一個 matlab,畢竟計算機配置太低,帶不動了。

    總結

    以上是生活随笔為你收集整理的AT学习报告一 软件的初步使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。