Dico solo che è un po' tardi per imparare una lingua da zero quando si hanno dei nipoti...
Sì, hai ragione, Roman, un po' in ritardo.
Sapete perché le persone sono riluttanti ad essere assunte dopo i 45 anni? La risposta di un responsabile del personale mi ha colpito: a quell'età le persone sono poco formate e non aspirano all'autosviluppo, mentre noi abbiamo bisogno di dipendenti giovani e ambiziosi! Speriamo che ora sia chiaro il motivo per cui ho deciso di fare l'autoapprendimento. Se non capite, allora lasciate che lo dica senza mezzi termini: per provare a me stesso che tutte le età sono sottomesse all'autosviluppo (autoformazione).
Per imparare MQL da zero, si dovrebbe prima fissare 0 a qualcosa di più grande.
Per esempio, prendete un po' di C# (universale dal main-stream) e con un sacco di tutorial iniziate a fare "cose utili" per voi stessi - moduli con calcoli, per esempio. Non è necessario imparare il C++ perché 1) la maggior parte degli autori di tutorial sono interessati ai template e alla metaprogrammazione, non ai compiti pratici. 2) è richiesto un serio back-ground informatico.
Una volta che 0 non è più zero, passare al MQL applicato sarà facile. È semplice.
Ma tutto ciò che serve è il desiderio e la persistenza.
Sì, Maxim, sono totalmente d'accordo con te. Prenderò anche in considerazione la vostra opinione sul modo migliore di studiare da soli.
Sapete perché le persone sono riluttanti ad essere assunte dopo i 45 anni? La risposta di un responsabile delle risorse umane mi ha colpito - a quell'età le persone sono poco formate e non hanno voglia di autosvilupparsi, e noi abbiamo bisogno di lavoratori giovani e ambiziosi!!! Speriamo che ora sia chiaro il motivo per cui ho deciso di fare l'autoapprendimento. Se non capite, allora lasciatemi essere franco - per provare a me stesso che tutte le età sono sottomesse all'autosviluppo (autoformazione).
Sinceramente, Vladimir.
Non è mai troppo tardi)))) Ed è meglio di un semplice sudoku))))
In alternativa, cerca su Internet un corso del centro di formazione specialistica della MGTU Cerca "Specialista. Programmazione in C (Ci)" È disponibile sui tracker. È l'insegnante con quella voce.
Ecco la prima lezione. Naturalmente, la sintassi C è diversa da quella di Mql, ma la base per comprenderla è la stessa.
Sapete perché le persone sono riluttanti ad essere assunte dopo i 45 anni? La risposta di un responsabile delle risorse umane mi ha colpito - a quell'età le persone sono poco formate e non hanno voglia di autosvilupparsi, e noi abbiamo bisogno di lavoratori giovani e ambiziosi!!! Speriamo che ora sia chiaro il motivo per cui ho deciso di fare l'autoapprendimento. Se non capite, allora lasciate che lo dica senza mezzi termini: per provare a me stesso che tutte le età sono sottomesse all'autosviluppo (autoformazione).
Sinceramente, Vladimir.
Pitnitza))) Non potevo resistere))) Con il tuo approccio evidenziato - orto, cinema e domino. Non sono un giovane uomo, ma... I pensieri giusti sono: "un buon lavoratore quadro è un lavoratore quadro nudo nel tuo letto"))) Senza offesa per i dipendenti di OC, o, come è ora di moda, PMO (nel caso in cui ci sono qui), ma puramente per il gusto di motivivschika quelli che sono sopra.
Vladimir Simakov: Pitnicka))) Non potevo resistere))) Con il tuo approccio evidenziato - orto, cinema e domino. Non sono un giovane uomo, ma .... I pensieri giusti sono: "un buon lavoratore quadro è un lavoratore quadro nudo nel tuo letto"))) Senza offesa per i dipendenti di OC, o, come è ora di moda, PMO (nel caso in cui ci sono qui), ma puramente per il gusto di motivivschika quelli che sono sopra.
Human Resources è molto più corretto di Personnel Management)))) Nudo... e nel mio letto....... sì perché.............)
Oggi è stata una notte insonne, ma ne è valsa la pena. Per la prima volta ho scritto un piccolo script da solo, senza consigli, usando solo MQL5 Reference. Questo è stato, forse, il primo passo più difficile dell'auto-studio. Come ho promesso prima, ho cercato di descrivere tutto in questo script per lo studente di 1a classe della scuola di programmazione.
Saluti, Vladimir.
//+------------------------------------------------------------------+//| New2.mq5 |//| Copyright 2020, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2020, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"/* Создадим горизонтальную линию на текущем графике в главном окне терминала MetaTrader 5.
Что для этого нужно сделать? Воспользуемся информацией имеющейся в Справочнике MQL5.
Для этого заходим в Справочник MQL5 и в левой его части во вкладке "Содержание"
находим раздел "Графические объекты". Открываем этот раздел и переходим в подраздел
ObjectCreate, что в переводе с английского означает "Создание объекта".
В этом подразделе внимательно читаем: "ObjectCreate создает объект с указанным именем,
типом и начальными координатами в указанном подокне графика. При создании можно указать
до 30 координат". Всё это старемся запомнить, ну а если забудем, то снова откроем
Справочник MQL5 и освежим память.
//+------------------------------------------------------------------+
bool ObjectCreate(
long chart_id, // идентификатор графика
string name, // имя объекта
ENUM_OBJECT type, // тип объекта
int sub_window, // индекс окна
datetime time1, // время первой точки привязки
double price1, // цена первой точки привязки
...
datetime timeN=0, // время N-ой точки привязки
double priceN=0, // цена N-ой точки привязки
...
datetime time30=0, // время 30-й точки привязки
double price30=0 // цена 30-точки привязки
);
Параметры:
chart_id - Идентификатор графика. "0" означает текущий график.
name - Имя объекта. Имя должно быть уникальным в пределах одного графика, включая его подокна.
type - Тип объекта. Значение может быть одним из значений перечисления ENUM_OBJECT.
sub_window - Номер подокна графика. "0" означает главное окно графика. Указанное подокно должно существовать,
в противном случае функция возвращает false.
time1 - ВременнАя координата первой привязки.
price1 - Ценовая координата первой точки привязки.
Это обязательный параметр, т.к. фактически используется только координата по оси цены.
timeN=0 - ВременнАя координата N-ой точки привязки.
priceN=0 - Ценовая координата N-ой точки привязки.
*
*
*
time30=0 - ВременнАя координата тридцатой точки привязки.
price30=0 - Ценовая координата тридцатой точки привязки.
//+------------------------------------------------------------------+
Прочитали? Отлично! Теперь в теле скрипта после "void OnStart() {" начинаем заполнять код и периодически
нажимать на панели редактора MetaEditor на значок в виде "Расчески", чтобы стилизировать наш исходный код.
*/// ПИШЕМ КОД СКРИПТА//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//---ObjectCreate(0,"Моя_линия_1",OBJ_HLINE,0,0,SymbolInfoDouble(Symbol(),SYMBOL_BIDHIGH),0,0);
}
//+------------------------------------------------------------------+/* Теперь расшифруем, что именно мы создали в программном коде скрипта.
1. Сначала написали ObjectCreate, потому что хотим создать графический объект.
2. Далее в скобках мы написали "0", т.к. в параметрах требуется указать "chart_id", т.е. идентификатор графика.
Цифра "0" означает, что хотим создать линию на текущем графике.
3. Затем мы указали уникальное имя объекта "name", а именно "Моя_линия_1".
4. После этого мы должны были указать "type", т.е. "тип объекта".
Вот тут сразу возникает вопрос, а где же его взять? Для этого необходимо сделать небольшое отступление и пояснить.
Смотрим в описании параметров и видим, что "тип объекта" может быть одним из значений перечисления ENUM_OBJECT.
Предлагаю сразу разбраться, что же это такое ENUM_OBJECT? В переводе с английского ENUM (сокращенное от enumerate)
означает перечислить, а OBJECT - объект, т.е. перечислить объекты. Запоминаем это!
Снова открываем Справочник MQL5. В левой части справочника во вкладке "Указатель" есть поле "Введите ключевое слово для поиска:".
В это поле записываем ENUM_OBJECT. Как только мы его запишем, так сразу внизу под этим полем увидим большой перечень
значений. Нас интересует самое верхнее с синим выделением. Кликаем по нему мышкой два раза или в самом низу нажимаем
на кнопку "Вывести". С правой стороны справочника появится такой же большой перечень "Типы объектов".
Это как раз то, что нам нужно. Раз мы решили создать на графике горизонтальную линию, то нам нужно выбрать
OBJ_HLINE. Давайте ещё раз поупражняемся с английским языком. OBJ - это сокращение
от английского слова OBJECT, т.е объект, а HLINE состоит из двух частей H - horizontal, т.е. горизонтальный
и LINE, т.е. линия. Теперь соберем всё вместе и получится, что OBJ_HLINE ни что иное, как "объект горизонтальная линия".
Копируем OBJ_HLINE и вставляем в наш код.
5. Двигаемся дальше. Согласно описания мы должны были вставить "sub_window" - номер подокна графика.
Цифра "0" означает, что мы размещаем эту линию в главном окне графика. Вставляем!
6. Следующий параметр - это "time1", т.е. временнАя координата первой привязки нашей линии. Так как мы не планировали
привязываться к определенным координатам времени, поэтому тоже ставим "0".
7. Переходим к "price1", т.е. к ценовой координате первой точки привязки.
Тут тоже нужны некоторые пояснения. Чтобы привязать нашу горизонтальную линию к ценовой координате, сначала необходимо
получить эту цену, т.е. запросить рыночную информацию. Снова обращаемся к Справочнику MQL5 и во вкладке "Содержание"
находим раздел "Получение рыночной информации". Открываем его и переходим в подраздел SymbolInfoDouble. Давайте тоже
переведем его значение на русский язык. Получится "информация о символе Double". Double на языке программирования MQL5
означает, что информация о символе представлена в виде значения, имеющего дробную часть, например, 1,12569 или 0,9875 и т.п.
Запоминаем это!
Согласно справочной информации для SymbolInfoDouble мы должны указать символ и идентификатор свойства. Символ текущего
графика на языке программирования MQL5 пишется, как Symbol(). Индентификатор свойства символа также берем из справочника
в подразделе ENUM_SYMBOL_INFO_DOUBLE (дословно переводится, как перечисление свойств символа, имеющего дробную часть).
Возьмем, например, значение SYMBOL_BIDHIGH (что переводится, как максимальный Bid за день).
8. Для time2 (время 2-ой точки привязки) и price2 (цена 2-ой точки привязки) указываем значения, равные "0".
9. Вот теперь всё готово, чтобы провести компиляцию скрипта и запустить его в главном окне терминала MetaTrader 5.
Нажимаем кнопку "Компилировать" и если у нас нет ошибок, тогда переходим к торговому терминалу. Для этого либо нажимаем
на клавиатуре клавишу F4, либо кликаем мышкой на верхней панели редактора MetaEditor значок "Вызов торгового терминала"
в виде двух синеньких квадратиков с красной ломаной линией.
10.На торговом терминале у нас уже должен быть запущен "Навигатор". Если он ещё отсутствует, тогда его нужно открыть.
Делается это легко: ищем на торговом терминале кнопку "Вид", нажимаем на неё и в открывшемся новом окне выбираем
строку с названием "Навигатор". Есть ещё один вариант - одновременно нажать на клавиатуре клавишу Ctrl и клавишу N.
Оказавшись в "Навигаторе", открываем папку "Скрипты" и находим в ней наш скрипт с названием New2. Остается только мышкой
зацепить этот скрипт и перенести на главное окно торгового терминала, чтобы увидеть результат.
*/
Dico solo che è un po' tardi per imparare una lingua da zero quando si hanno dei nipoti...
Sì, hai ragione, Roman, un po' in ritardo.
Sapete perché le persone sono riluttanti ad essere assunte dopo i 45 anni? La risposta di un responsabile del personale mi ha colpito: a quell'età le persone sono poco formate e non aspirano all'autosviluppo, mentre noi abbiamo bisogno di dipendenti giovani e ambiziosi! Speriamo che ora sia chiaro il motivo per cui ho deciso di fare l'autoapprendimento. Se non capite, allora lasciate che lo dica senza mezzi termini: per provare a me stesso che tutte le età sono sottomesse all'autosviluppo (autoformazione).
Sinceramente, Vladimir.
Per imparare MQL da zero, si dovrebbe prima fissare 0 a qualcosa di più grande.
Per esempio, prendete un po' di C# (universale dal main-stream) e con un sacco di tutorial iniziate a fare "cose utili" per voi stessi - moduli con calcoli, per esempio.
Non è necessario imparare il C++ perché 1) la maggior parte degli autori di tutorial sono interessati ai template e alla metaprogrammazione, non ai compiti pratici.
2) è richiesto un serio back-ground informatico.
Una volta che 0 non è più zero, passare al MQL applicato sarà facile. È semplice.
Ma tutto ciò che serve è il desiderio e la persistenza.
Sì, Maxim, sono totalmente d'accordo con te. Prenderò anche in considerazione la vostra opinione sul modo migliore di studiare da soli.
Saluti, Vladimir.
Sì, hai ragione, Roman, è un po' tardi.
Sapete perché le persone sono riluttanti ad essere assunte dopo i 45 anni? La risposta di un responsabile delle risorse umane mi ha colpito - a quell'età le persone sono poco formate e non hanno voglia di autosvilupparsi, e noi abbiamo bisogno di lavoratori giovani e ambiziosi!!! Speriamo che ora sia chiaro il motivo per cui ho deciso di fare l'autoapprendimento. Se non capite, allora lasciatemi essere franco - per provare a me stesso che tutte le età sono sottomesse all'autosviluppo (autoformazione).
Sinceramente, Vladimir.
Non è mai troppo tardi)))) Ed è meglio di un semplice sudoku))))
In alternativa, cerca su Internet un corso del centro di formazione specialistica della MGTU
Cerca "Specialista. Programmazione in C (Ci)"
È disponibile sui tracker. È l'insegnante con quella voce.
Ecco la prima lezione.
Naturalmente, la sintassi C è diversa da quella di Mql, ma la base per comprenderla è la stessa.
Sono d'accordo, Valery, ma la domanda è stata posta su i++ e ++i. Anche per questo ho preso una D. Non è ancora chiaro. È così triste.
Sinceramente, Vladimir.
Fammi provare ))) Secondo me, ++ è molto semplice.
C'è una variabile a. C'è una variabile i = 1.
a = ++i è uguale a i = i + 1; e poi a = i; // come a = 2, i = 2
a = i++ è lo stesso di a = i; e poi i = i + 1; // infine a = 1, i = 2
Fammi provare )))) Secondo me ++ è molto semplice.
C'è una variabile a. C'è una variabile i = 1.
a = ++i è uguale a i = i + 1; e poi a = i; // come a = 2, i = 2
a = i++ è la stessa cosa di a = i; e poi i = i + 1; // alla fine a = 1, i = 2
Ciao Sergei!
Questo è stato un malinteso da parte mia perché la mia domanda era "Qual è la differenza tra i++ e ++i". Grazie per il chiarimento.
Saluti, Vladimir.
Sì, hai ragione, Roman, è un po' tardi.
Sapete perché le persone sono riluttanti ad essere assunte dopo i 45 anni? La risposta di un responsabile delle risorse umane mi ha colpito - a quell'età le persone sono poco formate e non hanno voglia di autosvilupparsi, e noi abbiamo bisogno di lavoratori giovani e ambiziosi!!! Speriamo che ora sia chiaro il motivo per cui ho deciso di fare l'autoapprendimento. Se non capite, allora lasciate che lo dica senza mezzi termini: per provare a me stesso che tutte le età sono sottomesse all'autosviluppo (autoformazione).
Sinceramente, Vladimir.
Pitnicka))) Non potevo resistere))) Con il tuo approccio evidenziato - orto, cinema e domino. Non sono un giovane uomo, ma .... I pensieri giusti sono: "un buon lavoratore quadro è un lavoratore quadro nudo nel tuo letto"))) Senza offesa per i dipendenti di OC, o, come è ora di moda, PMO (nel caso in cui ci sono qui), ma puramente per il gusto di motivivschika quelli che sono sopra.
Human Resources è molto più corretto di Personnel Management)))) Nudo... e nel mio letto....... sì perché.............)
Buona giornata a tutti voi e buon umore!
Oggi è stata una notte insonne, ma ne è valsa la pena. Per la prima volta ho scritto un piccolo script da solo, senza consigli, usando solo MQL5 Reference. Questo è stato, forse, il primo passo più difficile dell'auto-studio. Come ho promesso prima, ho cercato di descrivere tutto in questo script per lo studente di 1a classe della scuola di programmazione.
Saluti, Vladimir.
La linea di tendenza sarà probabilmente più difficile?
Probabilmente.
Saluti, Vladimir.