stock / futures Trading optimization engine standalone stage1 only. (total of 4 stages long term)
$100-200 USD
Kiszállításkor fizetve
stage1
inputs files format as follows
data1 (trading data)
data2 (signal data)
We are to trade as follows.
signal=data2
buy when signal >0. Sell when signal < 0. exit always at 3pm
Reversals are allowed.
don't allow new entries after 2pm
record equity and output final equity into csv file with
iterationNumber,netprofit,
Must use all cpu cores
The purpose of stage 1 is to figure out what speeds are achievable. If the speed is good stage2/3/4 will be developed.
trades are not submitted to a broker. We just need to do the optimization.
## Deliverables
Optimization trading engine stage1
enclosed word document has more details
inputs files format as follows
data1 (trading data)
data2 (signal data)
data1
"Date","Time","Open","High","Low","Close","Up","Down"
11/07/2001,1130,463.20,463.70,462.70,463.30,5,11
11/07/2001,1200,464.20,464.70,464.20,464.30,5,2
11/07/2001,1230,465.00,465.00,464.80,464.80,3,3
11/07/2001,1300,464.80,465.30,464.70,464.80,1,25
11/07/2001,1330,464.10,464.30,463.20,463.20,12,47
11/07/2001,1400,463.00,463.60,462.30,463.60,21,45
11/07/2001,1430,463.50,463.70,462.70,463.70,10,51
11/07/2001,1500,462.60,462.60,461.70,462.20,3,37
11/08/2001,0900,463.70,464.20,463.70,464.20,3,1
11/08/2001,0930,464.30,466.90,464.30,466.50,36,11
11/08/2001,1000,466.50,466.60,465.70,466.20,12,22
11/08/2001,1030,466.40,466.40,465.30,465.30,22,89
11/08/2001,1100,464.70,464.90,464.00,464.50,12,53
11/08/2001,1130,464.60,464.60,462.40,463.70,58,86
11/08/2001,1200,463.70,464.40,463.50,464.20,57,4
11/08/2001,1230,463.90,465.30,463.90,465.00,36,12
11/08/2001,1300,465.70,465.70,465.20,465.50,17,10
11/08/2001,1330,464.70,465.30,463.70,463.70,50,48
11/08/2001,1400,463.70,463.90,462.70,462.70,16,64
11/08/2001,1430,462.40,462.70,460.20,460.20,4,99
11/08/2001,1500,459.40,460.70,458.40,459.70,12,70
11/09/2001,0900,459.00,459.80,458.20,458.20,1,13
11/09/2001,0930,456.00,458.70,456.00,458.20,7,7
11/09/2001,1000,459.50,460.70,458.50,458.50,28,6
11/09/2001,1030,459.30,459.30,457.70,458.40,6,37
11/09/2001,1200,457.80,458.80,457.80,458.80,1,1
11/09/2001,1230,460.20,460.20,460.20,460.20,5,0
11/09/2001,1300,460.00,460.40,459.60,460.20,86,42
11/09/2001,1330,460.10,460.10,458.70,459.40,35,45
Up and down can be ignored.
time frames allowed are 1 minute to 60 minutes
data2
"Date","Time","Open","High","Low","Close","Up","Down"
07/11/2002,900,0,10,-10,[url removed, login to view]
07/11/2002,930,0,10,-10,0.38372985
07/11/2002,1000,0,10,-10,[url removed, login to view]
07/11/2002,1030,0,10,-10,[url removed, login to view]
07/11/2002,1100,0,10,-10,[url removed, login to view]
07/11/2002,1130,0,10,-10,[url removed, login to view]
07/11/2002,1200,0,10,-10,[url removed, login to view]
07/11/2002,1230,0,10,-10,[url removed, login to view]
07/11/2002,1300,0,10,-10,[url removed, login to view]
07/11/2002,1330,0,10,-10,0.33256587
07/11/2002,1400,0,10,-10,[url removed, login to view]
07/11/2002,1430,0,10,-10,0.38372985
07/11/2002,1500,0,10,-10,0.92095165
07/12/2002,900,0,10,-10,[url removed, login to view]
07/12/2002,930,0,10,-10,[url removed, login to view]
07/12/2002,1000,0,10,-10,0.40557668
07/12/2002,1030,0,10,-10,0.17743980
07/12/2002,1100,0,10,-10,[url removed, login to view]
07/12/2002,1130,0,10,-10,0.30418251
07/12/2002,1200,0,10,-10,0.50697085
07/12/2002,1230,0,10,-10,[url removed, login to view]
07/12/2002,1300,0,10,-10,[url removed, login to view]
07/12/2002,1330,0,10,-10,[url removed, login to view]
07/12/2002,1400,0,10,-10,[url removed, login to view]
07/12/2002,1430,0,10,-10,[url removed, login to view]
07/12/2002,1500,0,10,-10,[url removed, login to view]
{we only care about the date,time,and close
We are to trade as follows.
signal=data2
buy on close when signal >0. Sell on close when signal < 0. exit always at 3pm
Reversals are allowed.
don't allow new entries after 2pm
the whole process must be repeated x times. (iteration input)
At stage2, iteration will have some logic / parameters.
At stage1 we are just making a benchmark to see what speeds can be achieved. FASTEST PROGRAMING EXECUTION IS CRITICAL.
Must use all cpu cores
As each iteration will be passed onto a separate cpu core, it doesn't matter if a higher iteration is processed before a lower one.
record output final equity into csv file.
iterationNumber,netprofit
There needs to be a filter to only output iterations with netprofit >outputNetprofitFilter. The reason is we dont care about iterations that are not profitable. This also reduces file output size.
The purpose of stage 1 is to figure out what speeds are achievable. If the speed is good stage2 will be developed. I may as a separate job get a c and java version done to see whats fastest. Then try it on Linux as im told its faster.
Os windows 7 64 bit.
Language c++ or c# or java.
An additional job may be to get a c and java version and see whats the fastest. I am told java for Linux and c for Linux is much faster than windows
Input csv data
Format as shown below
Input option to repeat process x times.
In stage 2, x will be replaced by brute force iterations with some different parameters
stage2.
I have this entire code working in Multicharts / Tradestation. I can give this to the successful applicant. This will make the whole job much easier to understand.
input parameter to have date where data starts processing, stops processing,
signal data is now expanded.
ie data2,data3...data100
point value input. ie 1 point of data1= $100
some simple formula (to be supplied later) are optimized over start date to end date. Out of sample data is end date to last date in file
for example,
if input=1 then signal=average(data2,data3)
if input=2 then signal=average(data3,data4)
if input=3 then signal=data3+data4......
add a stop value and profit target.
add 2 more very simple entry type instead of buy when signal >0 (to be supplied later)
A very simple condition added to abort optimization with current parameter and move into next parameter. ie if date >xyz and netprofit<0 then abort...
output file now
iterationNumber,InSampleNetprofit,InSampleprofitfactor, InSamplenumber_of_trades,InSampleaverage_trade,OutofsampleNetprofit,OutofsampleProfitfactor,OutofsampleNumberOftrades,OutofsampleAverageTrade
some sort of gui showing % of optimization done, and ability to abort optimization with a mouse click.
stage3
genetic optimization option instead of brute force
or Particle Swarm optimization and CMA-ES algorithms.
fitness criteria must be programmable. (ini file or gui)
ie fitnes=(netprofit*2)*profitfactor
stage4
distributive processing to spread load over multiple computers on local lan.
Projektazonosító: #2754359