Fully automated futures trading

Would it then make sense to see if you can make your order execution better? Meaning that you find a fill in between the bid and ask price?
possibly, but we still need to use spread for estimating costs so the relative instrument cost differences will remain the same..
 
Last edited:
possibly, but we still need to use spread for estimating costs so the relative instrument cost differences will remain the same..
I don't necessarily agree with that. If an instrument has a very narrow spread (think ES) you will most likely pay the bid or ask price when filling an order. However, if an instrument has a very wide spread and you fill mostly between bid and ask then your apparent spread is much smaller than the (bid - ask) spread. Using (bid - ask) results in a too pessimistic, i.e. too expensive, cost estimation. I am not familiar with the OJ contract that you mentioned, so can't judge in what category that would fall.
 
Hi all, I'm experimenting with AFTS chapter 25 dynamic optimisation. Scripts are standalone but data for csv's is from pysystemtrade (which is still work in progress). A couple of (beginner) questions:

Data
If the scripts are run on pysystemtrade server, how do I pull data from db instead of csv's? Something like "rawdata.get_daily_prices" but didn't get it working.

From chapter10:
all_data = dict([
(instrument_code, pd_readcsv("%s.csv" % instrument_code))
for instrument_code in instrument_list
])

EU sectors
Instruments with dash in name (eg. EU-OIL) gives the following error. Tried to escape the dash but no luck so far. How do I get around this?
SyntaxError: expression cannot contain assignment, perhaps you meant "=="?

IDM
To be sure, when I have over 30 instruments but DO gives less than 10 for small capital, is it still safe to use IDM=2.5?

Instrument weights
Instead of equal weights, would it be better to use those in provided in rob_system config?

Rules
I added multiple carry spans (10,30,60,125 from rob_system) and ewmac 8. Is it possible to add definition of which rules are used for which instruments (so to able to trade faster ewmac)? In addition, is possible to add forecast weights (as in rob_system)?
 
Hi all, I'm experimenting with AFTS chapter 25 dynamic optimisation. Scripts are standalone but data for csv's is from pysystemtrade (which is still work in progress). A couple of (beginner) questions:

Data
If the scripts are run on pysystemtrade server, how do I pull data from db instead of csv's? Something like "rawdata.get_daily_prices" but didn't get it working.

From chapter10:
all_data = dict([
(instrument_code, pd_readcsv("%s.csv" % instrument_code))
for instrument_code in instrument_list
])

WTF is the 'psystemtrade server'?!

EU sectors
Instruments with dash in name (eg. EU-OIL) gives the following error. Tried to escape the dash but no luck so far. How do I get around this?
SyntaxError: expression cannot contain assignment, perhaps you meant "=="?

Can you paste in the exact code you are using to produce this error.

IDM
To be sure, when I have over 30 instruments but DO gives less than 10 for small capital, is it still safe to use IDM=2.5?

IDM is the same regardless of whether you subsequently do DO or not

Instrument weights
Instead of equal weights, would it be better to use those in provided in rob_system config?

If you want. Please read everything I've ever written on portfolio optimisation on my blog and in several books to understand why or why not.

Rules
I added multiple carry spans (10,30,60,125 from rob_system) and ewmac 8. Is it possible to add definition of which rules are used for which instruments (so to able to trade faster ewmac)? In addition, is possible to add forecast weights (as in rob_system)?
[/QUOTE]

If you are using pysystemtrade then yes to both, RTFM https://github.com/robcarver17/pysystemtrade/blob/master/docs/backtesting.md

If you are not, then of course it's possible but you need to write the code yourself to do it.

Rob
 
Can you paste in the exact code you are using to produce this error.

chapter25.py with following changes, default instruments replaced with EU-OIL

#) = get_data_dict_with_carry(["sp500", "eurostx", "us10", "us2"])
) = get_data_dict_with_carry(["EU-OIL"])

#asset_class_groupings = dict(bonds=["us2", "us10"], stocks=["sp500", "eurostx"])
asset_class_groupings = dict(stocks=["EU-OIL"])

#multipliers = dict(sp500=5, eurostx=10, us10=1000, us2=2000)
multipliers = dict(EU-OIL=50)

#instrument_weights = dict(sp500=0.25, eurostx=0.25, us10=0.25, us2=0.25)
instrument_weights = dict(EU-OIL=1)

#cost_per_contract_dict = dict(sp500=0.875, eurostx=6.8, us10=9.5, us2=5.5)
cost_per_contract_dict = dict(EU-OIL=5)

gives

multipliers = dict(EU-OIL=50)
^
SyntaxError: expression cannot contain assignment, perhaps you meant "=="?

Script works with any instrument without dash in the name. Same behavior in notebook and cli.
 
chapter25.py with following changes, default instruments replaced with EU-OIL

#) = get_data_dict_with_carry(["sp500", "eurostx", "us10", "us2"])
) = get_data_dict_with_carry(["EU-OIL"])

#asset_class_groupings = dict(bonds=["us2", "us10"], stocks=["sp500", "eurostx"])
asset_class_groupings = dict(stocks=["EU-OIL"])

#multipliers = dict(sp500=5, eurostx=10, us10=1000, us2=2000)
multipliers = dict(EU-OIL=50)

#instrument_weights = dict(sp500=0.25, eurostx=0.25, us10=0.25, us2=0.25)
instrument_weights = dict(EU-OIL=1)

#cost_per_contract_dict = dict(sp500=0.875, eurostx=6.8, us10=9.5, us2=5.5)
cost_per_contract_dict = dict(EU-OIL=5)

gives

multipliers = dict(EU-OIL=50)
^
SyntaxError: expression cannot contain assignment, perhaps you meant "=="?

Script works with any instrument without dash in the name. Same behavior in notebook and cli.

This is farily basic python: You can't put a reserved character as a dict key unless you're using the {} form of dict and you put the key in quotes

So this wont' work my_dict = dict(a-2=5)
This will work my_dict = {'a-2':5}

Rob
 
WTF is the 'psystemtrade server'?!

Sorry for being ambiguos, I meant the AFTS standalone scripts are being run on the same box as pysystemtrade. So I have data in pysystemtrade db and couldn't yet figure out how to access that data from AFTS scripts, without csv's.
 
Sorry for being ambiguos, I meant the AFTS standalone scripts are being run on the same box as pysystemtrade. So I have data in pysystemtrade db and couldn't yet figure out how to access that data from AFTS scripts, without csv's.

You need to read the pystemtrade manual, but this would work:

Code:
from systems.provided.basic.system import dbFuturesSimData
d = dbFuturesSimData()
d.daily_prices('US10')

Rob
 
You need to read the pystemtrade manual, but this would work:

Code:
from systems.provided.basic.system import dbFuturesSimData
d = dbFuturesSimData()
d.daily_prices('US10')

Rob

Thanks again! I was trying with rawdata. I've read the docs, but have to read and experiment much more until everything falls into place.
 
Back
Top