/*[[ Name := Mr Roboto-2 Author := FAB4X Link := Notes := M5 for all majors Lots := 1.00 Stop Loss := 45 Take Profit := 150 Trailing Stop := 15 ]]*/ Var: bull(0),bear(0),bullstrength(0),bearstrength(0); Define: slippage(2),MM(0),Risk(7.5); Var: sl(0),tp(0),cnt(0),b(0),s(0),Opentrades(0),lotsi(0),ITB(0),ITS(0); VAR: sbb(0),cs(0); bullstrength = iBullsPower(5,PRICE_CLOSE,0)*10000; bearstrength = iBearsPower(5,PRICE_CLOSE,0)*10000; bull = iBullsPower(5,PRICE_CLOSE,1)*10000; bear = iBearsPower(5,PRICE_CLOSE,1)*10000; sbb= (bull+bear); cs= (bullstrength+bearstrength); comment("Bull & Bear Power= ",sbb,"\n CURRENT BULL/BEAR STRENGTH ",cs); ////////////////////////////////////////////////// ///////////// Manage multiple trades ///////////// ////////////////////////////////////////////////// Opentrades=0; For cnt=1 to TotalTrades Begin If OrderValue(cnt,Val_Symbol)=Symbol then { Opentrades=Opentrades+1; }; End; ////////////////////////////////////////////////// ///////////// Money Manager ///////////// ////////////////////////////////////////////////// if mm<>0 then Lotsi=Ceil(Balance*risk/10000)/10 else Lotsi=Lots; if OpenTrades != 0 then { for cnt = 1 to TotalTrades { if OrderValue(cnt, VAL_SYMBOL) == Symbol then { if (OrderValue(cnt, VAL_TYPE) == OP_BUY) then { if cs < sbb and sbb < -5 then { CloseOrder (OrderValue(cnt, VAL_TICKET),OrderValue(cnt, VAL_LOTS),OrderValue(cnt, VAL_CLOSEPRICE),Slippage,blue); Exit; } } if (OrderValue(cnt, VAL_TYPE) == OP_SELL) then { if cs > sbb and sbb > 5 then { CloseOrder (OrderValue(cnt, VAL_TICKET),OrderValue(cnt, VAL_LOTS),OrderValue(cnt, VAL_CLOSEPRICE),Slippage,red); Exit; } } } } } if Opentrades = 0 then { if cs > sbb and sbb > 5 then { sl = Ask - StopLoss * Point; tp = Bid + TakeProfit * Point; SetOrder(OP_BUY,Lotsi,Ask,slippage,sl,tp,Blue); Exit; } if cs < sbb and sbb < -5 then { sl = Bid + StopLoss * Point; tp = Ask - TakeProfit * Point; SetOrder(OP_SELL,Lotsi,Bid,slippage,sl,tp,Red); Exit; } } b = 1 * Point + iATR(5,1) * 1.5; s = 1 * Point + iATR(5,1) * 1.5; for cnt = 1 to TotalTrades { if OrderValue(cnt,VAL_TYPE) == 0 and OrderValue(cnt,VAL_SYMBOL) == Symbol then { if OrderValue(cnt,VAL_OPENPRICE) > OrderValue(cnt,VAL_STOPLOSS) and Bid - OrderValue(cnt,VAL_OPENPRICE) > StopLoss * Point then { ModifyOrder(OrderValue(cnt,VAL_TICKET),OrderValue(cnt,VAL_OPENPRICE),OrderValue(cnt,VAL_OPENPRICE),OrderValue(cnt,VAL_TAKEPROFIT),SlateBlue); Exit; } if Bid - OrderValue(cnt,VAL_OPENPRICE) > b then { if OrderValue(cnt,VAL_STOPLOSS) < Bid - b then { ModifyOrder(OrderValue(cnt,VAL_TICKET),OrderValue(cnt,VAL_OPENPRICE),Bid - b,OrderValue(cnt,VAL_TAKEPROFIT),SlateBlue); Exit; } } } if OrderValue(cnt,VAL_TYPE) == 1 and OrderValue(cnt,VAL_SYMBOL) == Symbol then { if OrderValue(cnt,VAL_OPENPRICE) < OrderValue(cnt,VAL_STOPLOSS) and OrderValue(cnt,VAL_OPENPRICE) - Ask > StopLoss * Point then { ModifyOrder(OrderValue(cnt,VAL_TICKET),OrderValue(cnt,VAL_OPENPRICE),OrderValue(cnt,VAL_OPENPRICE),OrderValue(cnt,VAL_TAKEPROFIT),Red); Exit; } if OrderValue(cnt,VAL_OPENPRICE) - Ask > s then { if OrderValue(cnt,VAL_STOPLOSS) > Ask + s then { ModifyOrder(OrderValue(cnt,VAL_TICKET),OrderValue(cnt,VAL_OPENPRICE),Ask + s,OrderValue(cnt,VAL_TAKEPROFIT),Red); Exit; } } } }