Strategy idea: Use double average lines to determine the direction;
use the DDI indicator to determine when to open position;
proportional to determine the stop loss and take profit
Data cycle: 15 minutes


- Indicators in main chart:
VAR2^^MA(C, PARAM2);
VAR3^^MA(VAR2, PARAM1); - Indicators in secondary chart:
VAR9: MA (VAR8, 2*PARAM1);
VAR10: MA (VAR9, PARAM1);
VAR8: VAR6-VAR7;

(*backtest start: 2018-11-01 00:00:00 end: 2018-12-14 00:00:00 period: 15m exchanges: [{"eid":"Futures_BitMEX","currency":"XBT_USD"}] args: [["TradeAmount",100,126961],["ContractType","XBTUSD",126961]] *) VAR2^^MA(C,PARAM2); VAR3^^MA(VAR2,PARAM1); VAR4:=IFELSE((HIGH+LOW)<=(REF(HIGH,1)+REF(LOW,1)),0,MAX(ABS(HIGH-REF(HIGH,1)),ABS(LOW-REF(LOW,1)))),NODRAW; VAR5:=IFELSE((HIGH+LOW)>=(REF(HIGH,1)+REF(LOW,1)),0,MAX(ABS(HIGH-REF(HIGH,1)),ABS(LOW-REF(LOW,1)))),NODRAW; VAR6:=SUM(VAR4,PARAM1)/(SUM(VAR4,PARAM1)+SUM(VAR5,PARAM1)),NODRAW; VAR7:=SUM(VAR5,PARAM1)/(SUM(VAR5,PARAM1)+SUM(VAR4,PARAM1)),NODRAW; VAR8:VAR6-VAR7; VAR9:MA(VAR8,2*PARAM1); VAR10:MA(VAR9,PARAM1); BUYK:=BARPOS>PARAM2 AND C>VAR2 AND VAR2>VAR3 AND VAR8>0 AND VAR9>VAR10; SELLK:=BARPOS>PARAM2 AND C<VAR2 AND VAR2<VAR3 AND VAR8<0 AND VAR9<VAR10; SELLY:=C<VAR2 AND C>BKPRICE*(1+0.01*PARAM3); BUYY:=C>VAR2 AND C<SKPRICE*(1-0.01*PARAM3); SELLS:=C<BKPRICE*(1-PARAM3*0.01); BUYS:=C>SKPRICE*(1+PARAM3*0.01); BKVOL=0 AND BUYK,BK; SKVOL=0 AND SELLK,SK; SELLS,SP(BKVOL); BUYS,BP(SKVOL); SELLY,SP(BKVOL); BUYY,BP(SKVOL);
Backtest on FMZ Quant to know more
Source Code: https://www.fmz.com/strategy/128133
