//+------------------------------------------------------------------+ //| WeeklyBreakout.mq4 | //| Copyright ?2007, Arui | //| http://www.ea-performance.com | //+------------------------------------------------------------------+ #property copyright "Copyright ?2007, Arui" #property link "http://www.ea-performance.com" // This ea is based on SIBKIS's weekly breakout system extern int startTime = 0; // GMT time extern int startDay = 2; // Tuesday extern int endTime = 19; extern int endDay = 5; // Close all orders at the end of Friday extern int stopLoss = 100; extern double lots = 0.1; extern int breakEven = 0; extern int magicNumber= 2007411; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- if(DayOfWeek()==startDay && TimeCurrent() > StrToTime(startTime+":00") && TimeCurrent()< StrToTime(startTime+":10") ) { if(currentOrders_By_Type(OP_BUYSTOP)==0) // Send BuyStop order { double buyPrice = NormalizeDouble(Ask + 50*Point,Digits); double buyStopPrice = NormalizeDouble(buyPrice - stopLoss*Point,Digits); OrderSend(Symbol(),OP_BUYSTOP,lots,buyPrice,3,buyStopPrice,0,"weekly breakout 1.0",magicNumber,0,Green); } if(currentOrders_By_Type(OP_SELLSTOP)==0) { double sellPrice = NormalizeDouble(Bid - 50*Point,Digits); double sellStopPrice = NormalizeDouble(sellPrice + stopLoss*Point,Digits); OrderSend(Symbol(),OP_SELLSTOP,lots,sellPrice,3,sellStopPrice,0,"weekly breakout 1.0",magicNumber,0,Yellow); } } if(breakEven > 0) moveToBreakeven(); if(DayOfWeek()==endDay && TimeCurrent()>=StrToTime(endTime+":00")&& TimeCurrent()<=StrToTime(endTime+":10")) { closeAll(); } //---- return(0); } //+------------------------------------------------------------------+ int currentOrders_By_Type(int type) { int cur_orders = 0; for(int i=0;i 0 && Bid-OrderOpenPrice()> breakEven*Point && OrderOpenPrice()!= OrderStopLoss() ) { OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Orange); } }//end buy if (OrderType()==OP_SELL) { if ( breakEven > 0 && OrderOpenPrice()-Ask>breakEven*Point && OrderOpenPrice()!= OrderStopLoss()) { OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Orange); } }//end sell } }//end for }// end trailing