[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 803

 
Andrei01:
Можно ли как-то узнать пределы цен на вертикальной шкале графика для расчета масштаба (не цену инструмента, находится по F8)?

double WindowPriceMin( int index=0)
double WindowPriceMax( int index=0)
 
Top2n:
Всем привет, Запускаю советник в тестере, а он не открывает позиции. В журнале пишит EURUSD,M5: OrderSend error 131. С лотом все норма. работал, работал а потом перестал уже не в первый раз. Подскажите может у кого были проблемы такие. заранее благодарен


Наверно у Вас лот не нормализован приведите в норму с помощью:
double NormalizeDouble( double value, int digits)
 
zhuki:
Наверно у Вас лот не нормализован приведите в норму с помощью:
double NormalizeDouble( double value, int digits)
Вообще то у него, если мне память не изменяет, есть готовая функция для нормализации лотов...
С учётом всех возможных ограничений ДЦ...
Вот только если он её не использует... тады - ОЙ... :)
 
zhuki:

double WindowPriceMin( int index=0)
double WindowPriceMax( int index=0)
Спасибо. А есть ли какая-то возможность это программно менять?
 

                Здраствуйте форумчане.

                Тут мне дедки под подьездом подсказали-Медовый Спас седне. С праздничком всех.

                А я со своим... Drknn грит показания индикаторов возможно обрабатывать.

                Можно-ли сделать сумму A/D за заданый период и так-же сумму OBV, а потом их поделить между собой(OBV в числителе)

               В знаменателе A/D + коэффициент с выводом в настройки.

                Ноль посредине, границы плавающие.

               Сумма-НЕ ИТОГ. Каждое движение по абсолютной величине. 

               А я вам разворот по евре 

 
Коничиуа всем! Как в советнике сделать так, чтобы при условии бай или селл открылось три ордера с разными тейками и только один раз на свече. Заранее аригато!
 
Maniac:
Коничиуа всем! Как в советнике сделать так, чтобы при условии бай или селл открылось три ордера с разными тейками и только один раз на свече. Заранее аригато!
Сделать 3 ордер сенд с разными тейками или зациклить эту функцию до 3(for или while), на каждой итерации свой тейк
 
sanyooooook:
Сделать 3 ордер сенд с разными тейками или зациклить эту функцию до 3(for или while), на каждой итерации свой тейк


Сделать 3 ордер сенд с разными тейками - открывает первый ордер три раза :(

зациклить эту функцию до 3(for или while), на каждой итерации свой тейк - открывает кучу первых ордеров :(

Если не сложно покажите на примере как это сделать? 

 
Maniac:


Сделать 3 ордер сенд с разными тейками - открывает первый ордер три раза :(

зациклить эту функцию до 3(for или while), на каждой итерации свой тейк - открывает кучу первых ордеров :(

Если не сложно покажите на примере как это сделать?

А подсчет открытых ордеров ведётся?
 
sanyooooook:
А подсчет открытых ордеров ведётся?
extern double TakeProfit = 35;
extern double StopLoss   = 25;
extern double Lots       = 0.1;

int NumberOfBarOpenLastPos(string sym="", int tf=0, int op=-1, int mn=-1) {
  datetime oot;
  int      i, k=OrdersTotal();
 
  if (sym=="") sym=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sym) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (oot<OrderOpenTime()) oot=OrderOpenTime();
            }
          }
        }
      }
    }
  }
  return(iBarShift(sym, tf, oot, True));
}
int NumberOfBarCloseLastPos(string sy="0", int tf=0, int op=-1, int mn=-1) {
  datetime t;
  int      i, k=OrdersHistoryTotal();

  if (sy=="" || sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy) {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) t=OrderCloseTime();
            }
          }
        }
      }
    }
  }
  return(iBarShift(sy, tf, t, True));
}
int start()
  {
   
   int ticket;
   if(Bars<100)
     {
      Print("bars less than 100");
      return(0);  
     }
   if(TakeProfit<10)
     {
      Print("TakeProfit less than 10");
      return(0);
     }
   if ((NumberOfBarOpenLastPos()>0||NumberOfBarOpenLastPos()==-1)&&(NumberOfBarCloseLastPos()>0||NumberOfBarCloseLastPos()==-1))
     {
      
      if(AccountFreeMargin()<(1000*Lots))
        {
         Print("We have no money. Free Margin = ", AccountFreeMargin());
         return(0);  
        }
      
      if(Bid>High[1])
        {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"test",16384,0,Green);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
           }
         else Print("Error opening BUY order : ",GetLastError()); 
         return(0); 
        }
     
      if(Bid<Low[1])
        {
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,"test",16384,0,Red);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
           }
         else Print("Error opening SELL order : ",GetLastError()); 
         return(0);  
        }
      return(0);
     }

  }


Вот код советника. Нужно чтобы:

1) он открывал не одну, а сразу три сделки со стопами 25 и тейками 15, 35, 50

2) после закрытия второго ордера по тейку (35) последняя позиция (с тейком 50) переводилась в безубыток 

Причина обращения: