Спасибо.
Только есть вопрос: можно ли сделать так, что бы линия не была кривой? Просто горизонтальная линия, обозначающая 10 дневный минимум или максимум на данный момент. Просто изгибы этой линии несут ненужную инфу и загромождают график.
Спасибо.
Только есть вопрос: можно ли сделать так, что бы линия не была кривой? Просто горизонтальная линия, обозначающая 10 дневный минимум или максимум на данный момент. Просто изгибы этой линии несут ненужную инфу и загромождают график.
Зато можно историю поизучать. Если нет интереса к изучению истории, надо полагать вы уже мастер трединга! Со всеми вытекающими последствиями. Готового такого индикатора у меня нет.
Зато можно историю поизучать. Если нет интереса к изучению истории, надо полагать вы уже мастер трединга! Со всеми вытекающими последствиями. Готового такого индикатора у меня нет.
изучение истории это вещь нужная, но цель индикатора сейчас не в этом. Если на графике уже задествовано несколько индикаторов, то добавление еще оной кривой не желательно. А видеть максимум и минимум хотелось бы.
//+------------------------------------------------------------------+
//| ma.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "https://www.metaquotes.net/"
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
ObjectSet("MAX", 6, Yellow);
ObjectSet("MIN", 6, Yellow);
ObjectSet("SRD", 6, Yellow);
ObjectSet("SRD", 7, 2);
int init()
{
//---- indicators
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete("MAX");
ObjectDelete("MIN");
ObjectDelete("SRD");
double h = 1;
double minimum1 = iLow(NULL, PERIOD_D1, h);
double maximum1 = iHigh(NULL, PERIOD_D1, h);
for(; h < 11; h ++)
{
double minimum = iLow(NULL, PERIOD_D1, h);
double maximum = iHigh(NULL, PERIOD_D1, h);
if (minimum < minimum1) minimum1 = minimum;
if (maximum > maximum1) maximum1 = maximum;
}
//----
ObjectCreate("MAX", OBJ_HLINE, 0, 0, maximum1);
ObjectCreate("MIN", OBJ_HLINE, 0, 0, minimum1);
ObjectCreate("SRD", OBJ_HLINE, 0, 0, (minimum1 + maximum1)/2);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//----
//----
return(0);
}
//+------------------------------------------------------------------+
Вот примерно что у меня получилось своим трудом, если у кого то есть дополнения, советы, пожелания буду рад услышать.
Есть такие вопросы: как сделать чтобы цвета линий запрашивались? как сделать что бы линии появлялись сразу после запуска индикатора, а не при перещелкивании временных интервалов?
что бы линии появлялись сразу после запуска индикатора, а не при перещелкивании временных интервалов?
Достаточно перенести расчетную часть из функции деинит() в функцию старт().
//+------------------------------------------------------------------+ //| ma.mq4 | //| Copyright © 2009, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_chart_window //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { ObjectSet("MAX", 6, Yellow); ObjectSet("MIN", 6, Yellow); ObjectSet("SRD", 6, Yellow); ObjectSet("SRD", 7, 2); return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { ObjectDelete("MAX"); ObjectDelete("MIN"); ObjectDelete("SRD"); return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { ObjectDelete("MAX"); ObjectDelete("MIN"); ObjectDelete("SRD"); double h = 1; double minimum1 = iLow(NULL, PERIOD_D1, h); double maximum1 = iHigh(NULL, PERIOD_D1, h); for(; h < 11; h ++) { double minimum = iLow(NULL, PERIOD_D1, h); double maximum = iHigh(NULL, PERIOD_D1, h); if (minimum < minimum1) minimum1 = minimum; if (maximum > maximum1) maximum1 = maximum; } //---- ObjectCreate("MAX", OBJ_HLINE, 0, 0, maximum1); ObjectCreate("MIN", OBJ_HLINE, 0, 0, minimum1); ObjectCreate("SRD", OBJ_HLINE, 0, 0, (minimum1 + maximum1)/2); //---- return(0); } //+------------------------------------------------------------------+Что-то примерно так
//+------------------------------------------------------------------+
//| ma.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "https://www.metaquotes.net/"
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init() //
{ //
ObjectSet("MAX", 6, Yellow); //цвет линии MAX желтый
ObjectSet("MIN", 6, Yellow); //цвет линии MIN желтый
ObjectSet("SRD", 6, Yellow); //цвет линии SRD желтый
ObjectSet("SRD", 7, 2); //линия SRD пунктирная
return(0); //
} //
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete("MAX"); //удаляем старую линию
ObjectDelete("MIN"); //удаляем старую линию
ObjectDelete("SRD"); //удаляем старую линию
return(0);
}
//----
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start() ///
{ ///
double h = 1; //задаем переменную сдвига назад
double minimum1 = iLow(NULL, PERIOD_D1, h); ///задаем начальное мин и макс значение в дневном диапозоне
double maximum1 = iHigh(NULL, PERIOD_D1, h); ///со сдвигом h дней назад(равно 1 сейчас)
for(; h < 11; h ++) //начинаем цикл в 10 шагов (1 шаг 1 день)
{ //начало цикла
double minimum = iLow(NULL, PERIOD_D1, h); //находим мин значение h дней назад
double maximum = iHigh(NULL, PERIOD_D1, h); //находим макс значение h дней назад
if (minimum < minimum1) minimum1 = minimum; //если найденное значение меньше то прировниваем
if (maximum > maximum1) maximum1 = maximum; //если найденное значение больше то прировниваем
} //конец цикла
//----
ObjectCreate("MAX", OBJ_HLINE, 0, 0, maximum1); //рисуем лининию с наименьшим найденным значением
ObjectCreate("MIN", OBJ_HLINE, 0, 0, minimum1); //рисуем лининию с наибольшим найденным значением
ObjectCreate("SRD", OBJ_HLINE, 0, 0, (minimum1 + maximum1)/2); //рисуем среднюю линию
Comment("MIN10=", minimum1," MAX10=", maximum1); //надпись сверху в углу
//---- ///
return(0); ///
} ///
//+------------------------------------------------------------------+
Спасибо, вот только беда, линии все стали красными... хотя цвет вроде задается вначале...
Вернее они вначале красные а потом переделываются как надо... интересно почему?
Добавил надписи в углу с цифрами мин и макс за 10 дней
//+------------------------------------------------------------------+
//| ma.mq4 |
//| Copyright © 2009, MetaQuotes Software Corp. |
//| https://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link "https://www.metaquotes.net/"
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init() //
{ //
return(0); //
} //
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete("MAX"); //удаляем старую линию
ObjectDelete("MIN"); //удаляем старую линию
ObjectDelete("SRD"); //удаляем старую линию
return(0);
}
//----
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start() ///
{ ///
double h = 1; //задаем переменную сдвига назад
double minimum1 = iLow(NULL, PERIOD_D1, h); ///задаем начальное мин и макс значение в дневном диапозоне
double maximum1 = iHigh(NULL, PERIOD_D1, h); ///со сдвигом h дней назад(равно 1 сейчас)
for(; h < 11; h ++) //начинаем цикл в 10 шагов (1 шаг 1 день)
{ //начало цикла
double minimum = iLow(NULL, PERIOD_D1, h); //находим мин значение h дней назад
double maximum = iHigh(NULL, PERIOD_D1, h); //находим макс значение h дней назад
if (minimum < minimum1) minimum1 = minimum; //если найденное значение меньше то прировниваем
if (maximum > maximum1) maximum1 = maximum; //если найденное значение больше то прировниваем
} //конец цикла
//----
ObjectCreate("MAX", OBJ_HLINE, 0, 0, maximum1); //рисуем лининию с наименьшим найденным значением
ObjectCreate("MIN", OBJ_HLINE, 0, 0, minimum1); //рисуем лининию с наибольшим найденным значением
ObjectCreate("SRD", OBJ_HLINE, 0, 0, (minimum1 + maximum1)/2); //рисуем среднюю линию
ObjectSet("MAX", 6, Yellow); //цвет линии MAX желтый
ObjectSet("MIN", 6, Yellow); //цвет линии MIN желтый
ObjectSet("SRD", 6, Yellow); //цвет линии SRD желтый
ObjectSet("SRD", 7, 2); //линия SRD пунктирная
Comment("MIN10=", minimum1," MAX10=", maximum1); //надпись сверху в углу
//---- ///
return(0); ///
} ///
//+------------------------------------------------------------------+
Так вроде хорошо, но вопрос как сделать запрос на цвет линий перед тем как включить индикатор? и как задать их по умолчанию определенного цвета?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Не силен я в програмировании, но очень хочется на график прилепить 1 простой индикатор.
Цель индикатора нарисовать 3 линии:
1. максимум за последние 10 торговых дней
2. минимум за последние 10 торговых дней
3. средняя между 1 и 2 линией.
И неплохо бы еще число в уголочке = среднему значению дневной свечки (МАКС-МИН) за 25 дней.
Думаю знающим, умеющим людям такое написать - 5 минут и если кто потратит немного времени и создаст такой индикатор, тому огромное спасибо.