#property strict
extern double Lots = 0.01; // Обем на ордерите
extern double StepUSD = 5.0; // Стъпка между нивата (USD)
extern double TP_USD = 5.0; // Индивидуален TP (USD)
extern int LevelsAbove = 6; // Брой Buy Stop над цената
extern int LevelsBelow = 6; // Брой Buy Limit под цената
extern int Slippage = 30; // Слипидж
extern int MagicNumber = 888001; // Magic за разпознаване
extern bool UseBasketTP = false; // true = Basket TP, false = Individual TP
extern double BasketTarget = 20.0; // Целева обща печалба (USD)
int _digits;
double _point;
string TradeSymbol; // автоматично ще се задава
double NormalizePrice(double p){ return NormalizeDouble(p, _digits); }
bool IsMine(){ return (OrderMagicNumber()==MagicNumber && OrderSymbol()==TradeSymbol); }
bool PendingExists(double level, int type){
double tol = _point * 20;
for(int i=0;i<OrdersTotal();i++){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if(IsMine() && OrderType()==type){
if(MathAbs(OrderOpenPrice()-level) <= tol) return true;
}
}
}
return false;
}
bool PlacePending(int type, double level){
double tp = 0.0;
if(!UseBasketTP){ // индивидуален TP
tp = NormalizePrice(level + TP_USD);
}
int ticket = OrderSend(TradeSymbol, type, Lots, level, Slippage, 0, tp,
"GridBUY", MagicNumber, 0,
(type==OP_BUYLIMIT)?clrGreen:clrBlue);
if(ticket<0){
Print("OrderSend error ", GetLastError(), " @", DoubleToString(level,_dПоказано первые 50% кода (символов: 2444)
Введите ваш email и нажмите кнопку, чтобы перейти к оплате.