//+------------------------------------------------------------------+
//|                                              straightforward.mq4 |
//|                                          Copyright 2013, Aleksey |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, Aleksey"
#property link      "http://www.mql5.com"
//+------------------------------------------------------------------+
extern int magic=20131001;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
//для открытия ордера только при открытии бара
datetime bar=0;
//----------------------
int start()
{
// срабатывать только при открытии бара
datetime current_time=Time[0];
if(bar>=current_time) return (0);
bar=current_time;
//-----------------------------------------------
// подсчет кол-ва ордеров закрытых по TP и SL, подсчет прибыли/убытков (для строгих и не строгих лот считать раздельно)
// расчет лота
double lot=0.01;
//-----------------------------------------------
// ограничение количества ордеров?
// ограничение на время открытия ордера?
//-------------------------------------------------------
// расчет стоп-лосса и тейк-профита Buy
double SLB=2*Low[1]-High[1];
double TPB=(Open[1]+2*High[1]+Close[1])/4;
// расчет вхождения в сделку Buy (строгие условия/не строгие)
//Buy  (Open[1]>(Open[1]+2*High[1]+Close[1])/4)&&(Close[1]<(Open[1]+2*Low[1]+Close[1])/4) - строго
// открытие ордера
int Buy;
  if ((Open[1]>(Open[1]+2*High[1]+Close[1])/4)&&(Close[1]<(Open[1]+2*Low[1]+Close[1])/4))
    {
     Buy=OrderSend(Symbol(),OP_BUY,lot,Ask,2,SLB,TPB,NULL,magic,0,Blue);
    }
//---------------------------------------------------------------
// посчитать время жизни ордеров (TP и SL - раздельно)
// посчитать сколько баров живут открытые ордера и модернизировать их по TP и SL
// или делать расчет на N баров вперед, пересчитывать TP и SL, уровни безубытка      
//--------------------------------------------------
// расчет стоп-лосса и тейк-профита Sell
double SLS=2*High[1]-Low[1];
double TPS=(Open[1]+2*Low[1]+Close[1])/4;
// расчет вхождения в сделку Sell (строгие условия/не строгие)
//Sell (Open[1]<(Open[1]+2*Low[1]+Close[1])/4)&&(Close[1]>(Open[1]+2*High[1]+Close[1])/4) - строго
// открытие ордера
int Sell;
  if ((Open[1]<(Open[1]+2*Low[1]+Close[1])/4)&&(Close[1]>(Open[1]+2*High[1]+Close[1])/4))
    {
     Sell=OrderSend(Symbol(),OP_SELL,lot,Bid,2,SLS,TPS,NULL,magic,0,Red);
    }
//---------------------------------------------------------------
// посчитать время жизни ордеров (TP и SL - раздельно)
// посчитать сколько баров живут открытые ордера и модернизировать их по TP и SL
// или делать расчет на N баров вперед, пересчитывать TP и SL, уровни безубытка      
//--------------------------------------------------

//-----------------------------------------------
//-----------------------------------------------
//расчеты для не строгих условий
//-----------------------------------------------
return(0);
}