Ошибки, баги, вопросы - страница 1418

 
Всем привет!
Недавно начал программированием заниматься и столкнулся с такой проблемой, не выставляется СтопЛосс. Подскажите где ошибка?
int start()
  {
   if(CountTrades()==0)
     {
      double ima=iMA(Symbol(),PERIOD_H1,14,0,MODE_SMA,PRICE_CLOSE,1);
      if(Ask>ima)
        {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"",Magic,0,Blue);
         if(ticket>0)
           {
            TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
            bool modify1=OrderModify(ticket,OrderOpenPrice(),0,TP,0);
            {
             SL=NormalizeDouble(Ask-StopLoss*Point,Digits);
            bool modify=OrderModify(ticket,OrderOpenPrice(),SL,0,0);
            }
           }
        }
      else if(Bid<ima)
        {
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"",Magic,0,Red);
         if(ticket>0)
           {
            TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);
            bool modify1=OrderModify(ticket,OrderOpenPrice(),0,TP,0);
            {
             SL=NormalizeDouble(Bid+StopLoss*Point,Digits);
            bool modify=OrderModify(ticket,OrderOpenPrice(),SL,0,0);
            }
           }
        }
      else
        {
         int order_type=FindLastOrderType();
         if(order_type==OP_BUY)
           {
            price=FindLastPrice(OP_BUY);
            if(Ask<=price-Step*Point)
              {
               lastlot = FindLastLots(OP_BUY);
               lastlot = NormalizeDouble(lastlot * Multiplier, 2);
               ticket=OrderSend(Symbol(),OP_BUY,lastlot,Ask,Slippage,0,0,"",Magic,0,Blue);
               if(ticket>0)
                  ModifyOrders(OP_BUY);
              }
           }
         else if(order_type==OP_SELL)
           {
            price=FindLastPrice(OP_SELL);
            if(Bid<=price+Step*Point)
              {
               lastlot=FindLastLots(OP_SELL);
              }
            lastlot=NormalizeDouble(lastlot*Multiplier,2);
            ticket=OrderSend(Symbol(),OP_SELL,lastlot,Bid,Slippage,0,0,"",Magic,0,Red);
            if(ticket>0)
               ModifyOrders(OP_SELL);
           }
        }
     }
   return(0);
  }
Заранее благодарю)))
 
Сергей Верещак:
      if(Ask>ima)
        {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"",Magic,0,Blue);
         if(ticket>0)
           {
            TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
            bool modify1=OrderModify(ticket,OrderOpenPrice(),0,TP,0);    Установили Тейк профит а стоп лос установли 0  идем далее
            {
             SL=NormalizeDouble(Ask-StopLoss*Point,Digits);
            bool modify=OrderModify(ticket,OrderOpenPrice(),SL,0,0);    Устанавливаем Стоп лос а тейк профит ставим ноль, тоесть удаляе тот который выставили ранее
            }
           }
        }
     
Заранее благодарю)))
Копайте , наводку дал ...
 
Vladimir Pastushak:
Копайте , наводку дал ...
Спасибо Володя. Бум копать, так быстрей разберусь)))
 
Vladimir Pastushak:
Копайте , наводку дал ...

Тогда уж приведем к стандарту "нового" MQL4 и MQL5.

//TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
TP=NormalizeDouble(Ask+TakeProfit*_Point,_Digits);
 
Alexey Volchanskiy:

Тогда уж приведем к стандарту "нового" MQL4 и MQL5.

//TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
TP=NormalizeDouble(Ask+TakeProfit*_Point,_Digits);

От 15 мая этого года есть пост от Renat Fatkhullin, где есть следующий текст:

Подчеркивания, чтобы показать их deprecated статус. Нельзя использовать такие простые переменные, объявленные на глобальном уровне, но выглядящие как обычные локальные переменные.

Для чистоты языка и кода нужно переходить на Symbol(), Period(). Тут как раз продуманность и избавление от наследия старого.

При необходимости вы можете найти по поиску пост, где есть цитируемый момент. Это был ответ Рената на один из вопросов одного из членов Сообщества, начинавшийся так:

В МТ4 переменные Point, Digits... В МТ5 эти же переменные начинаются с подчеркивания...


P./S.: Соответственно, исходя из того, что подчёркивания - это статус deprecated (устаревшие или неодобряемые или не рекомендованные для применения в дальнейшем), то применение Point() и Digits() без подчёркиваний. /*у меня и в MQL4 такое применение Point() и Digits() со скобками после названий, как в MQL5, не выдаёт ошибок при работе и не выдаёт ошибок и предупреждений при компиляции*/

 

Здраствуйте! У меня очень интересный вопрос - у меня на компьютере стоит 3 платформы MT4, №1- основная,где открыт реальный счет. №2 и №3-вспомогательные,для тестирования советников,там открыты демо счета. При попытке копировать сигнал с сайта https://www.mql5.com (выбираю нужный сигнал,нажимаю начать копирование,затем выскакивает окошко с надписью - запустить MetaTrader4 и оформить подписку в платформе,жму на эту надпись) открывается платформа №3 вместо желаемой платформы №1. Как исправить это? Как сделать так что бы открывалась именно платформа №1?

 
Mihail Kuzmin:

Здраствуйте! У меня очень интересный вопрос - у меня на компьютере стоит 3 платформы MT4, №1- основная,где открыт реальный счет. №2 и №3-вспомогательные,для тестирования советников,там открыты демо счета. При попытке копировать сигнал с сайта https://www.mql5.com (выбираю нужный сигнал,нажимаю начать копирование,затем выскакивает окошко с надписью - запустить MetaTrader4 и оформить подписку в платформе) открывается платформа №3 вместо желаемой платформы №1. Как исправить это? Как сделать так что бы открывалась именно платформа №1?

При наличии "зопарка" из нескольких терминалов, нужно искать сигнал прямо из терминала в который Вы хотите копировать.
 
Karputov Vladimir:
При наличии "зопарка" из нескольких терминалов, нужно искать сигнал прямо из терминала в который Вы хотите копировать.
из терминала не получаеся выдает ошибку...
 
Mihail Kuzmin:
из терминала не получаеся выдает ошибку...
Какую именно ошибку? Что делаете, в какой последовательности?
 
Karputov Vladimir:
Какую именно ошибку? Что делаете, в какой последовательности?

в термнале в графе сигналы выбираю нужный сигнал,затем жму на табличку подписать за 20 usd,далее окно с просьбой ввести пароль,после ввода пароля вылазит надпись - подписка не удалась.

месяц назад подписывался на сигнал именно через сайт,и открывалась именно нужная мне платформа  №1. этот раз по какой то причине открывается совершенно другая платформа.

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