Заработай до
50000$
на приглашении друзей
получить StartUp Bonus
от ИнстаФорекс
Вложений не требуется!
Начни торговлю
без вложений и риска
С новым STARTUP бонусом 1000$
Получи бонус
55%
от ИнстаФорекс
на каждое пополнение
Ответить в теме

Показаны сообщения: с 1 по 12 из 12

Тема: Нужна помощь по коду MQL4

 Перейти в классический вид темы
  1. линк#1
    Частый гость
    Отдыхаю
     
    JonBrasers стараюсь положительно себя зарекомендовать Аватар для JonBrasers
    Регистрация:
    28.01.2017
    Пол:
    Мужчина
    Сообщений:
    65
    Накопленные выплаты (Подробнее):
    1650 RUB
    Поставил лайков:
    11
    Получено лайков:   7
    в 7 сообщениях
    11%
    ПодписатьсяПодписаться
    Подписано 0
    Скажу сразу, изучать MQL начал недавно, поэтому сильно не ругайте меня)))
    Повторяюсь, только учусь и индикатор пишу как домашнее задание, не надо давать ссылки где можно скачать что то подобное!
    PHP код:
    extern int Dig = 4; extern color cvet_plus = clrGreen; extern color cvet_minus = clrRed; extern color cvet_null = clrDarkGray; string Obj_perc ="Цена и изменение %"; void OnStart() { double Price_Cls_Day = iClose(NULL,PERIOD_D1,1); double Persent = (Bid - Price_Cls_Day)/Price_Cls_Day*100; if(NormalizeDouble(Persent,Dig) > 0.00) { color textcolor = cvet_plus; string text = Bid + " +" + DoubleToStr( Persent, Dig)+"%"; } if(NormalizeDouble(Persent,Dig) < 0.00) { color textcolor = cvet_minus; string text = Bid + " -" + DoubleToStr( Persent, Dig)+"%"; } if(NormalizeDouble(Persent,Dig) == 0.00) { color textcolor = cvet_null; string text = Bid + " " + DoubleToStr( Persent, Dig)+"%"; } if(ObjectFind(Obj_perc)==-1) { ObjectCreate(Obj_perc,OBJ_LABEL,0,0,0); ObjectSet (Obj_perc,OBJPROP_CORNER, 0); ObjectSet (Obj_perc,OBJPROP_XDISTANCE,15); ObjectSet (Obj_perc,OBJPROP_YDISTANCE,20); } ObjectSetText(Obj_perc,text,8,"MS Sans Serif",textcolor); //ошибка в этой строке и т.д.
    индикатор должен показывать текущую цену и изменение цены по предыдущему дню в процентах при этом в зависимости от положительного или отрицательного значения меняется цвет!
    Ошибку выдает во время компиляции в строке ObjectSetText с таким сообщением 'text' - undeclared identifier и 'textcvet' - undeclared identifier

    уже как только не пробовал, перекопал сайт docs.mql4.com, не пойму((((( помогите плизззз!!


  2. Dragon R
  3. линк#2
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    7,292
    Накопленные выплаты (Подробнее):
    169700 RUB
    Поставил(а) лайков:
    932
    Получено лайков:   7,418
    в 3,564 сообщениях
    102%
    ПодписатьсяПодписаться
    Подписано 4
    Цитата Сообщение от JonBrasers Посмотреть сообщение
    Ошибку выдает во время компиляции в строке ObjectSetText с таким сообщением 'text' - undeclared identifier и 'textcvet' - undeclared identifier
    Там не только ошибки, там еще и варнингов туча... Они вас не смущают? Я понимаю, что там копипастинг, но всеже думать, что делаете, нужно. А код должен быть примерно таким:
    PHP код:
    extern int Dig = 4;extern color cvet_plus = clrGreen;extern color cvet_minus = clrRed;extern color cvet_null = clrDarkGray;string Obj_perc ="Цена и изменение %";void OnStart() { double Price_Cls_Day = iClose(NULL,PERIOD_D1,1); double Persent = (Bid - Price_Cls_Day)/Price_Cls_Day*100; color textcolor = clrNONE; string text; if(NormalizeDouble(Persent,Dig) > 0.00) { textcolor = cvet_plus; text = StringConcatenate(DoubleToString(Bid, Digits), " +", DoubleToStr( Persent, Dig), "%"); } if(NormalizeDouble(Persent,Dig) < 0.00) { textcolor = cvet_minus; text = StringConcatenate(DoubleToString(Bid, Digits), " -", DoubleToStr( Persent, Dig), "%"); } if(NormalizeDouble(Persent,Dig) == 0.00) { textcolor = cvet_null; text = StringConcatenate(DoubleToString(Bid, Digits), " ", DoubleToStr( Persent, Dig), "%"); } if(ObjectFind(Obj_perc)==-1) { ObjectCreate(Obj_perc,OBJ_LABEL,0,0,0); ObjectSet (Obj_perc,OBJPROP_CORNER, 0); ObjectSet (Obj_perc,OBJPROP_XDISTANCE,15); ObjectSet (Obj_perc,OBJPROP_YDISTANCE,20); } ObjectSetText(Obj_perc,text,8,"MS Sans Serif",textcolor); }
    Заодно и варнинги поубирал.

    Цитата Сообщение от JonBrasers Посмотреть сообщение
    уже как только не пробовал, перекопал сайт docs.mql4.com, не пойму(((((
    А тут читать не пробовали?


  4. post_thanks Получено лайков: 2

    desper (09.02.2017), JonBrasers (06.02.2017)

  5. линк#3
    Частый гость
    Отдыхаю
     
    JonBrasers стараюсь положительно себя зарекомендовать Аватар для JonBrasers
    Регистрация:
    28.01.2017
    Пол:
    Мужчина
    Сообщений:
    65
    Накопленные выплаты (Подробнее):
    1650 RUB
    Поставил лайков:
    11
    Получено лайков:   7
    в 7 сообщениях
    11%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от ir0407 Посмотреть сообщение
    Там не только ошибки
    Спасибо, я подозревал что ошибка в видимости переменных, но не понял как правильно это исправить, немного знаю PHP, но тут видимость по другому.

    Цитата Сообщение от ir0407 Посмотреть сообщение
    Заодно и варнинги поубирал.
    чет я не пойму, показывает что варнинги остались, не пойму что не так, скопировал в точности, перепроверил, точно так как вы написали????
    варнинги тут:
    PHP код:
    double Price_Cls_Day = iClose(NULL,PERIOD_D1,1);color textcolor = clrNONE;string text;
    не пойму что не так, подскажите?

    Цитата Сообщение от ir0407 Посмотреть сообщение
    А тут читать не пробовали?
    читал, седня только начал пробовать писать))) не подскажите редактор с подсветкой и т.п.???


  6. линк#4
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    7,292
    Накопленные выплаты (Подробнее):
    169700 RUB
    Поставил(а) лайков:
    932
    Получено лайков:   7,418
    в 3,564 сообщениях
    102%
    ПодписатьсяПодписаться
    Подписано 4
    Цитата Сообщение от JonBrasers Посмотреть сообщение
    чет я не пойму, показывает что варнинги остались
    Не могу знать... У меня, относительно выложенного кода, варнингов нет. А по оставшемуся у вас - понятия не имею.

    Цитата Сообщение от JonBrasers Посмотреть сообщение
    не подскажите редактор с подсветкой и т.п.???
    А чем не устраивает встроенный в терминал редактор "Метаедитор"?


  7. линк#5
    Частый гость
    Отдыхаю
     
    JonBrasers стараюсь положительно себя зарекомендовать Аватар для JonBrasers
    Регистрация:
    28.01.2017
    Пол:
    Мужчина
    Сообщений:
    65
    Накопленные выплаты (Подробнее):
    1650 RUB
    Поставил лайков:
    11
    Получено лайков:   7
    в 7 сообщениях
    11%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от ir0407 Посмотреть сообщение
    Не могу знать... У меня, относительно выложенного кода, варнингов нет. А по оставшемуся у вас - понятия не имею.
    Спасибо, исправил все кроме одного который пищит OnStart function defined in the non-script program Indicatorgfdd.mq4 18 6
    вот мой полный код
    PHP код:
    //+------------------------------------------------------------------+//| Indicators.mq4 |//| JonBrasers Copyright 2017 |//| [url]https://vk.com/jonbrasers[/url] |//+------------------------------------------------------------------+#property copyright "JonBrasers Copyright 2017"#property link "jonbrasers@gmail.com"#property version "1.00"#property strict#property indicator_chart_windowextern int Dig = 4; // Количество значащих цифрextern color cvet_plus = clrGreen; // Цвет +extern color cvet_minus = clrRed; // Цвет -extern color cvet_null = clrDarkGray; // Цвет 0string Obj_perc ="Цена и изменение %"; // Название объектаvoid OnStart() { double Price_Cls_Day = iClose(NULL,PERIOD_D1,1); // Цена закрытия предыдущего дня double Persent = (Bid - Price_Cls_Day)/Price_Cls_Day*100; // % изменения цены color textcolor = clrNONE; string text; if(NormalizeDouble(Persent,Dig) > 0.00) { // Выбор цвета зависит от знака textcolor = cvet_plus; // Цвет для + text = StringConcatenate(DoubleToString(Bid, Digits), " +", DoubleToStr( Persent, Dig), "%"); } if(NormalizeDouble(Persent,Dig) < 0.00) { // Выбор цвета зависит от знака textcolor = cvet_minus; // Цвет для - text = StringConcatenate(DoubleToString(Bid, Digits), " -", DoubleToStr( Persent, Dig), "%"); } if(NormalizeDouble(Persent,Dig) == 0.00) { // Выбор цвета зависит от знака textcolor = cvet_null; // Цвет для 0 text = StringConcatenate(DoubleToString(Bid, Digits), " ", DoubleToStr( Persent, Dig), "%"); } if(ObjectFind(Obj_perc)==-1) { // Если объекта нет.. ObjectCreate(Obj_perc,OBJ_LABEL,0,0,0); // Создаём новый объект ObjectSet (Obj_perc,OBJPROP_CORNER, 0); // Угол привязки ObjectSet (Obj_perc,OBJPROP_XDISTANCE,15); // Координата Х ObjectSet (Obj_perc,OBJPROP_YDISTANCE,80); // Координата Y } ObjectSetText(Obj_perc,text,8,"MS Sans Serif",textcolor); // Текстовое описание объекта return;}int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { return(rates_total);}
    Цитата Сообщение от ir0407 Посмотреть сообщение
    А чем не устраивает встроенный в терминал редактор "Метаедитор"?
    Нормальный редактор, но было бы удобнее если была бы подсветка, авто подставка функций и т.д. подсветка ошибок в сразу.
    пользовался phpDesigner есть что то подобное для mql, если вы знакомы с phpDesigner??? буду благодарен и спасибо за советы и подсказки!)


  8. линк#6
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    7,292
    Накопленные выплаты (Подробнее):
    169700 RUB
    Поставил(а) лайков:
    932
    Получено лайков:   7,418
    в 3,564 сообщениях
    102%
    ПодписатьсяПодписаться
    Подписано 4
    Цитата Сообщение от JonBrasers Посмотреть сообщение
    Спасибо, исправил все кроме одного который пищит OnStart function defined in the non-script program Indicatorgfdd.mq4 18 6
    Вы уж определитесь, что это у вас... Скрипт или все таки индикатор. В индикаторах функция OnStart() запрещена. И наоборот, в скриптах не может использоваться функция OnCalculate().
    Читаем тут.

    Для индикатора весь код из функции OnStart() нужно перенести в тело функции OnCalculate(), а саму функцию OnStart() удалить.

    Цитата Сообщение от JonBrasers Посмотреть сообщение
    Нормальный редактор, но было бы удобнее если была бы подсветка, авто подставка функций и т.д. подсветка ошибок в сразу.
    пользовался phpDesigner есть что то подобное для mql, если вы знакомы с phpDesigner???
    В метаедиторе это все есть. Правда до phpDesigner-а ему далеко, но и MQL по сравнению с PHP как бы и не язык вовсе. А о возможностях метаедитора лучше чем в справке по этому редактору вряд ли кто расскажет. Да и сторонних редакторов, которые были бы знакомы с особенностями MQL просто нет. Как вариант можете попробовать Notepad++, но там нужно кучу настроек делать и все нюансы MQL загонять. Головняк однако.


  9. post_thanks Получено лайков: 1

    JonBrasers (06.02.2017)

  10. линк#7
    Частый гость
    Отдыхаю
     
    JonBrasers стараюсь положительно себя зарекомендовать Аватар для JonBrasers
    Регистрация:
    28.01.2017
    Пол:
    Мужчина
    Сообщений:
    65
    Накопленные выплаты (Подробнее):
    1650 RUB
    Поставил лайков:
    11
    Получено лайков:   7
    в 7 сообщениях
    11%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от ir0407 Посмотреть сообщение
    Вы уж определитесь, что это у вас... Скрипт или все таки индикатор. В индикаторах функция OnStart() запрещена. И наоборот, в скриптах не может использоваться функция OnCalculate().
    Читаем тут.

    Для индикатора весь код из функции OnStart() нужно перенести в тело функции OnCalculate(), а саму функцию OnStart() удалить.
    Спасибо за объяснение, данный урок индикатора нашел где-то в интернете, но основанные на старом формате RateInfo, вот сам попробовал переделать под новый и заодно потренироваться)))
    Буду благодарен ссылочкам где можно найти примеры или уроки уже нового формата "Начиная с билда 600 язык программирования MQL4 полностью переработан", сам ни чего подобного найти не смог, все только старое, еще больше запутался((((

    Цитата Сообщение от ir0407 Посмотреть сообщение
    В метаедиторе это все есть. Правда до phpDesigner-а ему далеко, но и MQL по сравнению с PHP как бы и не язык вовсе. А о возможностях метаедитора лучше чем в справке по этому редактору вряд ли кто расскажет. Да и сторонних редакторов, которые были бы знакомы с особенностями MQL просто нет. Как вариант можете попробовать Notepad++, но там нужно кучу настроек делать и все нюансы MQL загонять. Головняк однако.
    Значит будем тренироваться на метаедиторе, как подучусь обязательно выложу примеры своих творений, надеюсь что-то выйдет)))


  11. линк#8
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    7,292
    Накопленные выплаты (Подробнее):
    169700 RUB
    Поставил(а) лайков:
    932
    Получено лайков:   7,418
    в 3,564 сообщениях
    102%
    ПодписатьсяПодписаться
    Подписано 4
    Цитата Сообщение от JonBrasers Посмотреть сообщение
    Буду благодарен ссылочкам где можно найти примеры или уроки уже нового формата
    Тонны примеров тут. А что касается уроков по новому MQL то их просто нет. Правда по многим темам есть некоторое количество статей... Поэтому справка, справка и еще раз справка. В ней тоже примеры есть.


  12. линк#9
    Свой человек
    В эйфории
     
    desper приемлемый уровень репутации Аватар для desper
    Регистрация:
    17.12.2014
    Пол:
    Мужчина
    Сообщений:
    433
    Накопленные выплаты (Подробнее):
    9516 RUB
    Поставил лайков:
    448
    Получено лайков:   74
    в 63 сообщениях
    17%
    ПодписатьсяПодписаться
    Подписано 0
    Можете подсказать, как в этот коде подставить значения эквилити, когда эквилити меньше баланса то красный, когда больше то зеленым. Еще хлотелось вывести на экран значения максимального эквилити, процентное соотношение и количество пунктов.


  13. линк#10
    Частый гость
    AgGreSsiVe стараюсь положительно себя зарекомендовать Аватар для AgGreSsiVe
    Регистрация:
    08.05.2015
    Пол:
    Мужчина
    Сообщений:
    140
    Накопленные выплаты (Подробнее):
    860 RUB
    Поставил лайков:
    1
    Получено лайков:   5
    в 5 сообщениях
    4%
    ПодписатьсяПодписаться
    Подписано 0
    Notepad++ с готовыми настройками и даже встроенным компилятором, де то на форуме был. Но это такой гемор туда - сюда код кидать. Реально проще сразу к метаэдитору привыкать.


  14. линк#11
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    7,292
    Накопленные выплаты (Подробнее):
    169700 RUB
    Поставил(а) лайков:
    932
    Получено лайков:   7,418
    в 3,564 сообщениях
    102%
    ПодписатьсяПодписаться
    Подписано 4
    Цитата Сообщение от AgGreSsiVe Посмотреть сообщение
    Notepad++ с готовыми настройками и даже встроенным компилятором, де то на форуме был. Но это такой гемор туда - сюда код кидать. Реально проще сразу к метаэдитору привыкать.
    Согласен. В принципе прямо в NP++ можно, как редактировать так и компилировать код MQL. Но в нем нет самого ценного - отладчика.


  15. Dragon R
  16. линк#12
    В начале пути
    Макс2018 стараюсь положительно себя зарекомендовать Аватар для Макс2018
    Регистрация:
    21.01.2019
    Пол:
    Мужчина
    Сообщений:
    4
    Накопленные выплаты (Подробнее):
    0 RUB
    Поставил лайков:
    0
    Получено лайков:   0
    в 0 сообщениях
    0%
    ПодписатьсяПодписаться
    Подписано 0
    ir0407,



Подписанные на тему (2)

Открыть

Похожие темы

  1. НУЖНА ПОМОЩЬ!!
    от ALGTR в разделе Юмор: шутки, анекдоты, приколы... :-)
    Replies: 82
    Последнее сообщение: 04.02.2014, 18:32
  2. Нужна Помощь
    от chegem в разделе Коллективный разум
    Replies: 6
    Последнее сообщение: 16.10.2013, 12:52
  3. Нужна помощь
    от Laki в разделе Автоматизированные торговые системы
    Replies: 71
    Последнее сообщение: 14.01.2013, 01:42
  4. Нужна помощь
    от lolalola в разделе Свободное общение
    Replies: 0
    Последнее сообщение: 25.06.2012, 20:29
  5. Нужна помощь
    от paradyne в разделе Свободное общение
    Replies: 7
    Последнее сообщение: 04.05.2012, 15:59