Workspace on Blueshift®¶
Once you land on Blueshift®, you usually arrive at the main strategy page, that looks like below
This is the top level (
root) of your workspace on Blueshift. The blue
buttons on the top right
respectively creates a new directory or a new source file at the current
location. You can create a directory under another directory which is
root as well. This tree-like directory structure helps us in
- Keep all our source codes and strategies organized. You can keep related strategies in a single directory.
- Helps us create custom packages so that we can re-use our codes.
The first point is obvious. The second may need some elaboration.
Creating custom package and re-using codes¶
Once you create a directory, we automatically add a blank
it. This makes it behave like a
regular package. You can import source
files in it (or import objects like
classes in that files)
just like a standard Python module into any other source file in any
other directory. To do this, always use the absolute path method of
import. This starts from top level directory name. Suppose in the above
figure, we have a source file named
indicators under a directory called
technicals in the top level directory named
library. If the
source file defines a function called
bollinger_band, we can use this
function in another strategy, anywhere in our
workspace, simply by
importing it in the following way.
from blueshift_library.technicals.indicators import bollinger_band
Using the code editor¶
Clicking on any directory on the strategy list takes you inside that directory. Clicking on any source file takes you to the code editor. The present code editor is based on Monaco that powers VS Code. If you are familiar with the VS Code, most of the short-cuts will work. At present, missing features are automatic code suggestion and a built-in debugger.
Error and output windows¶
On the bottom right beside the
code editor, you have the error
and output window. If you use any
Logs)1. The error
windows will show message or errors from the core engine or from the
underlying Python environment. In case of errors, this will automatically
expand and will have an additional button
We truncate the output to terminal (output of the