Нужны ли функции OnTrade и OnTradeTransaction в MT4 - страница 6

 
Мне, как пользователю, крайне не приятно переписывать на MQL5 собственные программы, ранее заказанные во фрилансе - бьет по бюджету. В связи с этим надеюсь, что MT4 будет ещё долго существовать и поддерживаться MQ.
 
Alexey Volchanskiy:

Я говорил именно про языки MQL4/5 - они практически одинаковы.

Ваша строка не скомпилируется в пятерке, так как там отличные методы доступа к сериям и торговым функциям. Но это не язык, это runtime. 

Да, в пятерке будет длиннее. Лично мне не критично. 

Да чем же простое хуже и неудобнее сложного?! Люди приходят в надежде подработать денег, а не изучать языки. Может, программеру престижно знать, но пользователей МТ4 больше несравнимо!
 
Boris:
Да чем же простое хуже и неудобнее сложного?! Люди приходят в надежде подработать денег, а не изучать языки. Может, программеру престижно знать, но пользователей МТ4 больше несравнимо!

Я не стал искать тот пример, только приехал с шашлыков и т.д., но вкратце. В MQL5 сделали доступ к тайм-сериям через копирование в массивы, а не по отдельным барам. Как программист, уверен, это ускорило доступ при обработке в разы, если не больше. Ну, немного код изменился, и что такого?

Не, я разрабатывал системы, когда я ложился спать, а за это время в кремниевой долине выкидывали на сервер код, который был новым на 80%, причем, часто без доки. Просто сопроводительное письмо. Ну и ничего, привык по быстрому въезжать в изменения.

А тут детские слезы - ах, поменяли метод доступа к данным. Во беда-то, а? 

Давайте уже взрослеть, коллеги ) 

-------------------

ЗЫ так МТ4 никто не убивает, оставайтесь на нем )) Проблемы из пальца 

 
Renat Fatkhullin:

нулевой шанс.

развитие МТ4 остановлено и для него будут только фиксы с косметикой.

Значит АПИ к языку R мы не получим? Вроде как было обещано.

Жаль.

 
Vladimir Perervenko:

Значит АПИ к языку R мы не получим? Вроде как было обещано.

Жаль.

Никто язык "R" в "четвёрке" и не обещал. Разговор был исключительно о "пятёрке".
 
Alexey Volchanskiy:

Я говорил именно про языки MQL4/5 - они практически одинаковы.

Ваша строка не скомпилируется в пятерке, так как там отличные методы доступа к сериям и торговым функциям. Но это не язык, это runtime. 

Да, в пятерке будет длиннее. Лично мне не критично. 

+

Некоторую разницу почти большинство  проблем можно разрулить ООП , через классы.

 
Alexey Volchanskiy:

Я не стал искать тот пример, только приехал с шашлыков и т.д., но вкратце. В MQL5 сделали доступ к тайм-сериям через копирование в массивы, а не по отдельным барам. Как программист, уверен, это ускорило доступ при обработке в разы, если не больше. Ну, немного код изменился, и что такого?

Не, я разрабатывал системы, когда я ложился спать, а за это время в кремниевой долине выкидывали на сервер код, который был новым на 80%, причем, часто без доки. Просто сопроводительное письмо. Ну и ничего, привык по быстрому въезжать в изменения.

А тут детские слезы - ах, поменяли метод доступа к данным. Во беда-то, а? 

Давайте уже взрослеть, коллеги ) 

-------------------

ЗЫ так МТ4 никто не убивает, оставайтесь на нем )) Проблемы из пальца 

Я Вам ясно написал своё мнение как пользователя, а не профипрограммиста. Пользователю нужно просто и доходчиво, ему не до Ваших ухищрений и выкрутасов. Прекрасно понимаю, что Ваш пиар помогает подрабатывать во фрилансе, чего не позволит Вам ДЦ! Продолжайте в том же ключе! Удачи! 
 
Vitaly Muzichenko:

Алексей, прокатит эта конструкция в десяток символов в пятом: if(High[1] < Bid) { OrderSend(....) }

Прокатит... подождите немного.

 
Vitaly Muzichenko:

Алексей, прокатит эта конструкция в десяток символов в пятом: if(High[1] < Bid) { OrderSend(....) }

Нет?, а почему?, язык то одинаков с ваших утверждений. Вот в этом и разница, что пятый перенакручен, а не модернизирован.

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

P.S. Ещё никто и нигде не сказал и не написал после получения убытка, что если-бы торговал в мт5 или другой, то убыток не получил-бы. 

Прокатит. Вот отрывок одной стратегии на пятом:

//+------------------------------------------------------------------+
//| Стратегия на основе пробоя экстремума предыдущего бара           |
//+------------------------------------------------------------------+
void BreakoutExp::InitBuy(const MarketEvent &event)
{
   if(!IsTrackEvents(event))return;                      
   if(positions.open_buy > 0) return;
   int buy_stop_total = 0;
   ENUM_ORDER_TASK task;
   // Прикрываем длинные отложки при существовании короткой позиции
   if(positions.open_sell > 0 || Ask() >= (High[1] - PriceStep(3)))
      task = ORDER_TASK_DELETE;
   else
      task = ORDER_TASK_MODIFY;
   for(int i = PendingOrders.Total()-1; i >= 0; i--)
   {
      CPendingOrder* Order = PendingOrders.GetOrder(i);
      if(Order == NULL || !Order.IsMain(ExpertSymbol(), ExpertMagic()))
         continue;
      if(Order.Type() == ORDER_TYPE_BUY_STOP)
      {
         if(task == ORDER_TASK_MODIFY)
         {
            buy_stop_total++;
            Order.Modify(High[1]);
         }
         else
            Order.Delete();
      }
   }
   if(buy_stop_total == 0 && task == ORDER_TASK_MODIFY)
      Trade.BuyStop(MM.GetLotFixed(), High[1], ExpertSymbol(), 0, 0, NULL);
}

Данный код выполняет следующие функции:

  • Срабатывает только на открытии нового бара.
  • Перебирает отложенные ордера и выбирает только те из них которые относятся к текущему эксперту и имеют тип BuyStop.
  • В зависимости от состояния удаляет их, если длинные позиции запрещены либо подифицирует их цену срабатывания по уровню предыдущего максимума.
  • Если ордеров нет,  и длинные позиции разрешены, выставляет новый отложенный ордер.

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

Обязательно нужна OnTradeTransaction!

Дело в том, что данная функция помогает оптимизировать советники, вызывая пересчет отдельных функций только по событию торговой операции. Также есть некоторые приёмы, позволяющие избежать неверных торговых операций (например, преждевременных) при мультивалютной торговле. В мт5 всё делается на изи, но при портировании советника в мт4 возникают проблемы и приходится искать другое решение.

Реализация мультивалютного режима в MetaTrader 5
Реализация мультивалютного режима в MetaTrader 5
  • www.mql5.com
В настоящее время мультивалютных торговых систем, индикаторов и экспертов разработано огромное количество. Тем не менее, до сих пор создатели этого "огромного количества" сталкивались со специфическими для мультивалютных систем трудностями. С выпуском в свет терминала MetaTrader 5 и языка программирования MQL5 появилась возможность  реализации...
Причина обращения: