Adding third variable to a backtest

backtest scripts: Binary SPY:IEF entry and exit.

Entry: 3m RS Signal SPY:IEF Bullish IsTicker

A1 = GETDATA(CODE=SPY:US);
A2 = GETDATA(CODE=IEF:US);
B1 = A1/A2;
C1 = MA(B1,BARS=65, STYLE=Exponential, CALC=Close);
C2 = CLOSE(B1) > C1;
C3 = C1 IsUp;
V2 = CLOSE(B1);
V3 = HIGHESTHIGH(V2, BARS=65);
V4 = LOWESTLOW(V2, BARS=65);
V5 = V2 > V3;
V6 = V2 < V4;
V7 = SWITCH(V5,V6);
V9 = C2 + C3 + V7;
V10 = V9 > 2.01;
V11 = V9 < 0.99;
V12 = SWITCH(V10,V11);
//Entry
V12 ChangeTo 1 and ISTICKER(CODE=SPY:US) or 
V12 ChangeTo 0 and ISTICKER(CODE=IEF:US);
//Exit
//V12 ChangeTo 0 and ISTICKER(CODE=SPY:US) or 
//V12 ChangeTo 1 and ISTICKER(CODE=IEF:US)
Exit: 3M RS Signal SPY:IEG Baerish IsTicker
A1 = GETDATA(CODE=SPY:US);
A2 = GETDATA(CODE=IEF:US);
B1 = A1/A2;
C1 = MA(B1,BARS=65, STYLE=Exponential, CALC=Close);
C2 = CLOSE(B1) > C1;
C3 = C1 IsUp;
V2 = CLOSE(B1);
V3 = HIGHESTHIGH(V2, BARS=65);
V4 = LOWESTLOW(V2, BARS=65);
V5 = V2 > V3;
V6 = V2 < V4;
V7 = SWITCH(V5,V6);
V9 = C2 + C3 + V7;
V10 = V9 > 2.01;
V11 = V9 < 0.99;
V12 = SWITCH(V10,V11) ;
//Entry
//V12 ChangeTo 1 and ISTICKER(CODE=SPY:US) or 
//V12 ChangeTo 0 and ISTICKER(CODE=IEF:US);
//Exit
V12 ChangeTo 0 and ISTICKER(CODE=SPY:US) or 
V12 ChangeTo 1 and ISTICKER(CODE=IEF:US)

I would like to add a third criteria that includes both SPY and IEF relative underperformer to BIL So when SPY and IEF underperform BIL (cash) then it would not invest in either SPY or IEF (above binary scripts)

  • SPY:BIL
  • IEF:BIL

SPY:BIL
A1 = GETDATA(CODE=SPY:US);
A2 = GETDATA(CODE=BIL:US);
B1 = A1/A2;
C1 = MA(B1,BARS=65, STYLE=Exponential, CALC=Close);
C2 = CLOSE(B1) > C1;
C3 = C1 IsUp;
V2 = CLOSE(B1);
V3 = HIGHESTHIGH(V2, BARS=65);
V4 = LOWESTLOW(V2, BARS=65);
V5 = V2 > V3;
V6 = V2 < V4;
V7 = SWITCH(V5,V6);
V9 = C2 + C3 + V7;
V10 = V9 > 2;
V11 = V9 < 1;
SWITCH(V10,V11) Equals 0

IEF:BIL
A1 = GETDATA(CODE=IEF:US);
A2 = GETDATA(CODE=BIL:US);
B1 = A1/A2;
C1 = MA(B1,BARS=65, STYLE=Exponential, CALC=Close);
C2 = CLOSE(B1) > C1;
C3 = C1 IsUp;
V2 = CLOSE(B1);
V3 = HIGHESTHIGH(V2, BARS=65);
V4 = LOWESTLOW(V2, BARS=65);
V5 = V2 > V3;
V6 = V2 < V4;
V7 = SWITCH(V5,V6);
V9 = C2 + C3 + V7;
V10 = V9 > 2;
V11 = V9 < 1;
SWITCH(V10,V11) Equals 0

1-US-Asset-Class-spyief-scan.owb (337 KB)