Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2147

 
Andrey F. Zelinsky #:

собственно, понятно, это ваш фирменный стиль, который вас без вариантов обрекает на проигрыш в таких баталиях -- прёте как Leopard по чернозёму в распутицу.

есть такая мудрость: "Прощайте врагов ваших -– это лучший способ вывести их из себя" (Оскар Уайльд).

Пытаешься спровоцировать меня на обсуждение политики?

 

Было-бы желание найти.

Скрипт устанавливает фон графика


 
Добрый день!

Вопрос унылый, вряд ли кто-то ответит, попробую на всякий случай:

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

Вот, обычную сеть понял: 
Число --> умножается на вес  --> преобразуется в функции активации  --> снова умножается на вес  --> сравнивается с фактом  --> обратное распространение ошибки  --> повторный прогон вперёд и так повторять до лучшего результата. 

Таких нейросетей 2 штуки здесь в статьях (которые доступны чайнику). Но, вот такой же простой и понятной сети на обучении с подкреплением нет. Есть, но там для академиков, ООП и тому подобное, в процедурный вид не переведу.

Хотелось бы увидеть алгоритм, или набросок кода, чтобы его потом покрутить в руках. 

Подаётся ли число?  --> Умножается ли на вес?  -->  Преобразуется ли в функции активации? --> и... а вот что дальше?

На ютубе много роликов про подкрепление, но там замудрёно с этими агентами, гуляющими по среде, получающие в тык от неё, либо пряники. Одно я понял - отличие такой сети от обычной в том, что она может жертвовать неправильным предсказанием на текущей свече, чтобы потом, в будущем, взять бОльшую(большУю) свечку или свечи. Типа, стратегически мыслит.
Но кто агент на графике свечей? Как его оформить? Как оформить шаг, который делает этот агент? Как оформить люлей и пряников?

Даже если скинете просто ссылку на сторонний материал, где как-то более понятно и практично, буду благодарен!
 
Здравствуйте. Пытаюсь написать на МТ4 советник по углам Ганна, опыта почти нет никакого. Подскажите пожалуйста, как организовать работу советника так, чтобы он некоторые операции выполнял только при появлении нового бара на графике? вычисления на каждом тике серьезно грузят терминал) Или хотя бы ссылку, где об этом можно почитать...
 
Ivan Butko #:
Добрый день!

Вы кода ни будь применяете пользовательские функции? Так вот ООП в mql5 мало чем отличается от внешних пользовательских функций. Хотя это суждение построено исключительно на содержании класса CTrade стандартной библиотеки…

 
AlexVGol1 #:
Здравствуйте. Пытаюсь написать на МТ4 советник по углам Ганна, опыта почти нет никакого. Подскажите пожалуйста, как организовать работу советника так, чтобы он некоторые операции выполнял только при появлении нового бара на графике? вычисления на каждом тике серьезно грузят терминал) Или хотя бы ссылку, где об этом можно почитать...
//+--- Global parameters ---+
datetime newbar=0;
//+---
void OnTick()
  {
   if(newbar!=Time[0])
     {
      
      Здесь Ваши некоторые операции;
      
      newbar=Time[0];
     }
   
  }

 
Tretyakov Rostyslav #:
Очень благодарен Вам! Спасибо)
 
Ivan Butko #:
Есть, но там для академиков, ООП и тому подобное, в процедурный вид не переведу.

Этого достаточно для понимания статей.

Готов поспорить, вы даже не пытались вникнуть - вы просто не хотите. Будь я не прав, у вас были бы конкретные вопросы по ООП, которые вы могли бы озвучить, например, здесь - почему нет?

 

как написать массив прямо  в вызове функции?

string lines[]={"123","456"};
func1(lines);

//+------------------------------------------------------------------+
void func1(const string &lines[]) {

   Print(ArraySize(lines));
}
func1({"123","456"});//?????

//+------------------------------------------------------------------+
void func1(const string &lines[]) {

   Print(ArraySize(lines));
}
 
Vladislav Boyko #:

Этого достаточно для понимания статей.

Готов поспорить, вы даже не пытались вникнуть - вы просто не хотите. Будь я не прав, у вас были бы конкретные вопросы по ООП, которые вы могли бы озвучить, например, здесь - почему нет?

Пользуясь случаем, попробую задать свой вопрос, как человек, изучающий в данный момент ООП.

Что такое :: и для чего оно может быть использовано, если это НЕ определение тела функции за пределами описания класса?

Пример из первой попавшейся статьи:

#define CLASS_NAME ::StringSubstr(__FUNCTION__,0,::StringFind(__FUNCTION__,"::"))
//--- Имя программы
#define PROGRAM_NAME ::MQLInfoString(MQL_PROGRAM_NAME)
//--- Тип программы
#define PROGRAM_TYPE (ENUM_PROGRAM_TYPE)::MQLInfoInteger(MQL_PROGRAM_TYPE)

Еще один случайный пример:

int Summary( const string ID = NULL )
{
  const VIRTUAL_POINTER VirtualPointer = VIRTUAL::Create(); // Создали окружения для суммирования.
  
  // Бежим по окружениям.
  for (int i = VIRTUAL::Total() - 1; i > 0 ; i--)
  {
    const VIRTUAL_POINTER VirtualPointerFrom = _VI(i, VIRTUAL::GetHandle()); // Выбрали очередное.
    
    if (_VP(VirtualPointerFrom, Filter(VIRTUAL::GetID()))) // Подходит ли для добавления.
      VirtualPointer += VirtualPointerFrom; // Добавили.
  }
  
  _VP(VirtualPointer, VIRTUAL::SetID(ID)); // Прописали ID.

  return(VirtualPointer.GetHandle());
}
Причина обращения: