[АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3. - страница 527

 
Здравствуйте. Подскажите, советник должен открыть позицию по цене рынка.Как можно определить-открылся ли ордер и как определить цену его открытия?
 
awega:
Здравствуйте. Подскажите, советник должен открыть позицию по цене рынка.Как можно определить-открылся ли ордер и как определить цену его открытия?
https://book.mql4.com/ru/
 
Как узнать текущее время?
 
Нужно реализовать возвращение функцией составного результата из значений нескольких типов.Подскажите пожалуйста как это лучше сделать? Или надо просто использовать глобальные переменные для значений данной функции?
 
Если знаете,подскажите в какой теме искать
 
//+------------------------------------------------------------------+
//|                                                       10pips.mq4 |
//|                                                        fortrader |
//|                                                 www.fortrader.ru |
//+------------------------------------------------------------------+
#property copyright "fortrader"
#property link      "www.fortrader.ru"

extern int       TakeProfit_Buy = 10;
extern int       StopLoss_Buy = 5000;
extern int       TrailingStop_Buy = 5000;
extern int       TakeProfit_Sell = 10;
extern int       StopLoss_Sell = 5000;
extern int       TrailingStop_Sell = 5000;
extern double     Lots = 0.01;

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
  if (Volume[0] > 1000) return(0);
// Объявляем переменные
int total, cnt;

  total=OrdersTotal();

  // Проверка средств
  if(AccountFreeMargin()<(1000*Lots))
     {
       Print("We have no money. Free Margin = ", AccountFreeMargin());   
       return(0);  
     }
  if(total<1000)
    {  
     // Открытие сделкок
       OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss_Buy*Point,Ask+TakeProfit_Buy*Point,"Покупаем",16384,0,Green);
       Sleep(10);//10 секунд
       RefreshRates();
       OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss_Sell*Point,Bid-TakeProfit_Sell*Point,"Продаем",16385,0,Red);
    }
  if(total==1000)
    {
       OrderSelect(0, SELECT_BY_POS, MODE_TRADES);
       if(OrderType()==OP_BUY)
         {
           OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss_Buy*Point,Ask+TakeProfit_Buy*Point,"Покупаем",16384,0,Green);
         }
       if(OrderType()==OP_SELL)
         {
           OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss_Sell*Point,Bid-TakeProfit_Sell*Point,"Продаем",16385,0,Red);
         }
    }   
  for(cnt=total-1;cnt>=0;cnt--)
     {
       OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
       if(OrderType()==OP_BUY)
         {
           if(TrailingStop_Buy>0)  
             {                 
               if(Bid-OrderOpenPrice()>Point*TrailingStop_Buy) // Bid - цена покупки
                 {
                   if(OrderStopLoss()<Bid-Point*TrailingStop_Buy)
                     {
                       OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop_Buy,OrderTakeProfit(),0,Green);
                       return(0);
                     }
                 }
             }
         }
       if(OrderType()==OP_SELL)
         {
           if(TrailingStop_Sell>0)  
             {                 
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop_Sell))  // Ask - цена продажи
                 {
                   if((OrderStopLoss()>(Ask+Point*TrailingStop_Sell)) || (OrderStopLoss()==0))
                     {
                       OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop_Sell,OrderTakeProfit(),0,Red);
                       return(0);
                     }
                 }
             }
         }
  
     }
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
У меня есть советник, простенький, тупо открывает сделки селл или бай до определенного количества и выставляет СЛ иТП ( мне важно именно количество сделок). На четырех знаках после запятой работает отлично, а на пяти знаках после запятой работать не хочет, хотя на тестере работает. Подскажите что здесь можно сделать?
 
DOCTORS:
Как узнать текущее время?
TimeCurrent()
 
utyff:
У меня есть советник, простенький, тупо открывает сделки селл или бай до определенного количества и выставляет СЛ иТП ( мне важно именно количество сделок). На четырех знаках после запятой работает отлично, а на пяти знаках после запятой работать не хочет, хотя на тестере работает. Подскажите что здесь можно сделать?

Слипаж увеличить и цены нормализовать
 
awega:
Здравствуйте. Подскажите, советник должен открыть позицию по цене рынка.Как можно определить-открылся ли ордер и как определить цену его открытия?
Откройте справку в MetaEditor, "Торговые функции": OrderSend() и OrderOpenPrice() - там есть готовые ответы на Ваши вопросы.
 
utyff:
У меня есть советник, простенький, тупо открывает сделки селл или бай до определенного количества и выставляет СЛ иТП ( мне важно именно количество сделок). На четырех знаках после запятой работает отлично, а на пяти знаках после запятой работать не хочет, хотя на тестере работает. Подскажите что здесь можно сделать?
В первую очередь заглянуть в журнал: там советник оставляет сообщения об ошибках. А потом уже в соответствии с этими самыми ошибками разбираться, что и почему. Причем желательно, чтобы Вы самостоятельно научились анализировать, а не скидывать сюда портянки кода в надежде, что тоже самое будут делать за Вас другие.
Причина обращения: