Появилось желание открыть Метоедитор МТ4 ,появись вопросы и т.д
Если в мт5 еще боле мене как то для себя могу подправить код , то мт4 ну никак поддается пониманию ......
Mт5 я начал осваивать с стихов этого кодера и Mт4 хотел бы познать в этом стиле поэзии )
в общем вот такая сочинюха :
/+------------------------------------------------------------------+
#property copyright "Mechanic"
#property link "https://login.mql5.com/ru/users/Sergey_Mechanic/portfolio"
#property version "1.00"
//+------------------------------------------------------------------+
// Соглашение об именовании переменных
//
// В коде используется "венгерская" нотация, суть которой заключается в том,
// что перед именем переменной добавляется префикс, обозначающий её тип:
// n - целочисленные переменные (int, long, ulong, short, ushort),
// f - переменные с плавающей точкой (double, float),
// e - перечисляемые переменные (enum),
// dt - переменная времени (datetime),
// h - хэндл (handle) файла или индикатора,
// s - строковые переменные (string).
//
// Кроме того, используются дополнительные префиксы области действия:
// i_ - входные параметры (input),
// g_ - глобальные переменные,
// m_ - член класса.
//+------------------------------------------------------------------+
на этапе инициализации хэндла
// Создадим экземпляр индикатора МА и получим его хэндл
g_hMA = iMA(_Symbol, _Period, i_nMAPeriod, 0, i_eMAMethod, i_eMAPrice);
// Создадим экземпляр индикатора ВВ и получим его хэндл
g_hBollingerBands = iBands(Symbol(), _Period, i_nBBPeriod, 0, i_fBBDeviation, i_eBBPrice,0,0);Компилятор Мт4 говорит что в этих строчках неправильный параметр ,
Что именно изменили в мт5 и как правильно записать для мт4 ?
В mql4 хендл не создаётся. Просто запрашивается значение линии или гистограммы индикатора на определённом баре. В документации всё чётко описано.
Ой Алексей да где эти книжки , Когда их читать , с работы придешь , туда сюда , и времени трендец ,,,,, час два посидишь у компа и дальше в путь.......
Для меня удобнее спросить чем листать гигобайты хлама
Ладно, Спасибо с хенделом разобрался...
Ой Алексей да где эти книжки , Когда их читать , с работы придешь , туда сюда , и времени трендец ,,,,, час два посидишь у компа и дальше в путь.......
Для меня удобнее спросить чем листать гигобайты хлама
Ладно, Спасибо с хенделом разобрался...
Можешь не верить, но если-бы ты заглянул в справку было-бы быстрей и удобней.
iMA
Возвращает значение технического индикатора Moving Average.
string symbol, // имя символа
int timeframe, // таймфрейм
int ma_period, // период
int ma_shift, // сдвиг средней
int ma_method, // метод усреднения
int applied_price, // тип цены
int shift // сдвиг
);
- docs.mql4.com
Появилось желание открыть Метоедитор МТ4 ,появись вопросы и т.д
Если в мт5 еще боле мене как то для себя могу подправить код , то мт4 ну никак поддается пониманию ......
Mт5 я начал осваивать с стихов этого кодера и Mт4 хотел бы познать в этом стиле поэзии )
в общем вот такая сочинюха :
/+------------------------------------------------------------------+
#property copyright "Mechanic"
#property link "https://login.mql5.com/ru/users/Sergey_Mechanic/portfolio"
#property version "1.00"
//+------------------------------------------------------------------+
// Соглашение об именовании переменных
//
// В коде используется "венгерская" нотация, суть которой заключается в том,
// что перед именем переменной добавляется префикс, обозначающий её тип:
// n - целочисленные переменные (int, long, ulong, short, ushort),
// f - переменные с плавающей точкой (double, float),
// e - перечисляемые переменные (enum),
// dt - переменная времени (datetime),
// h - хэндл (handle) файла или индикатора,
// s - строковые переменные (string).
//
// Кроме того, используются дополнительные префиксы области действия:
// i_ - входные параметры (input),
// g_ - глобальные переменные,
// m_ - член класса.
//+------------------------------------------------------------------+
input uint i_nMAPeriod=7; // Период
input ENUM_MA_METHOD i_eMAMethod=MODE_EMA; // Тип
input ENUM_APPLIED_PRICE i_eMAPrice=PRICE_CLOSE; // Цена для расчёта
input string i_sBBSettings = "*** Настройки Bollinger Bands ***"; //
input uint i_nBBPeriod = 50; // Период
input double i_fBBDeviation = 2; // Количество стандартных отклонений
input ENUM_APPLIED_PRICE i_eBBPrice = PRICE_CLOSE; // Цена для расчёта
// хэндлы индикаторов
int g_hBollingerBands = 0;
int g_hMA = 0;
int OnInit()
{
//---
// Проверим корректность входных параметров.
// Если какой-либо из параметров имеет недопустимое значение,
// выведем окно с уведомлением и прекратим работу советника.
// Строка с сообщением об ошибке.
// Если после всех проверок она останется пустой, значит входные параметры корректны.
string sError = "";
if(i_nBBPeriod < 1)
sError += "Период Bollinger Bands не может быть меньше 1. \n";
if(i_fBBDeviation < 0)
sError += "Количество стандартных отклонений Bollinger Bands не может быть отрицательным. \n";
if(i_nMAPeriod < 1)
sError += "Период МА не может быть меньше 1. \n";
// если после всех проверок строка ошибки не пустая, значит входные параметры некорректны.
// Выведем на экран уведомление с текстом ошибки, дополнив её предложением откорректировать параметры.
if(sError != "")
{
sError += "\nОткорректируйте входные параметры. Работа советника прекращена.";
Print(sError); // запись ошибки в журнал
MessageBox(sError); // вывод на экран сообщения об ошибке
return(INIT_FAILED); // завершаем инициализацию с ошибкой
}
// Если оказались здесь, значит входные параметры корректны и инициализация не прервалась.
// Создадим экземпляр индикатора ВВ и получим его хэндл
g_hBollingerBands = iBands(Symbol(), _Period, i_nBBPeriod, 0, i_fBBDeviation, i_eBBPrice,0,0);
// Проверим корректность полученного хэндла. В случае ошибки сделаем запись в журнал и завершим работу.
if(g_hBollingerBands == INVALID_HANDLE)
{
Print("Не удалось создать хэндл индикатора Bollonger Bands.");
return(INIT_FAILED); // завершаем инициализацию с ошибкой
}
// Создадим экземпляр индикатора МА и получим его хэндл
g_hMA = iMA(Symbol(), _Period,i_nMAPeriod, 0, i_eMAMethod, i_eMAPrice, 0);
// Проверим корректность полученного хэндла. В случае ошибки сделаем запись в журнал и завершим работу.
if(g_hMA == INVALID_HANDLE)
{
Print("Не удалось создать хэндл индикатора MA.");
return(INIT_FAILED); // завершаем инициализацию с ошибкой
}
//---
return(INIT_SUCCEEDED);
}
на этапе инициализации хэндла
// Создадим экземпляр индикатора МА и получим его хэндл
g_hMA = iMA(_Symbol, _Period, i_nMAPeriod, 0, i_eMAMethod, i_eMAPrice);
// Создадим экземпляр индикатора ВВ и получим его хэндл
g_hBollingerBands = iBands(Symbol(), _Period, i_nBBPeriod, 0, i_fBBDeviation, i_eBBPrice,0,0);Компилятор Мт4 говорит что в этих строчках неправильный параметр ,
Что именно изменили в мт5 и как правильно записать для мт4 ?
Шутишь? Люди годами не могут перейти с 4-ры на 5. Что ты за программист, если не в состоянии прочитать доку, там все по русски, черным по белому.
Алаверды в качестве конкретного примера. ("петросянов" не предлагать)!
Лет шесть назад на этот лигушатник меня вдохновил человек который посвятил этой деятельности большую свою часть жизни
времена шли по ходу шло новое и новое обновления , выходили все новые версии терминалов ( конкурентной возни вокруг инструментов великого обмана) печатались и перепечатывались документация!
И вот наступает день "Х"
И до Человека наконец то доходит....... что технический прогресс может быть нейтральным .......
Он медленно подымает руку в верх и резко опуская посылоет све и всех не х...., потому как просто не реально угнаться за всем новым
уходит враз и навсегда...........
Строит дом , сожает дерево,ростит внуков и нет у него желания читать что там какой то хрен выдумал в очередной раз но он остался трейдером приказы отправляет чуть ли не почтовыми голубями (по звонку телефона)
--------------------------------
Я пока еще не против и прочесть но( на досуге) , Хотя в большинстве своем поступаю так :
Беру код из кода базы , запускаю его в тестере, если он работает и заложенная в нем идея меня привлекает , начинаю разбирать !!
Что мне не понятно я предпочитаю спросить, можно между строками и пошутить заодно
Алаверды в качестве конкретного примера. ("петросянов" не предлагать)!
Лет шесть назад на этот лигушатник меня вдохновил человек который посвятил этой деятельности большую свою часть жизни
времена шли по ходу шло новое и новое обновления , выходили все новые версии терминалов ( конкурентной возни вокруг инструментов великого обмана) печатались и перепечатывались документация!
И вот наступает день "Х"
И до Человека наконец то доходит....... что технический прогресс может быть нейтральным .......
Он медленно подымает руку в верх и резко опуская посылоет све и всех не х...., потому как просто не реально угнаться за всем новым
уходит враз и навсегда...........
Строит дом , сожает дерево,ростит внуков и нет у него желания читать что там какой то хрен выдумал в очередной раз но он остался трейдером приказы отправляет чуть ли не почтовыми голубями (по звонку телефона)
--------------------------------
Я пока еще не против и прочесть но( на досуге) , Хотя в большинстве своем поступаю так :
Беру код из кода базы , запускаю его в тестере, если он работает и заложенная в нем идея меня привлекает , начинаю разбирать !!
Что мне не понятно я предпочитаю спросить, можно между строками и пошутить заодно
Ознакомиться с докой , по какой-то функцией 1-3 минуты(для меня.) Писать на форум , а прежде чем писать нужно сформулировать вопрос, при этом максимально подробно и развернуто, проверить нет ли двусмысленности....Выложить скрины.(минут 5, минимум).
Потом нужно ждать пока кто нибудь ответит, еще не факт что ответит правильно.(это займет от 30 минут до бесконечности).
Так не проще ли прочитать доку?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Появилось желание открыть Метоедитор МТ4 ,появись вопросы и т.д
Если в мт5 еще боле мене как то для себя могу подправить код , то мт4 ну никак поддается пониманию ......
Mт5 я начал осваивать с стихов этого кодера и Mт4 хотел бы познать в этом стиле поэзии )
в общем вот такая сочинюха :
/+------------------------------------------------------------------+
#property copyright "Mechanic"
#property link "https://login.mql5.com/ru/users/Sergey_Mechanic/portfolio"
#property version "1.00"
//+------------------------------------------------------------------+
// Соглашение об именовании переменных
//
// В коде используется "венгерская" нотация, суть которой заключается в том,
// что перед именем переменной добавляется префикс, обозначающий её тип:
// n - целочисленные переменные (int, long, ulong, short, ushort),
// f - переменные с плавающей точкой (double, float),
// e - перечисляемые переменные (enum),
// dt - переменная времени (datetime),
// h - хэндл (handle) файла или индикатора,
// s - строковые переменные (string).
//
// Кроме того, используются дополнительные префиксы области действия:
// i_ - входные параметры (input),
// g_ - глобальные переменные,
// m_ - член класса.
//+------------------------------------------------------------------+
input uint i_nMAPeriod=7; // Период
input ENUM_MA_METHOD i_eMAMethod=MODE_EMA; // Тип
input ENUM_APPLIED_PRICE i_eMAPrice=PRICE_CLOSE; // Цена для расчёта
input string i_sBBSettings = "*** Настройки Bollinger Bands ***"; //
input uint i_nBBPeriod = 50; // Период
input double i_fBBDeviation = 2; // Количество стандартных отклонений
input ENUM_APPLIED_PRICE i_eBBPrice = PRICE_CLOSE; // Цена для расчёта
// хэндлы индикаторов
int g_hBollingerBands = 0;
int g_hMA = 0;
int OnInit()
{
//---
// Проверим корректность входных параметров.
// Если какой-либо из параметров имеет недопустимое значение,
// выведем окно с уведомлением и прекратим работу советника.
// Строка с сообщением об ошибке.
// Если после всех проверок она останется пустой, значит входные параметры корректны.
string sError = "";
if(i_nBBPeriod < 1)
sError += "Период Bollinger Bands не может быть меньше 1. \n";
if(i_fBBDeviation < 0)
sError += "Количество стандартных отклонений Bollinger Bands не может быть отрицательным. \n";
if(i_nMAPeriod < 1)
sError += "Период МА не может быть меньше 1. \n";
// если после всех проверок строка ошибки не пустая, значит входные параметры некорректны.
// Выведем на экран уведомление с текстом ошибки, дополнив её предложением откорректировать параметры.
if(sError != "")
{
sError += "\nОткорректируйте входные параметры. Работа советника прекращена.";
Print(sError); // запись ошибки в журнал
MessageBox(sError); // вывод на экран сообщения об ошибке
return(INIT_FAILED); // завершаем инициализацию с ошибкой
}
// Если оказались здесь, значит входные параметры корректны и инициализация не прервалась.
// Создадим экземпляр индикатора ВВ и получим его хэндл
g_hBollingerBands = iBands(Symbol(), _Period, i_nBBPeriod, 0, i_fBBDeviation, i_eBBPrice,0,0);
// Проверим корректность полученного хэндла. В случае ошибки сделаем запись в журнал и завершим работу.
if(g_hBollingerBands == INVALID_HANDLE)
{
Print("Не удалось создать хэндл индикатора Bollonger Bands.");
return(INIT_FAILED); // завершаем инициализацию с ошибкой
}
// Создадим экземпляр индикатора МА и получим его хэндл
g_hMA = iMA(Symbol(), _Period,i_nMAPeriod, 0, i_eMAMethod, i_eMAPrice, 0);
// Проверим корректность полученного хэндла. В случае ошибки сделаем запись в журнал и завершим работу.
if(g_hMA == INVALID_HANDLE)
{
Print("Не удалось создать хэндл индикатора MA.");
return(INIT_FAILED); // завершаем инициализацию с ошибкой
}
//---
return(INIT_SUCCEEDED);
}
на этапе инициализации хэндла
// Создадим экземпляр индикатора МА и получим его хэндл
g_hMA = iMA(_Symbol, _Period, i_nMAPeriod, 0, i_eMAMethod, i_eMAPrice);
// Создадим экземпляр индикатора ВВ и получим его хэндл
g_hBollingerBands = iBands(Symbol(), _Period, i_nBBPeriod, 0, i_fBBDeviation, i_eBBPrice,0,0);Компилятор Мт4 говорит что в этих строчках неправильный параметр ,
Что именно изменили в мт5 и как правильно записать для мт4 ?