I'm sharing some example code that may be interesting to both the C# and Python algorithm developer communities. Attached is a sample algorithm pattern that utilizes C# for core execution functionality and calls a Python module for evaluating trade entries/exit.  

Why would you want to do this?  In my opinion, this pattern can take advantage of the particular strengths of both technologies.  C# is better at high-performance, type-safe, reusable code.  Python is better at community-driven data analytics modules and predictive modeling.  So we can potentially build models in Python using packages like Scikit-Learn, XGBoost, and Tensorflow, and then call them for individual trade decisions from our high-performance C# trade execution framework.

The example Python code is hosted on Dropbox and lazy-loaded by the attached algo at run-time.  Note there is no model or unique trade strategy provided here.  I hope you still find it useful.

from clr import AddReference AddReference("System") AddReference("QuantConnect.Common") AddReference("QuantConnect.Indicators") from System import * from QuantConnect import * from QuantConnect.Data.Market import TradeBar, QuoteBar from QuantConnect.Indicators import * from datetime import datetime, timedelta import pandas as pd import numpy as np from sklearn import linear_model # Initialize your Python model here. def initialize_model(): print "Hello World" # Example Python function to return entry/exit decisions. def scan_entry(price): if int(price) % 2 == 0: return 0 else: return 1;

Author