posługuje się takim o to EA, które stawia zlecenia oczekujące na H/L dziennej świeczki, brakuje mi dwóch rzeczy, aby działało wszystko po mojej myśli

czy miałby ktoś chwilę czasu i mógł dodać BE, z możliwością ustawienia po ilu punktach nastąpi przesunięcie w miejsce BE+1.
druga sprawa to zmiana czasu ustawienia zleceń oczekujących z północy czasu brokera, u mnie jest GMT+2, na czas 8 rano w Polsce, czyli 00:00 platfromy + 6h
będę bardzo wdzięczny za pomoc.
Kod: Zaznacz cały
#property copyright "Copyright © 2009, primajaya"
#property link ""
//---- input parameters
extern int TP = 20;
extern int SL = 15;
extern int RangePoint = 10;
extern double LotSize = 1;
extern int MagicNumber = 123456789;
extern bool DelOpposite = false;
#define slip 2
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
double stoplevel = MarketInfo(Symbol(),MODE_STOPLEVEL)*point();
double tik = iVolume(NULL,0,0);
int exp = TimeCurrent() + (Period()*59);
double buyPrice, sellPrice;
if(High[1]-Ask < stoplevel) buyPrice = Ask + RangePoint*point();
else buyPrice = High[1];
if(Bid-Low[1] < stoplevel) sellPrice = Bid - RangePoint*point();
else sellPrice = Low[1];
if(OrdersTotal() == 0)
{
if(tik <= 2)
{
openOrder(Symbol(), OP_BUYSTOP,LotSize,buyPrice,buyPrice-SL*point(), buyPrice+TP*point(),"_Buy_",MagicNumber,exp,Navy);
openOrder(Symbol(), OP_SELLSTOP,LotSize,sellPrice,sellPrice+SL*point(), sellPrice-TP*point(),"_Sell_",MagicNumber,exp,Crimson);
}
}
if(OrdersTotal () == 2)
{
for (int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber)
{
if(DelOpposite) delPending(OP_SELLSTOP,MagicNumber);
}
if(OrderSymbol()==Symbol() && OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber)
{
if(DelOpposite) delPending(OP_BUYSTOP,MagicNumber);
}
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
void openOrder(string simbol, int trade, double lotsize, double price, double sl, double tp,string pesan, int magic, int exp, color warna)
{
int tiket=OrderSend(simbol,trade,lotsize,price,slip,sl,tp,pesan,magic,exp,warna);
if(tiket>0)
{
if(OrderSelect(tiket,SELECT_BY_TICKET,MODE_TRADES)) OrderPrint();
}
else Print("Cannot send order because of : ",GetLastError());
}
void delPending(int trade, int MagicNumber)
{
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==trade && OrderMagicNumber()==MagicNumber)
OrderDelete(OrderTicket(),CLR_NONE);
}
}
double point()
{
double p;
if(Digits==5 || Digits==3) p = Point*10;
else p = Point;
return(p);
}