Trading Strategies from Active Trader Magazine

Triple Screen SMA System p54

While the entry and exit signals can be used in MetaStock 6.52 or later, this system requires at least MetaStock 8.0 to set the correct trade size. To create this system:

  • Select the Enhanced System tester from the Tools menu
  • Click New
  • Enter the name of the system
  • Select the Buy Order tab and enter the following formula:

    bc:=Mov(C,200,S)>Ref(Mov(C,200,S),-10) AND
    Mov(C,100,S)>Ref(Mov(C,100,S),-10) AND
    ADX(14)>Ref(ADX(14),-10) AND
    Cross(Mov(C,15,S),L);

    sc:=Mov(C,100,S)<Ref(Mov(C,100,S),-10);

    trade:= If(PREV <= 0, If(bc,C,0),
    If(L<=(PREV*0.95),-.003,
    If(H>=(PREV*1.05),-.002,
    If(sc,-.001 ,PREV))));

    cross(trade>0,0.5)

  • Set the order type to Stop Limit
  • Enter the following formula for the Limit or Stop Price:

    ref(h,-1)+ 0.01

  • Set the enter size dropdown to "% of available equity"
  • Click the italics f to the right of the space for the entry size
  • In the window that appears, enter the following formula:

    equity:=Simulation.AccountCash+Simulation.AccountBorrowed+
    Simulation.PortfolioValue+Simulation.AccountReserved;
    (equity*.05)/(c*.05)

  • Select the Sell Order tab and enter this formula:

    bc:=Mov(C,200,S)>Ref(Mov(C,200,S),-10) AND
    Mov(C,100,S)>Ref(Mov(C,100,S),-10) AND
    ADX(14)>Ref(ADX(14),-10) AND
    Cross(Mov(C,15,S),L);

    sc:=Mov(C,100,S)<Ref(Mov(C,100,S),-10);

    trade:= If(PREV <= 0, If(bc,C,0),
    If(L<=(PREV*0.95),-.003,
    If(H>=(PREV*1.05),-.002,
    If(sc,-.001 ,PREV))));

    cross(0,trade)

  • Set the order type to "Stop Limit"
  • Click the italics f to the right of the space for the Limit or Stop Price
  • In the window that appears, enter the following formula:

    bc:=Mov(C,200,S)>Ref(Mov(C,200,S),-10) AND
    Mov(C,100,S)>Ref(Mov(C,100,S),-10) AND
    ADX(14)>Ref(ADX(14),-10) AND
    Cross(Mov(C,15,S),L);

    sc:=Mov(C,100,S)<Ref(Mov(C,100,S),-10);

    trade:= If(PREV <= 0, If(bc,C,0),
    If(L<=(PREV*0.95),-.003,
    If(H>=(PREV*1.05),-.002,
    If(sc,-.001 ,PREV))));

    bp:=if(cross(trade>0,0.5),c,prev);

    if(trade=-.001,C, if(trade=-.002, bp*1.05, bp*0.95))

  • Select the Sell Short Order tab and enter the following formula:

    sc:=mov(c,200,s)<ref(mov(c,200,s),-10) AND
    mov(c,100,s)<ref(mov(c,100,s),-10) AND
    ADX(14)<ref(ADX(14),-10) AND
    cross(h,mov(c,15,s));

    bc:=(mov(c,100,s)>ref(mov(c,100,s),-10));

    trade:= If(PREV <= 0, If(sc,C,0),
    If(H>=(PREV*1.05),-.003,
    If(L<=(PREV*0.95),-.002,
    If(bc,-.001 ,PREV))));

    cross(trade>0,0.5)

  • Set the order type to Stop Limit
  • Enter the following formula for the Limit or Stop Price:

    ref(L,-1)-0.01

  • Set the enter size dropdown to "% of available equity"
  • Click the italics f to the right of the space for the entry size
  • In the window that appears, enter the following formula:

    equity:=Simulation.AccountCash+Simulation.AccountBorrowed+
    Simulation.PortfolioValue+Simulation.AccountReserved;
    (equity*.05)/(c*.05)

  • Select the Buy to Cover Order tab and enter this formula:

    sc:=mov(c,200,s)<ref(mov(c,200,s),-10) AND
    mov(c,100,s)<ref(mov(c,100,s),-10) AND
    ADX(14)<ref(ADX(14),-10) AND
    cross(h,mov(c,15,s));

    bc:=(mov(c,100,s)>ref(mov(c,100,s),-10));

    trade:= If(PREV <= 0, If(sc,C,0),
    If(H>=(PREV*1.05),-.003,
    If(L<=(PREV*0.95),-.002,
    If(bc,-.001 ,PREV))));

    cross(0,trade)

  • Set the order type to Stop Limit
  • Enter the following formula for the Limit or Stop Price:

    sc:=mov(c,200,s)<ref(mov(c,200,s),-10) AND
    mov(c,100,s)<ref(mov(c,100,s),-10) AND
    ADX(14)<ref(ADX(14),-10) AND
    cross(h,mov(c,15,s));
    bc:=(mov(c,100,s)>ref(mov(c,100,s),-10));
    trade:= If(PREV <= 0, If(sc,C,0),
    If(H>=(PREV*1.05),-.003,
    If(L<=(PREV*0.95),-.002,
    If(bc,-.001 ,PREV))));
    bp:=if(cross(trade>0,0.5),c,prev);
    if(trade=-.001,C, if(trade=-.002, bp*0.95, bp*1.05))