3. Single-instrument futures strategy
Learn how to create, test and customise a simple strategy based on a single commodity future instrument.
In SigTech's Research environment, create a new notebook and run the following three code blocks:
# Import necessary libraries
import sigtech.framework as sig
import datetime as dtm
# Initalise the environment
sig.init();
# Define the instrument to use in this strategy
# The object name "KC COMDTY FUTURES GROUP" refers to coffee futures contract group.
# You can find other financial instruments in the SigTech platform's Data section.
my_instrument = sig.obj.get("KC COMDTY FUTURES GROUP")
# Create the strategy using the RollingFutureStrategy building block
my_rfs = sig.RollingFutureStrategy(
# Define the historical period to run the strategy in
# (this example runs from 1 Jan 2019 to 31 Dec 2021):
start_date=dtm.date(2019, 1, 4),
end_date=dtm.date(2021, 12, 31),
# Use the currency, contract code and contract sector corresponding
# to this instrument
currency=my_instrument.currency,
contract_code=my_instrument.contract_code,
contract_sector=my_instrument.contract_sector,
# Define the rolling rule for this strategy
# 'F-0' refers to a type of rolling rule
rolling_rule="F_0"
)
my_rfs.plot.performance()
Make sure you understand SigTech basics by customising this strategy:
The example above uses a coffee futures instrument. Browse SigTech's Data to find another futures instrument and try building a strategy with that instead.
The code within this page only works with futures data.
i. Find an instrument you're interested in:

Coffee Futures (KC)
ii. Click VIEW DETAILS to obtain the correct object name for referring to it in code:

"KC COMDTY FUTURES GROUP"
Try running the strategy over a different historical period by changing the
start_date
and end_date
.Run the following code to view the docstring corresponding to the instrument you're using in this strategy:
my_instrument?
Run the following code to view the docstring corresponding to the
RollingFutureStrategy
building block:sig.RollingFutureStrategy?
Tip: add
.?
to any object to get its docstring. Docstrings are part of our API reference and are aimed at advanced users. Don't worry if much of it is unclear to you right now.Last modified 2mo ago