程序员的量化交易之路(33)--QuantConnect之案例1

简介:

转载需注明:http://blog.csdn.net/minimicall ,http://cloudtrade.top/

分析Cointrader有一定层度了,发现它毕竟不是一个产品,没有得到验证。在架构、编码等方面都非常的不规范。

想编写一个云交易平台,任道而重远。我们需要参照一些成熟的架构。

Quantopian的zipline不行,因为我就是看到它不行,所以才去分析Cointrader的。

现在这两个,一个压根就不是云平台,一个是不成熟,所以我只能去分析剩下的一个QuantConnect了。它的引擎是lean。

学习lean从学习使用开始,然后学习其架构、源码。然后设计我们的架构、平台。

我们首先来看一个例子。官方的最基本的案例。

代码如下:

namespace QuantConnect 
{   
    /*
    *   QuantConnect University: Full Basic Template:
    *
    *   The underlying QCAlgorithm class is full of helper methods which enable you to use QuantConnect.
    *   We have explained some of these here, but the full algorithm can be found at:
    *   https://github.com/QuantConnect/QCAlgorithm/blob/master/QuantConnect.Algorithm/QCAlgorithm.cs
    */
    public class BasicTemplateAlgorithm : QCAlgorithm
    {
        //Initialize the data and resolution you require for your strategy
        public override void Initialize()
        {
			
            //Start and End Date range for the backtest:
            SetStartDate(2013, 1, 1);         
            SetEndDate(DateTime.Now.Date.AddDays(-1)); 
            
            //Cash allocation
            SetCash(25000);
            
            //Add as many securities as you like. All the data will be passed into the event handler:
            AddSecurity(SecurityType.Equity, "SPY", Resolution.Minute);
        }

        //Data Event Handler: New data arrives here. "TradeBars" type is a dictionary of strings so you can access it by symbol.
        public void OnData(TradeBars data) 
        {   
            // "TradeBars" object holds many "TradeBar" objects: it is a dictionary indexed by the symbol:
            // 
            //  e.g.  data["MSFT"] data["GOOG"]
            
            if (!Portfolio.HoldStock) 
            {
                int quantity = (int)Math.Floor(Portfolio.Cash / data["SPY"].Close);
                
                //Order function places trades: enter the string symbol and the quantity you want:
                Order("SPY",  quantity);
                
                //Debug sends messages to the user console: "Time" is the algorithm time keeper object 
                Debug("Purchased SPY on " + Time.ToShortDateString());
                
                //You can also use log to send longer messages to a file. You are capped to 10kb
                //Log("This is a longer message send to log.");
            }
        }
    }
}


相关文章
|
8月前
|
敏捷开发 中间件 数据处理
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(1)
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(1)
73 0
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(1)
|
8月前
|
程序员 项目管理 监控
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(3)
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)
47 0
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(3)
|
2月前
|
存储 API 数据库
探索后端开发的奥秘:从基础到高级
【5月更文挑战第31天】本文将带领读者深入理解后端开发的世界,从基础的服务器和数据库知识,到复杂的API设计和微服务架构。我们将通过实例和案例分析,揭示后端开发的关键概念和技术,帮助读者提升他们的技能和知识。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。
|
8月前
|
测试技术 Java 数据库
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(2)
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)
35 0
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(2)
|
设计模式 程序员
程序员成长第三篇:好的代码和好的工程师
程序员成长第三篇:好的代码和好的工程师
67 0
|
设计模式 前端开发 JavaScript
写给初中级前端的高级进阶指南(万字路线)
由于公众号文章不允许外链,需要跳转文中链接的同学可以在脚注里找到各个的资源链接,也可以通过点击阅读原文更加方便的跳转链接
阿里抱真:工作7年,我的10条经验总结
阿里抱真:工作7年,我的10条经验总结
355 0
|
SQL 开发框架 小程序
小程序开发-第二章第七节个人中心-全栈工程师之路-中级篇
小程序开发-第二章第七节个人中心-全栈工程师之路-中级篇
165 0
小程序开发-第二章第七节个人中心-全栈工程师之路-中级篇
工作7年,我在阿里的10条经验总结
最近几年作为面试官也面试了很多同学,经常和很多候选人沟通分享一些自己学习成长的路径,也经常和很多新入职的同学口头分享一些工作心得。现在把这些的经验总结了一下,如果能对看到文章的同学有所启发及帮助最好。
509 0
|
运维 前端开发 Cloud Native
想成为全栈工程师,要做到哪几点?
如何成为一名全栈工程师?需要具备哪些技术积累?成为全栈工程师有哪些好处?希望本文能为期望成为全栈工程师的同学提供一点帮助,和同学们一起分享交流。
想成为全栈工程师,要做到哪几点?