//+-------------------------------------------------------------------+ //| Made/Modified by Alejandro Galindo | //| | //| If this work/modification is helpful to you | //| send me a PayPal donation to ag@elcactus.com | //| any help is apreciated :) | //| Thanks. | //+-------------------------------------------------------------------+ /*[[ Name := CAMARILLA FOREX SYSTEM M5 Author := Copyright © 2005 FAB4x, Alejandro Galindo & KillerKhan Lots := 1.00 Stop Loss := 0 Take Profit := 0 Trailing Stop := 0 ]]*/ Define: StartHour(0); Define: StartMinute(30); Define: EndHour(21); Define: EndMinute(55); Define: mm(0); Define: risk(7.5); var: cnt(0); var: lotsi(0); var: OpenTrades(0); var: FilledOrders(0); var: Slippage(5); var: L3(0); var: TimetoOpen(0); var: TimetoClose(0); var: tmp(0); var: i(0); var: Trades(2); var: Type("NONE"); var: Reverse(False); var: mode(0); var: H4(0); var: H3(0); var: L4(0); var: L1(0); var: H1(0); var: vQ(""); var: vH4(""); var: vH3(""); var: vL4(""); var: vL3(""); var: vL1(""); var: vH1(""); if Period != 5 then { Comment("This expert is for M5 Charts Only!!!"); Exit; } If TimeYear(time)<2006 then Exit; if Curtime - LastTradeTime < 5 then exit; if mm<>0 then lotsi=Ceil(Balance*risk/10000)/10 else lotsi=Lots; vQ = "[" + SYMBOL + "] Q"; vH4 = "[" + SYMBOL + "] H4"; vH3 = "[" + SYMBOL + "] H3"; vL4 = "[" + SYMBOL + "] L4"; vL3 = "[" + SYMBOL + "] L3"; vL1 = "[" + SYMBOL + "] L1"; vH1 = "[" + SYMBOL + "] H1"; H4=GetGlobalVariable(vH4); H3=GetGlobalVariable(vH3); H1=GetGlobalVariable(vH1); L1=GetGlobalVariable(vL1); L4=GetGlobalVariable(vL4); L3=GetGlobalVariable(vL3); comment(" PLACE A BUYSTOP ORDER AT ", H3 ," PLACE A SELLSTOP ORDER AT " , L3); MoveObject("H4",OBJ_HLINE,time, H4,time, H4,BLUE,1,STYLE_dot); MoveObject("H3",OBJ_HLINE,time,H3,time,H3,BLUE,1,STYLE_dot); MoveObject("H1",OBJ_HLINE,time,H1,time,H1,MediumVioletRed,1,STYLE_DASH); MoveObject("L1",OBJ_HLINE,time,L1,time,L1,MediumVioletRed,1,STYLE_DASH); MoveObject("L3",OBJ_HLINE,time, L3,time, L3,RED,1,STYLE_dot); MoveObject("L4",OBJ_HLINE,time,L4,time,L4,RED,1,STYLE_dot); SetObjectText("H4_txt","Get Out Here ","Arial",7,White); MoveObject("H4_txt",OBJ_TEXT,time,H4,time,H4,White); SetObjectText("H3_txt","Buy Here ","Arial",7,White); MoveObject("H3_txt",OBJ_TEXT,time,H3,time,H3,White); SetObjectText("H1_txt","Stop Loss for Short ","Arial",7,White); MoveObject("H1_txt",OBJ_TEXT,time,H1,time,H1,White); SetObjectText("L1_txt","Stop Loss for Long ","Arial",7,White); MoveObject("L1_txt",OBJ_TEXT,time,L1,time,L1,White); SetObjectText("L3_txt","Sell Here ","Arial",7,White); MoveObject("L3_txt",OBJ_TEXT,time,L3,time,L3,White); SetObjectText("L4_txt","Get Out Here ","Arial",7,White); MoveObject("L4_txt",OBJ_TEXT,time,L4,time,L4,White); OpenTrades=0; For cnt=1 to TotalTrades{ if OrderValue(cnt,VAL_SYMBOL)==Symbol then { OpenTrades++; If OrderValue(cnt,VAL_TYPE)==OP_SELL OR OrderValue(cnt,VAL_TYPE)==OP_BUY then { FilledOrders++; }; }; }; if (Hour==EndHour and Minute>=EndMinute) then { cnt=0;While cnt<=10000 { cnt++; }; For cnt=1 to TotalTrades { mode = OrderValue(cnt,VAL_TYPE); If OrderValue(cnt,VAL_SYMBOL)==Symbol then { Trades=2; Type="NONE"; Reverse=False; If (mode == OP_BUYSTOP) then DeleteOrder(OrderValue(cnt,VAL_TICKET),Brown); If (mode == OP_SELLSTOP) then DeleteOrder(OrderValue(cnt,VAL_TICKET),Brown); If (mode == OP_BUY) then CloseOrder(ord(cnt,VAL_TICKET),ord(cnt,VAL_LOTS),bid,Slippage,Blue); If (mode == OP_SELL) then CloseOrder(ord(cnt,VAL_TICKET),ord(cnt,VAL_LOTS),ask,Slippage,red); Exit; }; }; }; if (Hour==StartHour and Minute>=StartMinute) then { If OpenTrades<1 then { Trades=2; Type="NONE"; Reverse=True; SetOrder(OP_BUYSTOP,Lotsi,H3,Slippage,H1,H4,Blue); SetOrder(OP_SELLSTOP,Lotsi,L3,Slippage,L1,L4,Red); Exit; }; }; // if we only have one Stop order we place the another one to always have ready both sides If OpenTrades==1 and Trades>=1 then { for cnt=1 to TotalTrades { if (OrderValue(cnt,VAL_SYMBOL) == Symbol) then { if OrderValue(cnt,VAL_TYPE)==OP_SELLSTOP then { Trades=1; Type="NONE"; Reverse=True; SetOrder(OP_BUYSTOP,Lotsi,H3,Slippage,L1,H4,Blue); Exit; }; if OrderValue(cnt,VAL_TYPE)==OP_BUYSTOP then { Trades=1; Type="NONE"; Reverse=True; SetOrder(OP_SELLSTOP,Lotsi,L3,Slippage,H1,L4,Red); Exit; }; }; }; }; // if we have opened positions we take care of them for cnt=1 to TotalTrades { if OrderValue(cnt,VAL_SYMBOL) == Symbol then { if OrderValue(cnt,VAL_TYPE) == OP_BUY then { for i=1 to TotalTrades { if (OrderValue(i,VAL_SYMBOL)==Symbol) then { if OrderValue(i,VAL_TYPE)==OP_SELLSTOP OR OrderValue(i,VAL_TYPE)==OP_BUYSTOP then { Trades=1; Type="SELL"; Reverse=True; DeleteOrder(OrderValue(i,VAL_TICKET),brown); Exit; }; }; }; if OrderValue(cnt,VAL_TYPE) == OP_SELL then { for i=1 to TotalTrades { if (OrderValue(i,VAL_SYMBOL)==Symbol) then { if OrderValue(i,VAL_TYPE)==OP_SELLSTOP OR OrderValue(i,VAL_TYPE)==OP_BUYSTOP then { Trades=1; Type="BUY"; Reverse=True; DeleteOrder(OrderValue(i,VAL_TICKET),brown); Exit; }; }; }; }; }; }; }; Exit;