Software Investor

Strategy portfolio on the Mini Index

Ten systematic strategies trading together on the WIN, 10-minute chart. 3,043 simulated trades over 5.3 years, with a separate out-of-sample validation period.

403,006 ptsHistoryOut-of-sample
100k200k300k400k20222023202420252026
403,006 ptsCumulative result
3,043Trades
23.7xResult / max. drawdown
17,024 ptsMaximum drawdown
1.60Profit factor
54%Winning trades
86%Positive months
24Longest losing streak

History and validation

The history was used to build the portfolio. The out-of-sample period starts after the cutoff date and did not influence any choice.

History (in-sample)

364,818 pts

Trades
2944
Max. drawdown
17,024 pts
Result / DD
21.4x
Win rate
54%

May 3, 2021 to May 6, 2026

Out-of-sample (OOS)

38,187 pts

Trades
99
Max. drawdown
7,416 pts
Result / DD
5.1x
Win rate
62%

May 7, 2026 to Aug 14, 2026, no adjustment after the cutoff

Portfolio vs. Mini Index

Cumulative portfolio result in points, with one contract per setup (10 contracts in total), versus the raw Mini Index series (continuous WIN, unadjusted) multiplied by 10 to have the same exposure.

Portfolio 418,208 pts · max. DD 17,024 ptsMini Index ×10 502,000 pts · max. DD 336,650 pts
20222023202420252026Mini Index ×10: 502,000 ptsPortfolio: 418,208 pts-300k-200k-100k100k200k300k400k500k600k700k800k900k

Performance by setup

Cumulative result of each of the ten strategies. The dashed line marks the start of the out-of-sample period. Click a setup to highlight it.

20222023202420252026Setup 01 · Short: 69,198 ptsSetup 02 · Short: 57,234 ptsSetup 03 · Short: 56,570 ptsSetup 04 · Long: 46,632 ptsSetup 05 · Long: 43,861 ptsSetup 06 · Long: 39,831 ptsSetup 07 · Long: 38,029 ptsSetup 08 · Short: 31,041 ptsSetup 09 · Short: 25,895 ptsSetup 10 · Long: 9,918 pts-10k10k20k30k40k50k60k70k

Statistics by setup

Same period and same order as the chart above, history and out-of-sample combined.

SetupSideTradesResult (pts)Max. drawdown (pts)Result / DDProfit factorWin rateAverage per trade (pts)
Setup 01Short42969,1985,12013.5x1.6350%161
Setup 02Short42957,2344,84911.8x1.5853%133
Setup 03Short43256,5704,84911.7x1.5653%131
Setup 04Long25546,6323,73712.5x1.7054%183
Setup 05Long31443,8617,3346.0x1.5557%140
Setup 06Long31439,8314,4369.0x1.7257%127
Setup 07Long31438,0294,1599.1x1.6856%121
Setup 08Short15731,0412,22613.9x2.2259%198
Setup 09Short20825,8952,36111.0x1.7760%124
Setup 10Long1079,9181,9265.1x2.0361%93

Result by year

In index points, all strategies combined.

YearTradesResult (pts)Max. drawdown (pts)Win rate
202142177,1167,25057%
202265060,88117,02451%
202362357,70112,46454%
202455040,85413,78453%
202551761,33412,01153%
2026*282105,11810,56363%

* year in progress

Quarter-by-quarter result

20 of 22 quarters closed positive.

Q2/21: 10,339 ptsQ3/21: 39,514 ptsQ4/21: 27,264 ptsQ1/22: 11,627 ptsQ2/22: 25,134 ptsQ3/22: -10,367 ptsQ4/22: 34,487 ptsQ1/23: 21,497 ptsQ2/23: 13,612 ptsQ3/23: 18,999 ptsQ4/23: 3,593 ptsQ1/24: 19,789 ptsQ2/24: -455 ptsQ3/24: 20,140 ptsQ4/24: 1,380 ptsQ1/25: 22,499 ptsQ2/25: 18,850 ptsQ3/25: 16,085 ptsQ4/25: 3,900 ptsQ1/26: 60,790 ptsQ2/26: 23,289 ptsQ3/26: 21,039 ptsQ2/21Q4/21Q2/22Q4/22Q2/23Q4/23Q2/24Q4/24Q2/25Q4/25Q2/26+20k+40k+60k

Month-by-month result

55 of 64 months closed positive. Hover over a bar to see the value.

May/21: 2,267 ptsJun/21: 8.071 ptsJul/21: 14.172 ptsAug/21: 1,476 ptsSep/21: 23,866 ptsOct/21: 17,081 ptsNov/21: 9.292 ptsDec/21: 891 ptsJan/22: 6.609 ptsFeb/22: 3,016 ptsMar/22: 2.002 ptsApr/22: 1,500 ptsMay/22: 18,079 ptsJun/22: 5.556 ptsJul/22: -13.458 ptsAug/22: 6,928 ptsSep/22: -3,838 ptsOct/22: 7,081 ptsNov/22: 12.474 ptsDec/22: 14,932 ptsJan/23: 2.388 ptsFeb/23: 5,650 ptsMar/23: 13.458 ptsApr/23: -2,639 ptsMay/23: 11,265 ptsJun/23: 4.986 ptsJul/23: 9.211 ptsAug/23: 4,624 ptsSep/23: 5,164 ptsOct/23: 3,329 ptsNov/23: 3.218 ptsDec/23: -2,953 ptsJan/24: 12.632 ptsFeb/24: 5,977 ptsMar/24: 1.181 ptsApr/24: 3,028 ptsMay/24: 312 ptsJun/24: -3.796 ptsJul/24: 8.254 ptsAug/24: 8,694 ptsSep/24: 3,192 ptsOct/24: -5,111 ptsNov/24: 4.109 ptsDec/24: 2,382 ptsJan/25: 5.813 ptsFeb/25: 7,248 ptsMar/25: 9.437 ptsApr/25: -1,181 ptsMay/25: 13,335 ptsJun/25: 6.697 ptsJul/25: 2.127 ptsAug/25: 14,146 ptsSep/25: -188 ptsOct/25: 5,933 ptsNov/25: 1.651 ptsDec/25: -3,684 ptsJan/26: 32.834 ptsFeb/26: 7,512 ptsMar/26: 20.443 ptsApr/26: 6,286 ptsMay/26: 4,048 ptsJun/26: 12.955 ptsJul/26: 8.731 ptsAug/26: 12,308 ptsMay/21Nov/21May/22Nov/22May/23Nov/23May/24Nov/24May/25Nov/25May/26-10k+10k+20k+30k

Monthly map

In thousands of points. Green is a positive month, red is a negative one.

JanFevMarAbrMaiJunJulAgoSetOutNovDezYear
20212.38.114.21.523.917.19.30.977.1
20226.63.02.01.518.15.6-13.56.9-3.87.112.514.960.9
20232.45.713.5-2.611.35.09.24.65.23.33.2-3.057.7
202412.66.01.23.00.3-3.88.38.73.2-5.14.12.440.9
20255.87.29.4-1.213.36.72.114.1-0.25.91.7-3.761.3
202632.87.520.46.34.013.08.712.3105.1

Result per trade

Average of 132 pts per trade, about 576 trades per year.

0-1,196 pts+2,280 ptsLossesGains

Source code of a strategy

An example for technical audit: a research strategy, outside the portfolio and with more modest performance than the ten above. It is plain Python, with no libraries, and runs on any CSV of 10-minute bars of the WIN. Each trade in the list can be checked against your own data.

History

44,006 pts
Trades
307
Largest drop
8,969 pts
Winning trades
59%

Out-of-sample

2,443 pts
Trades
23
Largest drop
3,115 pts
Winning trades
57%
# python win.py   (CSV: datetime,open,high,low,close,roll)
F="WIN_M10.csv"
a,b,c,d,e=.0075,.0175,25,24,1050
L=open(F).read().splitlines()
H=L[0].split(",")
I=[H.index(k) for k in("datetime","open","high","low","close","roll")]
D={}
for s in L[1:]:
    r=s.split(",")
    t,o,h,l,x,z=[r[i] for i in I]
    D.setdefault(t[:10],[]).append((t,int(t[11:13])*60+int(t[14:16])+10,float(o),float(h),float(l),float(x),z=="True"))
K=list(D)
n=S=0
for k in range(1,len(K)):
    P,T=D[K[k-1]],D[K[k]]
    if any(q[6] for q in T):continue
    u=max(q[3] for q in P);v=min(q[4] for q in P)
    if u<=v or len(T)<2 or not(T[0][2]-v)/(u-v)*100<c:continue
    p=T[0][5];g=p*(1+a);s=p*(1-b);w=T[1][5]
    for j in range(1,len(T)):
        _,m,_,h,l,x,_=T[j]
        if h>=g and l<=s:raise SystemExit(T[j][0])
        if h>=g:w=g;break
        if l<=s:w=s;break
        w=x
        if j>=d or m>=e or j==len(T)-1:break
    print("%s;%.1f;%.1f;%.1f"%(T[0][0],p,w,w-p))
    n+=1;S+=w-p
print(n,round(S))

Result in points, 1 contract, before costs. The simulation of the portfolio strategies follows the same entry, target, stop and exit mechanics; some have variations (such as a trailing stop) that do not appear in this example. The rules and parameters of the ten strategies remain confidential.

Want to talk?

I present the work in detail to anyone who is interested.

Contact