亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Lean:一款非常強(qiáng)大的開源量化交易平臺(tái)

科技綠洲 ? 來源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-10-31 10:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Lean 是 QuantConnect 開源的一款非常強(qiáng)大的開源量化交易平臺(tái),可以回測(cè)或運(yùn)行Python或者C#寫的策略,并在代碼倉庫中內(nèi)置了上百個(gè)C#和Python的策略算法

這個(gè)開源的算法交易引擎,專為讓用戶方便輕松地進(jìn)行策略研究、回測(cè)和實(shí)時(shí)交易而構(gòu)建。它集成了常見的數(shù)據(jù)提供商和券商,因此還可以快速部署算法交易策略。

圖片

LEAN Engine 的核心是用 C# 編寫的;但它可以在 Linux、Mac 和 Windows 操作系統(tǒng)上無縫運(yùn)行。它支持用 Python 3.6+ 或 C# 編寫的算法。

引擎分為許多模塊化部分,可以在不接觸其他文件的情況下對(duì)某個(gè)模塊進(jìn)行擴(kuò)展。

最重要的幾個(gè)模塊是:

  • 結(jié)果處理 (IResultHandler)處理來自算法交易引擎的所有消息。決定應(yīng)該發(fā)送什么,以及消息應(yīng)該去哪里。結(jié)果處理系統(tǒng)可以將消息發(fā)送到本地 GUI 或 Web 界面。
  • 數(shù)據(jù)源 (IDataFeed)連接并下載算法交易引擎所需的數(shù)據(jù)。從磁盤文件中讀取文件進(jìn)行回測(cè);實(shí)時(shí)交易則連接到一個(gè)流并生成數(shù)據(jù)對(duì)象。
  • 事務(wù)處理 (ITransactionHandler)處理新的訂單請(qǐng)求;要么使用算法提供的模擬模型,要么使用實(shí)際券商。
  • 實(shí)時(shí)事件管理 (IRealtimeHandler)生成實(shí)時(shí)事件 - 例如一天結(jié)束的事件。觸發(fā)對(duì)實(shí)時(shí)事件處理程序的回調(diào)。
  • 算法狀態(tài)設(shè)置 (ISetupHandler)配置算法資金、投資組合和請(qǐng)求的數(shù)據(jù)。初始化所需的所有狀態(tài)參數(shù)。

這些都可以從 Launcher 項(xiàng)目中的 config.json 文件進(jìn)行配置。

1.Leon 安裝教程

由于Leon是基于C#開發(fā)的,因此我推薦使用 Visual Studio 進(jìn)行開發(fā)。

1、克隆項(xiàng)目。從 https://github.com/QuantConnect/Lean 克隆項(xiàng)目到本地(如果你網(wǎng)絡(luò)不通可在公眾號(hào)后臺(tái)回復(fù) **Lean **下載)。

2、使用 Visual Studio 打開項(xiàng)目中的 QuantConnect.Lean.sln

圖片

圖片

3、點(diǎn)擊 生成 - 生成解決方案

圖片

4、點(diǎn)擊 F5 則可以運(yùn)行程序。

如果你在生成解決方案的過程中遇到了類似于如下的錯(cuò)誤:

圖片

請(qǐng)?jiān)诠ぞ?- NuGet包管理器 - 程序包管理器設(shè)置 中 添加如下的源, 名字任取,鏈接對(duì)了就行: https://api.nuget.org/v3/index.json

圖片

2.回測(cè) Lean 內(nèi)置的C#策略

Lean 中比較有意思的一點(diǎn)是,其所有C#策略算法都位于 QuantConnect.Algorithm.CSharp 中,所有的Python策略算法都位于 QuantConnect.Algorithm.Python 中:

圖片

如果你想回測(cè)C#的策略,你只需要修改 QuantConnect.Lean.Launcher 中的 config.json,將 QuantConnect.Algorithm.CSharp 中對(duì)應(yīng)策略名稱,修改到 algorithm-type-name 字段對(duì)應(yīng)的值中,如圖所示:

圖片

然后按 F5 運(yùn)行程序,回測(cè)開始,此時(shí)會(huì)彈出一個(gè)cmd窗口,里面有本次回測(cè)的統(tǒng)計(jì)數(shù)據(jù):

圖片

3. 回測(cè) Lean 內(nèi)置的 Python策略

如果你想要回測(cè)內(nèi)置的Python策略,我們需要先指定Lean使用的Python環(huán)境位置:

1.打開系統(tǒng)變量(我的電腦-右鍵屬性-高級(jí)系統(tǒng)設(shè)置->環(huán)境變量->系統(tǒng)變量)

2.點(diǎn)擊新建變量,name為 PYTHONNET_PYDLL;value則為你的Python環(huán)境的dll文件所在文件夾,如我的為 G:Anaconda3python36.dll

3.在此Python環(huán)境中安裝Lean的依賴:

pip install pandas
pip install wrapt==1.11.2

然后在項(xiàng)目的 config.json 中需要多改幾個(gè)配置:

圖片

然后按F5進(jìn)行回測(cè),效果如下:

圖片

這些統(tǒng)計(jì)指標(biāo)令人眼花繚亂,對(duì)于股票的回測(cè)我們只要重點(diǎn)關(guān)注這些即可:

  • Total Trades: 總交易量
  • Average Win: 平均盈利率
  • Average Loss: 平均虧損率
  • Compounding Annual Return: 復(fù)合年回報(bào)率
  • Drawdown: 最大回撤率
  • Expectancy: 期望值
  • Net Profit: 凈利潤(rùn)
  • Sharpe Ratio: 夏普比率
  • Probabilistic Sharpe Ratio: 概率性夏普比率
  • Loss Rate: 失敗率
  • Win Rate: 勝率
  • Profit-Loss Ratio: 盈虧比
  • Alpha: Alpha值
  • Beta: Beta值
  • Total Fees: 總手續(xù)費(fèi)

其他的,按需關(guān)注即可。

4. Lean 策略是怎么寫的?

開始之前,讓我們先學(xué)習(xí)下 Lean 內(nèi)置策略的寫法:

上滑查看更多代碼

from AlgorithmImports import *


class MACDTrendAlgorithm(QCAlgorithm):

def Initialize(self):
'''Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.'''

self.SetStartDate(2004,1,1)#Set Start Date
self.SetEndDate(2015,1,1)#Set End Date
self.SetCash(100000)#Set Strategy Cash
# Find more symbols here: http://quantconnect.com/data
self.AddEquity("SPY", Resolution.Daily)

# define our daily macd(12,26) with a 9 day signal
self.__macd =self.MACD("SPY",12,26,9, MovingAverageType.Exponential, Resolution.Daily)
self.__previous = datetime.min
self.PlotIndicator("MACD", True,self.__macd,self.__macd.Signal)
self.PlotIndicator("SPY",self.__macd.Fast,self.__macd.Slow)


def OnData(self, data):
'''OnData event is the primary entry point for your algorithm. Each new data point will be pumped in here.'''
# wait for our macd to fully initialize
if not self.__macd.IsReady: return

# only once per day
if self.__previous.date() ==self.Time.date():return

# define a small tolerance on our checks to avoid bouncing
tolerance =0.0025

holdings =self.Portfolio["SPY"].Quantity

signalDeltaPercent = (self.__macd.Current.Value -self.__macd.Signal.Current.Value)/self.__macd.Fast.Current.Value

# if our macd is greater than our signal, then let's go long
if holdings <=0and signalDeltaPercent >tolerance:# 0.01%
# longterm says buy as well
self.SetHoldings("SPY",1.0)

# of our macd is less than our signal, then let's go short
elif holdings >=0 and signalDeltaPercent < -tolerance:
self.Liquidate("SPY")


self.__previous =self.Time

可以看到,其實(shí)它和Backtrader的寫法相差無幾,Initialize 函數(shù)設(shè)置基本的回測(cè)參數(shù),如:

  • self.SetStartDate: 回測(cè)起始時(shí)間
  • self.SetEndDate: 回測(cè)結(jié)束時(shí)間
  • self.setCash: 回測(cè)資金
  • self.AddEquity: 回測(cè)對(duì)象(Resolution.Daily 是指按日回測(cè))
  • self.PlotIndicator: 繪圖時(shí)添加指標(biāo)

而 onData 函數(shù)則會(huì)在每個(gè)數(shù)據(jù)點(diǎn)上做操作,如果是日線,則每天的數(shù)據(jù)都會(huì)流入到這個(gè)函數(shù)并運(yùn)行一遍。因此 onData 就是算法分析的主邏輯。

在這里,你可以檢查需要的指標(biāo)是否已經(jīng)準(zhǔn)備完畢,因?yàn)榭赡艽嬖谝恍笮灾笜?biāo)在回測(cè)剛開始的時(shí)候并沒有對(duì)應(yīng)的值;此外,在日線的情況下,你還可以檢測(cè)上一個(gè)數(shù)據(jù)點(diǎn)是不是和這個(gè)點(diǎn)在同一天上,如果是的話則不作任何操作返回:

if not self.__macd.IsReady: return
if self.__previous.date() == self.Time.date(): return

然后就是核心的買入賣出邏輯:

tolerance = 0.0025

holdings = self.Portfolio["SPY"].Quantity

signalDeltaPercent = (self.__macd.Current.Value - self.__macd.Signal.Current.Value)/self.__macd.Fast.Current.Value

# if our macd is greater than our signal, then let's go long
if holdings <= 0 and signalDeltaPercent > tolerance: # 0.01%
    # longterm says buy as well
    self.SetHoldings("SPY", 1.0)

# of our macd is less than our signal, then let's go short
elif holdings >= 0 and signalDeltaPercent < -tolerance:
    self.Liquidate("SPY")
    
self.__previous = self.Time

如果我持倉的股數(shù)<=0, 且信號(hào)值大于我設(shè)定的閾值,則將我 資產(chǎn)的1% 買入這只股票。這里和backtrader最大的不同,買入是以資產(chǎn)的百分比為單位的動(dòng)態(tài)買入。當(dāng)然,你也可以使用限定數(shù)量的買入方式:

self.LimitOrder("IBM", 100, self.Securities["IBM"].Price)

如果持倉股市>=0, 且觸發(fā)賣出信號(hào),則進(jìn)行清倉操作:

elif holdings >= 0 and signalDeltaPercent < -tolerance:
    self.Liquidate("SPY")

如果你不希望全部清倉,也可以使用 SetHoldings 來調(diào)整倉位。

可以看到,Lean相對(duì)于Backtrader有更靈活的倉位管理方式,甚至能夠進(jìn)行自動(dòng)倉位調(diào)整、構(gòu)建投資組合、實(shí)時(shí)交易等等。而且針對(duì)一些比較復(fù)雜的策略,你還可以用C#而不是Python來編寫以提高運(yùn)行速度。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • WINDOWS
    +關(guān)注

    關(guān)注

    4

    文章

    3624

    瀏覽量

    92985
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    7279

    瀏覽量

    128264
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3921

    瀏覽量

    45413
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4850

    瀏覽量

    89309
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    網(wǎng)領(lǐng)先二手車交易平臺(tái)

    網(wǎng)領(lǐng)先二手車交易平臺(tái)http://www.1car1.cn/
    發(fā)表于 09-17 10:44

    虛擬幣交易平臺(tái)開發(fā)帶挖礦程序礦機(jī)程序app開發(fā)

    交易平臺(tái)而言,未來或?qū)⒚媾R業(yè)務(wù)轉(zhuǎn)型創(chuàng)新,部分平臺(tái)也會(huì)更多專注區(qū)塊鏈技術(shù)研究等業(yè)務(wù)。區(qū)塊鏈技術(shù)的研究將是些擁有大量中外IT技術(shù)人員的中國平臺(tái)的關(guān)注點(diǎn)之
    發(fā)表于 12-11 10:43

    數(shù)字資產(chǎn)交易平臺(tái)搭建交易所市場(chǎng)

    交易平臺(tái)可以為用戶提供更多的服務(wù)。它衍生出了系列的模式,更加能夠讓用戶認(rèn)識(shí)到區(qū)塊鏈技術(shù)的強(qiáng)大。對(duì)于目前較為主流的交易平臺(tái)模式,主要是場(chǎng)外交易
    發(fā)表于 07-20 11:20

    比特幣交易平臺(tái)排名情況

    國內(nèi)比特幣交易平臺(tái)哪個(gè)好,國內(nèi)十大比特幣交易平臺(tái)排名2017版:搞比特幣,選對(duì)個(gè)平臺(tái)是關(guān)鍵中的關(guān)鍵,平臺(tái)的不穩(wěn)定性是比特幣投資中最大的風(fēng)險(xiǎn)
    發(fā)表于 12-16 09:41 ?1.6w次閱讀

    GMQ區(qū)塊鏈交易平臺(tái)模式開發(fā)

    交易平臺(tái)體驗(yàn),并歡迎廣大用戶給我們提供寶貴的意見與建議。?與傳統(tǒng)數(shù)字資產(chǎn)交易平臺(tái)相比,GMQ擁有強(qiáng)大的服務(wù)體系:()安全、穩(wěn)定、快捷的交易
    發(fā)表于 07-12 17:42 ?1206次閱讀

    場(chǎng)外交易平臺(tái)搭建|場(chǎng)外交易系統(tǒng)開發(fā)

    隨著傳統(tǒng)數(shù)字資產(chǎn)交易平臺(tái)的落幕,各種新模式的交易平臺(tái)迅速崛起,場(chǎng)外交易平臺(tái)就是目前種新的交易模式,那么為什么這些新的
    發(fā)表于 07-23 16:55 ?631次閱讀

    區(qū)塊鏈數(shù)字資產(chǎn)交易平臺(tái)開發(fā)

    /微搜索:138-2886-7935】什么是交易平臺(tái)?交易平臺(tái)也被稱為交易場(chǎng)所,交易平臺(tái)是指交易投資者聚集在
    發(fā)表于 08-08 12:15 ?455次閱讀

    數(shù)字資產(chǎn)交易平臺(tái)DIIEX.COM,將顛覆傳統(tǒng)交易平臺(tái)幣發(fā)行模式

    DIIEX交易所是成立于新加坡的數(shù)字資產(chǎn)交易平臺(tái),其團(tuán)隊(duì)擁有多年的金融風(fēng)控和大型互聯(lián)網(wǎng)平臺(tái)運(yùn)營經(jīng)驗(yàn)。團(tuán)隊(duì)成員包含幣圈資深投資大佬、華爾街量化交易
    發(fā)表于 10-01 09:00 ?2264次閱讀

    幣幣交易平臺(tái)開發(fā),場(chǎng)外交易平臺(tái)開發(fā)--源中瑞技術(shù)開發(fā)

    ? ? 比特幣的熱潮已經(jīng)席卷了全球市場(chǎng),數(shù)字資產(chǎn)自身也得到了快速的發(fā)展。講到數(shù)字資產(chǎn)這塊就不得不說下交易平臺(tái),數(shù)字資產(chǎn)的火熱也帶動(dòng)了交易平臺(tái)的發(fā)展,近兩年交易平臺(tái)數(shù)量急劇上升。今天就帶大家了解
    發(fā)表于 10-23 09:52 ?862次閱讀

    加密貨幣交易平臺(tái)Aphelion介紹

    托管或建設(shè)區(qū)塊代幣化系統(tǒng)的協(xié)議,Aphelion 用戶可以最終消除加密貨幣交易所和交易平臺(tái)的阻礙和控制。
    發(fā)表于 11-15 14:24 ?2604次閱讀

    數(shù)字資產(chǎn)量化交易軟件出售區(qū)塊鏈交易平臺(tái)開發(fā)

    數(shù)字資產(chǎn)量化交易軟件出售區(qū)塊鏈交易平臺(tái)開發(fā) [本文由源中瑞涂先生編輯/量化交易系統(tǒng)開發(fā)搜索微信:ruiec999] 眾所周知,當(dāng)前的數(shù)字資產(chǎn)
    發(fā)表于 12-28 21:13 ?680次閱讀

    數(shù)字貨幣交易平臺(tái)LIVECOIN介紹

    Livecoin是個(gè)現(xiàn)代化、安全的交易平臺(tái),給自己的客戶提供非常簡(jiǎn)單的界面和低廉的交易手續(xù)費(fèi)來加入加密貨幣交換市場(chǎng)的可能。我們自己的API易于使用,并提供視頻教程。我們的支持服務(wù)以俄
    發(fā)表于 01-09 11:33 ?3134次閱讀
    數(shù)字貨幣<b class='flag-5'>交易平臺(tái)</b>LIVECOIN介紹

    數(shù)字資產(chǎn)量化交易軟件開發(fā)幣幣交易平臺(tái)開發(fā)

    數(shù)字資產(chǎn)量化交易軟件開發(fā)幣幣交易平臺(tái)開發(fā)[本文由源中瑞涂先生編輯/量化交易軟件開發(fā)搜索微信:ruiec999]眾所周知,在數(shù)字資產(chǎn)投資的世界
    發(fā)表于 01-30 18:39 ?393次閱讀

    基于個(gè)共享的數(shù)字貨幣交易平臺(tái)Kitchan網(wǎng)絡(luò)介紹

    Kitchan網(wǎng)絡(luò)是個(gè)共享數(shù)字貨幣交易平臺(tái)。提供各種投資工具,包括現(xiàn)貨交易、保證金交易和融資交易,以及圖形化編程工具和
    發(fā)表于 06-19 11:44 ?1197次閱讀

    區(qū)塊鏈交易平臺(tái)是如何盈利的

    交易平臺(tái),顧名思義就是用來交易平臺(tái),而區(qū)塊鏈交易平臺(tái)自然就是用來交易加密資產(chǎn)的平臺(tái),會(huì)提供行情
    發(fā)表于 11-06 11:37 ?5708次閱讀