Frequently Asked Questions¶
Writing strategies and the IDE¶
How do I start writing a strategy?
For a start, see quickstart. You use Python to write the algorithm code. If you need a brush-up on Python basics see the tutorials section.
I can't code, do you have any alternative?
Yes of course, check out our visual programming
Do I need to be expert in Python to write an algo?
Not expert, but you do need basic familiarity to get started. See our tutorials section for a crash course on Python. We are also working on a feature release where you can entirely avoid coding to build strategies!
Can I use R or MATLABĀ® to code my strategies?
We support only Python at present. If you are familiar either R or MATLABĀ®, it is easy to pick up Python.
Where can I learn Python for coding algorithms?
See our tutorials section for a crash course on Python.
What are the Python packages that I can use on your platform?
We have a white-list of
packages that you can use in your code (by simply import
-ing them).
How to develop algorithms with multiple code files?
Checkout our help section on using the workspace.
How to import my own functions from another file?
Checkout our help section on using the workspace.
The code editor (IDE) looks unfamiliar, how to use it?
We use the Monaco editor that powers VS Code. If you are familiar with it that should help, including many of the key-board shortcuts.
I am new to all this, where do I get ideas to develop strategies?
Ideas are the most valuable input to the strategy development cycle. If you have prior experience in trading, try to express your trading rules in terms of clear mathematical formulae. You can look at the tutorials to get some ideas. Also check-out the primer on quant strategies page under tutorials to get some pointers to get started.
Debugging algorithm code¶
Do you have any tools to debug my code?
At present, unfortunately, no. This is in our to-do list.
How do I debug my code?
At present, unfortunately, we have no support for any debugging tools.
Also as a security measure, we have quite a few Python introspection
functions (like type
, dir
etc.) either disabled or restricted. The
working solution is a judicious use of the print
statement.
Quote
"The most effective debugging tool is still careful thought, coupled with judiciously placed print statements." Brian Kernighan, "Unix for Beginners" (1979)
if you continue to have an issue you cannot resolve, please click the
Why do I get a 'Symbol XXX was not found' error?
This is usually because your code refers to an asset symbol
, which
is not in the dataset you used to run the strategy. Make sure you pick
the correct dataset for the assets you are using.
Why do I get a 'Use of type function on this object is not supported' error?
We have disabled or restricted certain Python introspection
. Usually,
this should not affect a regular strategy code development. If it does
bother you, give us a shout,
with some details.
Why do I get a 'illegal code' error?
This means we detected some aspects of your code as potentially "unsafe".In most circumstances it is usually right, but false positives are possible. Reach out to us with your issues. We will be happy to help.
Why do I get a 'No minute data for sid' error?
This is usually because a frequency mismatch. You are using a daily
dataset and referring minute-level data from within your strategy. Or
you are referring to a benchmark asset (like SPY
or NIFTY50
), which
only have daily data history.
Why do I get a 'History window extends before ...' error?
This is usually because in your code you are requesting data beyond the
start date of the dataset you are using. Try setting the start date of
your backtest to a later date. Alternatively you can catch
this
exception in the usual Pythonic way within your code.
Why do I get an 'illegal str conversion' error?
same us illegal code issue above.
Why do I get a 'illegal import' error?
same us illegal code issue above. You are trying to import a module outside our white-list. If you need any specific Python package, please reach out to us to add to the white-list.