/*[[ Name := Your_Choice_Hourly_Breakout Author := Link := Lots := 1.00 Stop Loss := 35 Take Profit := 500 Trailing Stop := 0 ]]*/ Define: TradeHour(0); Define: chart(60); Define: DltAftr_Mnts(60); Define: Adj2B.E.Aftr_Pips(10); Define: TrailAt_TimesATR(1); var: cnt(0); var: BuyStop(0); var: SellStop(0); var: orderentered(0); Var: b(0); Var: s(0); var: i(0); Buystop=high[1]+6*point; Sellstop=low[1]-6*point; b = (1 * Point) + (iATR(3,0) * TrailAt_TimesATR); s = (1 * Point) + (iATR(3,1) * TrailAt_TimesATR); If TotalTrades > 1 Then { for cnt = 1 to TotalTrades Begin If Ord(cnt,VAL_TYPE)=OP_BUYSTOP or Ord(cnt,VAL_TYPE)=OP_SELLSTOP then // this is a waiting order! { // check how long it exists in the trading terminal If (CurTime-OrderValue(cnt,VAL_OPENTIME))>DltAftr_Mnts*60 then { DeleteOrder(OrderValue(cnt,VAL_TICKET),RED); Exit; }; }; end; }; If OrderEntered=2 AND TotalTrades = 2 then{ If OrderValue(1,VAL_TYPE)=OP_BUY or OrderValue(1,VAL_TYPE)=OP_SELL then { DeleteOrder(OrderValue(2,VAL_TICKET),Red); exit; }; If OrderValue(2,VAL_TYPE)=OP_BUY or OrderValue(2,VAL_TYPE)=OP_SELL then { DeleteOrder(OrderValue(1,VAL_TICKET),Red); exit; }; }; if period != Chart then { Alert("This advisor only works on the ",chart," minute chart"); exit; }; if hour=TradeHour and minute<5 then{ if TotalTrades=0 then //no open trsdes in any currency { // if iatr(1,1)>19*Point then orderentered=1; SetOrder(OP_BUYSTOP,Lots,buystop,3,sellstop-1*Point,buyStop+TakeProfit*Point,blue); exit; }; if TotalTrades=1 and OrderValue(1,VAL_SYMBOL) = Symbol) and OrderValue(1,val_type) = OP_BUYstop then //only one open trade is in this currency and it's a buy stop { orderentered=2; SetOrder(OP_SELLSTOP,Lots,sellStop,3,buystop+1*Point,sellStop-TakeProfit*Point,blue); exit; };}; for i = 1 to TotalTrades { If Ord(i,VAL_TYPE)=OP_BUY and Ord(i,VAL_SYMBOL)=Symbol Then { If Ord(i,VAL_STOPLOSS)=Ord(i,VAL_OPENPRICE)-StopLoss*Point and Bid-Ord(i,VAL_OPENPRICE)>Adj2B.E.Aftr_Pips*Point then { ModifyOrder(Ord(i,VAL_TICKET), Ord(i,VAL_OPENPRICE), Bid-Adj2B.E.Aftr_Pips*Point, Ord(i,VAL_TAKEPROFIT), Cyan); } else { if Bid - OrderValue(i,VAL_OPENPRICE) > b and Bid-b > Ord(i,VAL_STOPLOSS) then { ModifyOrder(OrderValue(i,VAL_TICKET), OrderValue(i,VAL_OPENPRICE), Bid - b, OrderValue(i,VAL_TAKEPROFIT), Cyan); Exit; }; }; }; If Ord(i,VAL_TYPE)=OP_SELL and Ord(i,VAL_SYMBOL)=Symbol Then { If Ord(i,VAL_STOPLOSS)=Ord(i,VAL_OPENPRICE)+StopLoss*Point and Ord(i,VAL_OPENPRICE)-Ask>Adj2B.E.Aftr_Pips*Point then { ModifyOrder(Ord(i,VAL_TICKET), Ord(i,VAL_OPENPRICE), Ask+Adj2B.E.Aftr_Pips*Point, Ord(i,VAL_TAKEPROFIT), Fuchsia); } else { if OrderValue(i,VAL_OPENPRICE) - Ask > s and Ask+s < Ord(i,VAL_STOPLOSS) then { ModifyOrder(OrderValue(i,VAL_TICKET), OrderValue(i,VAL_OPENPRICE), Ask + s, OrderValue(i,VAL_TAKEPROFIT), Fuchsia); Exit; }; }; }; };