Учёба. Классы. Нужна помощь. - страница 10

 
Вот так бывает. Тема про ООП, выкладываешь пример. И начинается обсуждение... цикла for.
 
fxsaber #:
Вот так бывает. Тема про ООП, выкладываешь пример. И начинается обсуждение... цикла for.

потому-что уникальный код сразу бросается в глаза, а элементарные вещи типа заголовка цикла должна пролетать со скоростью прокрутки страницы, как всегда статическая картинка, в которой нечего смотреть

 
Alexey Viktorov #:

А тот вариант цикла, с которого началось обсуждение вы считаете нечитаемым? А разве различные варианты кода не повышают уровень подготовки? 

Для меня то читаемый, но те-же яйца только в профиль, не имеющие смысловых отличий в рамках условия.
Это как в составлении предложения в русском языке. Можно написать со знаками препинания, а можно без.
И если их нет, другой чел будет вкуривать в смысл предложения )) Когда было бы проще прочитать со знаками препинания.
Получается, в русском языке за составление предложения без знаков препинания, поставили бы двойку )) 
Язык программирования такой же язык, где есть элементарная грамматика.

 
В общем, кто-нибудь может попробовать решить эту задачу без ООП. И затем при сравнении с ООП-реализацией увидеть плюсы и минусы обоих вариантов.
 
fxsaber #:
В общем, кто-нибудь может попробовать решить эту задачу без ООП.
И затем при сравнении с ООП-реализацией увидеть плюсы и минусы обоих вариантов.

Если вы хотите посмотреть код без ООП, то поставьте задачу как в ТЗ без ссылок на собственные библиотеки, в которых разобраться очень сложно не только для меня. А так получается, типа «Разберись в том что я написал и повтори по-другому.». 

Что вы там хотели увидеть в результате вычисления?
 
Alexey Viktorov #:

Если вы хотите посмотреть код без ООП, то поставьте задачу как в ТЗ без ссылок на собственные библиотеки, в которых разобраться очень сложно не только для меня. А так получается, типа «Разберись в том что я написал и повтори по-другому.». 

Не понял акцента на какие-то мои библиотеки, дефайны и циклы. Проехали.


Задача сугубо стандартная.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Бета-версия платформы MetaTrader 5 build 4695: расширение поддержки OpenBLAS и общая оптимизация работы

MetaQuotes, 2024.11.22 07:43

  1. расчет стоимости позиций, ордеров и сделок. Теперь она отображается в валюте депозита счета, а не в базовой валюте торгового инструмента:


    Стоимость позиций, ордеров и сделок теперь отображается в валюте депозита счета


Проще объяснить на примере.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Учёба. Классы. Нужна помощь.

fxsaber, 2024.11.22 19:54

Результат.

// Распечатали все позиции/ордера.
#3080418385 2024.11.22 19:44:29.970 buy 2.34 AUDUSD 0.64998 0.00000 0.00000 0.64979 0.00 0.00 -42.67 0
#3080387579 2024.11.22 19:35:20.114 buy 8.08 EURJPY 161.063 0.000 0.000 161.224 0.00 0.00 806.88 0
#3080327456 2024.11.22 19:15:41.027 buy 11.92 EURUSD 1.04071 0.00000 0.00000 1.04190 0.00 0.00 1361.44 0
#3080313429 2024.11.22 19:12:05.867 buy 2.00 USDJPY 154.782 0.000 0.000 154.748 0.00 0.00 -42.18 0
#3080286883 2024.11.22 19:03:54.485 sell 8.54 EURAUD 1.60138 0.00000 0.00000 1.60346 0.00 0.00 -1107.80 0


// Распечатали все активы.
JPY = -9.998950162486663
USD = -11.459748783503196
AUD = 9.998550066745898
EUR = 11.460148879243961

Есть открытые позиции (сверху напечатаны). Нужно вывести данные на основе этих позиций, сколько (в пересчете на валюту депозита торгового счета) и какой валюты куплено/продано (снизу напечатаны).

 
Vitaly Murlenko:

Вынес вопрос в отдельную тему, ибо подобные вопросы ещё будут.

Программирую на MQL4 уже 18 лет. Я не могу найти применения такой вещи, как класс. Вразумите меня глупого, где это можно применить в MQL? Какая в этом необходимость?

Берём Delphi. Есть такой класс в нём, как кнопка. Да, согласен, можно перетащить его на форму и задействовать наследование. Н это Делфи. Где в MQL применимы классы и какая в них необходимость? Наверно я что-то не знаю.

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


 if(strategy[iIndex].work)                            // === Стратегии разрешено работать
     {
      if(Signal(strategy[iIndex].magic) == OP_BUY)
         if((b == 0) || (b > 0 && (BuyPriceMin - Ask) >= (iOrderStep * _Point)))
            if(OrderSend(_Symbol, OP_BUY, Nd(BuyLot, 2), Nd(Ask), iSlippage, 0, 0, "Grid", strategy[iIndex].magic, 0, clrGreen) < 0)
               Print("OrderSend error OP_BUY #", GetLastError());
      // ===============================
      if(Signal(strategy[iIndex].magic) == OP_SELL)
         if((s == 0) || (s > 0 && (Bid - SelPriceMax) >= (iOrderStep * _Point)))
            if(OrderSend(_Symbol, OP_SELL, Nd(SelLot, 2), Nd(Bid), iSlippage, 0, 0, "Grid", strategy[iIndex].magic, 0, clrGreen) < 0)
               Print("OrderSend error OP_SELL #", GetLastError());
     }
Файлы:
 
Roman Shiredchenko #:
во вложении робот пример работы через классы - когда много вариантов ТС и например отчеты формируются через классы как я понял.

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

_str_ strategy[] =
  {
     {1, "MA",         500, "", true, NULL, NULL, 0},
     {2, "BB",         500, "", true, NULL, NULL, 0},
     {3, "Candle 1",   500, "", true, NULL, NULL, 0},
     {4, "Candle 2",   500, "", true, NULL, NULL, 0},
     {5, "Stochastic", 500, "", true, NULL, NULL, 0},
     {6, "MACD",       500, "", true, NULL, NULL, 0},
     {7, "RSI",        500, "", true, NULL, NULL, 0},
  };
 
fxsaber #:

Не понял акцента на какие-то мои библиотеки, дефайны и циклы. Проехали.


Задача сугубо стандартная.


Проще объяснить на примере.

Есть открытые позиции (сверху напечатаны). Нужно вывести данные на основе этих позиций, сколько (в валюте ) и какой валюты куплено/продано (снизу напечатаны).

То есть вы хотите сказать, что без ООП сложно или почти невозможно собрать все позиции в кучу и посчитать их общий объём? Смешно…

Я этим заниматься не буду. Плюс ко всему не вижу необходимости даже в далёком будущем…

 
Alexey Viktorov #:

без ООП сложно или почти невозможно собрать все позиции в кучу и посчитать их общий объём?

Да. Буду рад контрпримеру.

Alexey Viktorov #:

не вижу необходимости даже в далёком будущем…

Это делают MQ в своем терминале.