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

Показаны сообщения: с 7,961 по 7,971 из 7971

Тема: MQL4: Несколько вопросов от начинающего

 Перейти в классический вид темы
     
  1. ТОП сообщений
    2018-09-28   16:21
    Лучший ответ #1
    Накопленные выплаты 166589 RUB

    Цитата Сообщение от Viktor1987 Посмотреть сообщение

    Ты не понял... bool - это не один бит. В MQL bool - это целое число размером в 1 байт. Т.е. bool - это 8 бит, где значение 0b00000000 интерпретируется, как False, а значение 0b00000001(как и остальные всевозможные комбинации битов в этом байте) интерпретируется, как True. Т.е. для типа bool нет никакого смысла в битовых операторах, за исключением оператора логического отрицания "~", при помощи которого можно инвертировать булево значение. Но даже в этом случае результат будет совершенно не таким, как при работе с другими числовыми типами. В MQL битовые операторы, в подавляющем большинстве случаев, тебе могут даже и не понадобиться, а вот при работе с WinAPI они очень даже широко используются.
    Попробуй почитать еще вот это -> https://ravesli.com/urok-46-bitovye-...bitovye-maski/

    2018-08-28   21:53
    Лучший ответ #2
    Накопленные выплаты 27108 RUB

    Цитата Сообщение от json Посмотреть сообщение
    Как так "ниоткуда"? Идет проверка каког-то True, где-то же оно живет, существует! По-простому если, объясните.
    есть логические выражения, их результат имеет всего 2 значения: true и false, а сам результат логического выражения является командой для операторов использующих логические выражения, в нашем случае while() (, но могут быть и if())
    если в логическом выражении результат равен true, тогда будет выполняться цикл while
    т.е. компьютер не видит условие while(a>b) , а сначала вычисляет a>b, результат этого логического выражения подставит в while() и примет решение
    но если мы напишем while(true) то компьютер не будет вычислять логическое выражение - оно константа и уже известно, он сразу будет выполнять while()
    ....
    фух

    2020-01-25   09:45
    Лучший ответ #3
    Накопленные выплаты 21672 RUB

    Цитата Сообщение от buza Посмотреть сообщение
    если не затруднит, не могли бы растолковать почему используется "р", а не 1 или 2 (код причины для индикатора)
    Ну и чтобы "худо-бедно" понять как это работает, попробуйте воспользоваться "отладчиком".
    Замените "функцию-обработчик события" OnDeinit() в вашем индюке, на аналогичную из моего предыдущего сообщения. Вызовите "контекстное меню" и установите "точку останова" на заголовок функций.
    Вложение 3382403
    Должно получиться так.
    Вложение 3382404
    Нажмите кнопку начало отладки.
    Вложение 3382405
    Видим что открылось новое окно с нашим индюком.
    Вложение 3382406
    Переключите период, видим что управление остановилось на заголовке первого оператора. В "контекстном меню" столбца "Выражения" выбираем "Добавить".
    Вложение 3382407
    В появившиеся "текстовое поле" копируем имя нашего параметра.
    Вложение 3382408
    Теперь мы видим значение которое содержит это переменная. Нам осталось проверить что все работает правильно. Нажимаем либо на панели кнопку продолжить, либо клавишу F5.
    Вложение 3382409
    На этом снимке мы видим что действительно "управление" перешло к константе со значением "3".
    Вложение 3382410
    На этом снимке видно что у меня нет "точки останова" на метке "case" со значение "3" и поэтому "управление" сразу переходит в конец метода.
    Вложение 3382411
    Вообщем я как всегда считаю отладчик "первым делом" и настоятельно рекомендую крайне подробно изучить его документацию. Отладчик лично мне сохраняет очень много сил и времени.

    Вложение
    Превью
    2020-06-17   00:54
    Лучший ответ #4
    Накопленные выплаты 129610 RUB

    Цитата Сообщение от ir0407 Посмотреть сообщение
    Это из серии: "А зачем читать книжки если можно и в ютубе все посмотреть?". Гляди ширее... Может у человека тактика такая, при которой для ордеров надо хранить нечто такое, чего сервер хранить не умеет.
    А кто говорил, что будет легко?
    Про маркет небыло ни слова.
    И это, как раз, один из вариантов 6-го пункта из моего поста.
    Я давно уже ни с кем ни спорю )) Вы опытный программист, так что с вами тем более, сами все понимаете. Я просто рассказал про свой подход, у меня история ордеров/позиций в работе робота не используется. А рыночные/отложенные считываю перед запуском. При принятии решения открыть позу считываю всю инфу заново. А вообще, все это технические детали. Разработать стратегию, даже ее элементы, задача сложнее на порядки. Иначе, все крутые проггеры давно были бы миллиардерами
    Вот я в программировании по серьезному с 2000 г., много чего наворотил для российских ж/д, для американцев, немцев, англичан. До этого тоже программировал, начал с самодельного Синклера в конце 80-х, потом всякие турбо-паскали, Дельфи, еще куча языков. На форе с 2006 года примерно. Подруга тогда попросила помочь разобраться с МТ4, она тогда на кухне Телетрейд за 200 бачинских училась ))) Выяснил по быстрому, что можно писать программы для форы и засосал этот омут
    Сейчас точно знаю, что не обязательно хорошо знать программирование, всегда можно найти профи, который напишет советника. Главное, иметь четкую стратегию и умение так же четко изложить ее Исполнителю. 90% Заказчиков вообще не могут связать между собой два слова. До самоизоляции с одним общался по скайпу, у меня куча замечаний по туманному ТЗ, он в возмущении:"Да ведь опытному трейдеру и так все ясно, чего уточнять!" Сказал, что я не опытный, пусть идет к профи..
    Отказался работать, пошел к голодным студентам на mql5, вчера вернулся. Был послан в рай, слово рай тоже на три буквы ))

    2017-12-22   20:40
    Лучший ответ #5
    Накопленные выплаты 166589 RUB

    Цитата Сообщение от Leschich Посмотреть сообщение
    З.Ы. А вообще, почитав справку, может я и не прав... как нить поюзую данную функцию...
    Забей... Лучше возьми на вооружение вот эту:
    MQL код:

    bool IsNewBar()
    {
    static datetime LastBar;
    bool Result = (LastBar != Time[0]);
    if(Result) LastBar = Time[0];
    return(Result);
    }

    2018-02-14   10:00
    Лучший ответ #6
    Накопленные выплаты 29906 RUB

    Цитата Сообщение от IgorM Посмотреть сообщение

    Спасибо, но я сделал так!
    PHP код:
    ENUM_TIMEFRAMES tf_mass[9] = {PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_H4, PERIOD_D1, PERIOD_W1, PERIOD_MN1};//+------------------------------------------------------------------+//| Расчёт толщины объекта |//+------------------------------------------------------------------+int CulcObjectWidth(const int obj_tf){int cur_tf_ind = 0, obj_tf_ind = 0;//---for (int x = ArraySize(tf_mass)-1; x >= 0; x--){if (_Period == tf_mass[x]){cur_tf_ind = x;}if (obj_tf == tf_mass[x]){obj_tf_ind = x;}}//---return (obj_tf_ind - cur_tf_ind + 1);}

  2. линк#7961
    Частый гость
    OLEKSANDR стараюсь положительно себя зарекомендовать Аватар для OLEKSANDR
    Регистрация:
    04.01.2010
    Сообщений:
    126
    Накопленные выплаты (Подробнее):
    469 RUB
    Поставил(а) лайков:
    0
    Получено лайков:   6
    в 6 сообщениях
    5%
    ПодписатьсяПодписаться
    Подписано 0
    Продолжение темы [Архив] Несколько вопросов по MQL от начинающего

    -------------------------------------------

    Последний раз редактировалось Helios; 08.09.2020 в 17:15. Причина: архив

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

    vivianalens (27.07.2017)

    Bitcoin
  4. линк#7968
    Свой человек
    Поболтаем?
     
    Lexa622 хорошая репутация Lexa622 хорошая репутация Lexa622 хорошая репутация Аватар для Lexa622
    Регистрация:
    03.09.2016
    Пол:
    Мужчина
    Сообщений:
    335
    Накопленные выплаты (Подробнее):
    9969 RUB
    Поставил(а) лайков:
    304
    Получено лайков:   218
    в 65 сообщениях
    65%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от Leschich Посмотреть сообщение

    На мой взгляд, в данном конкретном случае, второй мэйджик как раз и упрощает код. Я вот заморочился, как мне все эти ордера засунуть в массив как предложил ir0407 ? Оч интересная идея. Я сначала индикатор тоже расписывал без массива. И сов очень тормозил в тестере. А когда я стал запрашивать раз в час его, скорость возросла в разы в оптимизаторе. Может попробовать двухмерный массив создать. Вот только не понимаю как его заполнить, чтоб все данные разложить и на понятные места, чтоб удобно было с ним работать?

    Немного программирую на четвёрке и один раз на пятёрке.

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

    Незарегистрированный (1 пользователь)

  6. линк#7969
    Кандидат форумных наук
    Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Аватар для Leschich
    Регистрация:
    30.11.2012
    Пол:
    Мужчина
    Сообщений:
    1,664
    Накопленные выплаты (Подробнее):
    55899 RUB
    Поставил(а) лайков:
    5,462
    Получено лайков:   2,205
    в 960 сообщениях
    133%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от Lexa622 Посмотреть сообщение
    На мой взгляд, в данном конкретном случае, второй мэйджик как раз и упрощает код.
    А если взять 3-4 ордера, им тоже по мейджику прописать? Тут такое дело, типа добровольное и как кто мыслит. Можно так, а можно этак.Товарищ рассказал, как лучше сделать, а делать или нет, это уже на ваше усмотрение.
    Цитата Сообщение от Lexa622 Посмотреть сообщение
    Может попробовать двухмерный массив создать. Вот только не понимаю как его заполнить, чтоб все данные разложить и на понятные места, чтобы удобно было с ним работать?
    Как минимум, через цикл перебрать ордера и занести данные в массив. Пробуй. Первый шаг сделаешь, потом легче будет, само пойдет. Почитай про массивы, там есть функции выбрать мах/мин значение.. составь алгоритм, что и как применить.

    " Мы можем видеть то, что случится в будущем, по событиям прошлого, если знаем, как смотреть". В. Сперандео.
    Мы называем процессы случайными... до тех пор, пока не установим их закономерности.

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

    Незарегистрированный (1 пользователь)

  8. линк#7970
    В начале пути
    Lika30 хорошая репутация Lika30 хорошая репутация Lika30 хорошая репутация Lika30 хорошая репутация Аватар для Lika30
    Регистрация:
    18.02.2019
    Пол:
    Женщина
    Сообщений:
    37
    Накопленные выплаты (Подробнее):
    1436 RUB
    Поставил(а) лайков:
    9
    Получено лайков:   14
    в 14 сообщениях
    38%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от Leschich Посмотреть сообщение
    Раз вы уж такие "привередливые", заметьте, что это не я сказал.. С другой стороны, может эта черта вам поможет быть не такими как все... Вот вам картинка для размышлений, и возможно, вы найдете оптимальное решение своим предпочтениям.
    Огромное спасибо еще раз. Я выяснила для себя, то что мне было нужно. Я только начала изучать язык MQL. В данный момент поставила себе задачу написать алгоритм, который сам будет определять "пустое " место в окне графика и выводить там необходимую мне информацию.


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

    Leschich (26.11.2020), Незарегистрированный (1 пользователь)

  10. линк#7971
    Кандидат форумных наук
    Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Аватар для Leschich
    Регистрация:
    30.11.2012
    Пол:
    Мужчина
    Сообщений:
    1,664
    Накопленные выплаты (Подробнее):
    55899 RUB
    Поставил(а) лайков:
    5,462
    Получено лайков:   2,205
    в 960 сообщениях
    133%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от Lika30 Посмотреть сообщение
    Я выяснила для себя, то что мне было нужно. Я только начала изучать язык MQL. В данный момент поставила себе задачу написать алгоритм, который сам будет определять "пустое " место в окне графика и выводить там необходимую мне информацию.
    С вашего позволения, есть еще предложение для размышления, это ведь здорово, когда есть варианты..
    В каком нить уголочке, как вариант, можно разместить кнопочку или несколько. При нажатии одной из них, отобразится общая инфа по условиям брокера, или там инструмента. По другой, общая инфа по счету. По третьей, инфа по конкретному инструменту, связанная с торговлей. Как вариант, можно обойтись одной кнопкой, и нажатием перебирать варианты.. или совместить кнопку(и) с выводом инфы не в определенное место, а в " "пустое " место в окне графика". Делать проще по отдельным самостоятельным блокам и если будет актуально, собирать из блоков конструктор.

    " Мы можем видеть то, что случится в будущем, по событиям прошлого, если знаем, как смотреть". В. Сперандео.
    Мы называем процессы случайными... до тех пор, пока не установим их закономерности.

  11. post_thanks Получено лайков: 3

    docikstorm (26.11.2020), Незарегистрированный (2 пользователя)

  12. линк#7972
    Свой человек
    vagul хорошая репутация vagul хорошая репутация vagul хорошая репутация Аватар для vagul
    Регистрация:
    10.01.2012
    Пол:
    Мужчина
    Сообщений:
    418
    Накопленные выплаты (Подробнее):
    4114 RUB
    Поставил(а) лайков:
    64
    Получено лайков:   224
    в 137 сообщениях
    54%
    ПодписатьсяПодписаться
    Подписано 0
    Подскажите дилетанту, как получить из поля ввода в переменную OrderLot введённое значение с точкой, сварганил вот такой код, а дальше "ни в зуб ногой".
    MQL код:
    //+------------------------------------------------------------------+
    //| Кнопки.mq4 |
    //| Copyright 2019, MetaQuotes Software Corp. |
    //| https://www.mql4.com |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2019, MetaQuotes Software Corp."
    #property link "https://www.mql4.com"
    #property version "1.00"
    #property strict

    double OrderLot;

    //+------------------------------------------------------------------+
    //| Expert initialization function |
    //+------------------------------------------------------------------+
    int OnInit()
    {
    //---
    PutButton("orderlot", 10, 25, "OrderLot");
    PutButton("buy",230,25,"BUY");
    //---
    return(INIT_SUCCEEDED);
    }
    //+------------------------------------------------------------------+
    // Свойства кнопок
    void PutButton(string name,int x,int y,string text)
    {
    ObjectCreate(0,name,OBJ_BUTTON,0,0,0);
    //--- установим координаты кнопки
    ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);
    ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);
    //--- установим размер кнопки
    ObjectSetInteger(0,name,OBJPROP_XSIZE,100);
    ObjectSetInteger(0,name,OBJPROP_YSIZE,20);
    //--- установим угол графика, относительно которого будут определяться координаты точки
    ObjectSetInteger(0,name,OBJPROP_CORNER,2);
    //--- установим текст
    ObjectSetString(0,name,OBJPROP_TEXT,text);
    //--- установим шрифт текста
    ObjectSetString(0,name,OBJPROP_FONT,"Calibri");
    //--- установим размер шрифта
    ObjectSetInteger(0,name,OBJPROP_FONTSIZE,12);
    //--- установим цвет текста
    ObjectSetInteger(0,name,OBJPROP_COLOR, clrWhite);
    //--- установим цвет фона
    ObjectSetInteger(0,name,OBJPROP_BGCOLOR, clrMediumSeaGreen);
    //--- установим цвет границы
    ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR, clrBlue);
    }
    //+------------------------------------------------------------------+
    //| Expert deinitialization function |
    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
    {
    //---

    }
    //+------------------------------------------------------------------+
    //| Expert tick function |
    //+------------------------------------------------------------------+
    void OnTick()
    {
    //---

    }
    //+------------------------------------------------------------------+
    //| ChartEvent function |
    //+------------------------------------------------------------------+
    void OnChartEvent(const int id,
    const long &lparam,
    const double &dparam,
    const string &sparam)
    {
    //-----------------------------------------------------------
    //--- проверим событие на нажатие кнопки мышки для отключения
    if(id==CHARTEVENT_OBJECT_CLICK) {
    if(sparam=="orderlot") {
    if(!ObjectGetInteger(0,"orderlot",OBJPROP_STATE)) // если нажатие на объекте с именем "orderlot"
    {
    ObjectSetInteger(0,"orderlot",OBJPROP_BGCOLOR, clrMediumSeaGreen);
    OrderLot = StrToDouble("0.000");
    ObjectDelete("OrderLot");

    Alert (Symbol(),", ",Period()," Изменили объём лота!",", "," OrderLot = ",OrderLot);

    }}}
    //-----------------------------------------------------------
    //--- проверим событие на нажатие кнопки мышки для включения
    if(id == CHARTEVENT_OBJECT_CLICK) {
    if(sparam == "orderlot") {
    if(ObjectGetInteger(0,"orderlot",OBJPROP_STATE)) // если нажатие на объекте с именем "orderlot"
    {
    ObjectSetInteger (0, "orderlot", OBJPROP_BGCOLOR, clrCrimson);
    //--- создадим поле ввода
    if(ObjectCreate(0,"OrderLot",OBJ_EDIT,0,0,0)) {
    ObjectSetInteger(0,"OrderLot",OBJPROP_XDISTANCE,40 ); // установим координаты объекта
    ObjectSetInteger(0,"OrderLot",OBJPROP_YDISTANCE,50 );
    ObjectSetInteger(0,"OrderLot",OBJPROP_XSIZE,40); // установим размеры объекта
    ObjectSetInteger(0,"OrderLot",OBJPROP_YSIZE,20);
    ObjectSetString (0,"OrderLot",OBJPROP_TEXT,"0.000"); // установим текст
    ObjectSetString (0,"OrderLot",OBJPROP_FONT,"Calibri"); // установим шрифт текста
    ObjectSetInteger(0,"OrderLot",OBJPROP_FONTSIZE,12) ; // установим размер шрифта
    ObjectSetInteger(0,"OrderLot",OBJPROP_ALIGN,ALIGN_ CENTER); // установим способ выравнивания текста в объекте
    ObjectSetInteger(0,"OrderLot",OBJPROP_READONLY,fal se); // установим (true) или отменим (false) режим только для чтения
    ObjectSetInteger(0,"OrderLot",OBJPROP_CORNER,CORNE R_LEFT_LOWER); // установим угол графика, относительно которого будут определяться координаты объекта
    ObjectSetInteger(0,"OrderLot",OBJPROP_COLOR, clrBlack); // установим цвет текста
    ObjectSetInteger(0,"OrderLot",OBJPROP_BGCOLOR, clrWhite); // установим цвет фона
    ObjectSetInteger(0,"OrderLot",OBJPROP_BORDER_COLOR , clrBlue); // установим цвет границы
    ObjectSetInteger(0,"OrderLot",OBJPROP_BACK,false); // отобразим на переднем (false) или заднем (true) плане
    ObjectSetInteger(0,"OrderLot",OBJPROP_SELECTABLE, false); // включим (true) или отключим (false) режим перемещения метки мышью
    ObjectSetInteger(0,"OrderLot",OBJPROP_SELECTED, false);
    ObjectSetInteger(0,"OrderLot",OBJPROP_HIDDEN, true); // скроем (true) или отобразим (false) имя графического объекта в списке объектов
    ObjectSetInteger(0,"OrderLot",OBJPROP_ZORDER, 0); // установим приоритет на получение события нажатия мыши на графике
    }}}
    ChartRedraw();// принудительно перерисуем все объекты на графике
    }}
    //+------------------------------------------------------------------+


    Название: Кнопки.png
Просмотров: 39

Размер: 5.3 КБ

    ... будет только два таких поля ввода, поэтому в int OnInit() их ,наверное, можно и не создавать. Они должны быть скрыты и появляться только для ввода, после вызова по кнопкам.

    Последний раз редактировалось vagul; вчера в 18:08.

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

    Незарегистрированный (2 пользователя)

  14. линк#7973
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    7,234
    Накопленные выплаты (Подробнее):
    166589 RUB
    Поставил(а) лайков:
    926
    Получено лайков:   7,306
    в 3,525 сообщениях
    101%
    ПодписатьсяПодписаться
    Подписано 2
    Цитата Сообщение от vagul Посмотреть сообщение
    а дальше "ни в зуб ногой".
    Меняем вот это
    MQL код:

    //--- проверим событие на нажатие кнопки мышки для отключения
    if(id==CHARTEVENT_OBJECT_CLICK) {
    if(sparam=="orderlot") {
    if(!ObjectGetInteger(0,"orderlot",OBJPROP_STATE)) // если нажатие на объекте с именем "orderlot"
    {
    ObjectSetInteger(0,"orderlot",OBJPROP_BGCOLOR,clrM ediumSeaGreen);
    OrderLot = StrToDouble("0.000");
    ObjectDelete("OrderLot");

    Alert (Symbol(),", ",Period(),", "," Exp_MA_Stoh_Martin_v2: "," Изменили объём лота!",", "," OrderLot = ",OrderLot);

    }}}


    На вот это
    MQL код:
       if(id == CHARTEVENT_OBJECT_ENDEDIT) {
    if(sparam == "OrderLot") {
    OrderLot = StrToDouble(ObjectGetString(0,"OrderLot",OBJPROP_T EXT));
    //Comment(" OrderLot = ", ObjectGetString(0,"OrderLot",OBJPROP_TEXT));
    ObjectDelete("OrderLot");
    Alert (Symbol(),", ",Period(),", "," Exp_MA_Stoh_Martin_v2: "," Изменили объём лота!",", "," OrderLot = ",OrderLot);
    }
    }

    И будет вам счастье.


  15. post_thanks Получено лайков: 3

    vagul (вчера), Незарегистрированный (2 пользователя)

  16. линк#7974
    Свой человек
    vagul хорошая репутация vagul хорошая репутация vagul хорошая репутация Аватар для vagul
    Регистрация:
    10.01.2012
    Пол:
    Мужчина
    Сообщений:
    418
    Накопленные выплаты (Подробнее):
    4114 RUB
    Поставил(а) лайков:
    64
    Получено лайков:   224
    в 137 сообщениях
    54%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от ir0407 Посмотреть сообщение
    И будет вам счастье.
    ir0407, спасибо большое, всё получается, вот только надо чтобы закрытие поля ввода происходило кликом по кнопке "OrderLot" и она стала зелёной(выключенной), а не просто по графику. А так, клик по графику убирает поле ввода, а кнопка остаётся включенной(красной).


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

    Незарегистрированный (1 пользователь)

  18. линк#7975
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    7,234
    Накопленные выплаты (Подробнее):
    166589 RUB
    Поставил(а) лайков:
    926
    Получено лайков:   7,306
    в 3,525 сообщениях
    101%
    ПодписатьсяПодписаться
    Подписано 2
    Цитата Сообщение от vagul Посмотреть сообщение
    вот только надо чтобы закрытие поля ввода происходило кликом по кнопке
    Да не вопрос... Слегка причесать код и все...
    MQL код:
    //+------------------------------------------------------------------+
    //| ChartEvent function |
    //+------------------------------------------------------------------+
    void OnChartEvent(const int id,
    const long &lparam,
    const double &dparam,
    const string &sparam)
    {
    //-----------------------------------------------------------
    if(id==CHARTEVENT_OBJECT_CLICK)
    if(sparam=="orderlot")
    switch((bool)ObjectGetInteger(0, "orderlot", OBJPROP_STATE))
    {
    case true: //Кнопка нажата
    //--- создадим поле ввода
    if(ObjectCreate(0,"OrderLot",OBJ_EDIT,0,0,0))
    {
    ObjectSetInteger(0,"OrderLot",OBJPROP_XDISTANCE,40 ); // установим координаты объекта
    ObjectSetInteger(0,"OrderLot",OBJPROP_YDISTANCE,50 );
    ObjectSetInteger(0,"OrderLot",OBJPROP_XSIZE,40); // установим размеры объекта
    ObjectSetInteger(0,"OrderLot",OBJPROP_YSIZE,20);
    ObjectSetString (0,"OrderLot",OBJPROP_TEXT,"0.000"); // установим текст
    ObjectSetString (0,"OrderLot",OBJPROP_FONT,"Calibri"); // установим шрифт текста
    ObjectSetInteger(0,"OrderLot",OBJPROP_FONTSIZE,12) ; // установим размер шрифта
    ObjectSetInteger(0,"OrderLot",OBJPROP_ALIGN,ALIGN_ CENTER); // установим способ выравнивания текста в объекте
    ObjectSetInteger(0,"OrderLot",OBJPROP_READONLY,fal se); // установим (true) или отменим (false) режим только для чтения
    ObjectSetInteger(0,"OrderLot",OBJPROP_CORNER,CORNE R_LEFT_LOWER); // установим угол графика, относительно которого будут определяться координаты объекта
    ObjectSetInteger(0,"OrderLot",OBJPROP_COLOR,clrBla ck); // установим цвет текста
    ObjectSetInteger(0,"OrderLot",OBJPROP_BGCOLOR,clrW hite); // установим цвет фона
    ObjectSetInteger(0,"OrderLot",OBJPROP_BORDER_COLOR ,clrBlue); // установим цвет границы
    ObjectSetInteger(0,"OrderLot",OBJPROP_BACK,false); // отобразим на переднем (false) или заднем (true) плане
    ObjectSetInteger(0,"OrderLot",OBJPROP_SELECTABLE,f alse); // включим (true) или отключим (false) режим перемещения метки мышью
    ObjectSetInteger(0,"OrderLot",OBJPROP_SELECTED,fal se);
    ObjectSetInteger(0,"OrderLot",OBJPROP_HIDDEN,true) ; // скроем (true) или отобразим (false) имя графического объекта в списке объектов
    ObjectSetInteger(0,"OrderLot",OBJPROP_ZORDER,0); // установим приоритет на получение события нажатия мыши на графике
    }
    //Изменим цвет кнопки
    ObjectSetInteger(0,"orderlot",OBJPROP_BGCOLOR,clrC rimson);
    break;
    case false: //Кнопка отжата
    //Получим значение поля ввода
    OrderLot = StrToDouble(ObjectGetString(0,"OrderLot",OBJPROP_T EXT));
    //Удвлим поле ввода
    ObjectDelete("OrderLot");
    //Изменим цвет кнопки
    ObjectSetInteger(0,"orderlot",OBJPROP_BGCOLOR,clrM ediumSeaGreen);
    //Ну и покажем алерт
    Alert (Symbol(),", ",Period(),", "," Exp_MA_Stoh_Martin_v2: "," Изменили объём лота!",", "," OrderLot = ",OrderLot);
    break;
    }
    }


  19. post_thanks Получено лайков: 3

    Leschich (вчера), vagul (вчера), Незарегистрированный (1 пользователь)

  20. линк#7976
    В начале пути
    Lika30 хорошая репутация Lika30 хорошая репутация Lika30 хорошая репутация Lika30 хорошая репутация Аватар для Lika30
    Регистрация:
    18.02.2019
    Пол:
    Женщина
    Сообщений:
    37
    Накопленные выплаты (Подробнее):
    1436 RUB
    Поставил(а) лайков:
    9
    Получено лайков:   14
    в 14 сообщениях
    38%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от Leschich Посмотреть сообщение
    В каком нить уголочке, как вариант, можно разместить кнопочку или несколько. При нажатии одной из них, отобразится общая инфа по условиям брокера, или там инструмента. По другой, общая инфа по счету. По третьей, инфа по конкретному инструменту, связанная с торговлей. Как вариант, можно обойтись одной кнопкой, и нажатием перебирать варианты.. или совместить кнопку(и) с выводом инфы не в определенное место, а в " "пустое " место в окне графика". Делать проще по отдельным самостоятельным блокам и если будет актуально, собирать из блоков конструктор.
    Понимаю Ваш сарказм. Использовать терминал и знания MQL в таком аспекте Вам кажется смешным. Мой старый друг-программист сказал,хорошим программистом станешь тогда, когда напишешь самую простенькую игрушку. А ведь он прав. Игры забирают очень много ресурсов компьютера. Программируя игру учишься манипулировать этими ресурсами. Да, сделав Тетрис для Метатрейдера, не увидишь никакой практической пользы. Он и сделку не откроет. Но при этом научишься аналитическому мышлению.


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

    Незарегистрированный (1 пользователь)

  22. линк#7977
    Свой человек
    vagul хорошая репутация vagul хорошая репутация vagul хорошая репутация Аватар для vagul
    Регистрация:
    10.01.2012
    Пол:
    Мужчина
    Сообщений:
    418
    Накопленные выплаты (Подробнее):
    4114 RUB
    Поставил(а) лайков:
    64
    Получено лайков:   224
    в 137 сообщениях
    54%
    ПодписатьсяПодписаться
    Подписано 0
    ir0407, спасибо большущее, выручил, всё работает. Теперь буду думать как проделать тоже самое с кнопкой цены. Вообще то у меня их сделано двенадцать, чтобы вмешиваться в работу сова, не "тревожа" его свойства.


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

    Незарегистрированный (1 пользователь)

    <a href="https://instaforex.org/ru/forexcopy_system">Форекс портал</a>
  24. линк#7978
    Кандидат форумных наук
    Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Leschich авторитетный пользователь Аватар для Leschich
    Регистрация:
    30.11.2012
    Пол:
    Мужчина
    Сообщений:
    1,664
    Накопленные выплаты (Подробнее):
    55899 RUB
    Поставил(а) лайков:
    5,462
    Получено лайков:   2,205
    в 960 сообщениях
    133%
    ПодписатьсяПодписаться
    Подписано 0
    Цитата Сообщение от Lika30 Посмотреть сообщение
    Понимаю Ваш сарказм.
    Психологию, похоже, никто не отменял.. Извините, если вы увидели где-то сарказм. И все же, что не так? А оказывается, ларчик просто открывался..
    Добро, которого не ждали и о котором не просили - это НАВЯЗАННОЕ ДОБРО, то есть люди делают добро, потому что им так захотелось, потому что они посчитали, что так будет правильно. Вот только забыли спросить разрешение у тех, на кого это добро свалилось, не посчитали нужным спросить, нужна ли их помощь, хотят ли её принять.
    Насильно НАВЯЗАННОЕ ДОБРО не может считаться настоящим добром, так как часто приводит к непониманию и вражде между людьми.
    Согласен с этим высказыванием из интернета... Да, признаю, что был не прав.

    " Мы можем видеть то, что случится в будущем, по событиям прошлого, если знаем, как смотреть". В. Сперандео.
    Мы называем процессы случайными... до тех пор, пока не установим их закономерности.

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

    Незарегистрированный (2 пользователя)


Страница 399 из 399
Первая ... 389 398 Последняя

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

Похожие темы

  1. Несколько слов о языке программирования mql4
    от Заз в разделе MQL-программирование, АТС
    Replies: 32
    Последнее сообщение: 26.09.2018, 11:31
  2. 55 вопросов по истории РОССИИ
    от НАИВНЫЙ-СЕРДЦИЕТ в разделе Свободное общение
    Replies: 15
    Последнее сообщение: 25.12.2015, 15:44
  3. [Архив] MQL4: Несколько вопросов от начинающего
    от Nick'Otin в разделе MQL-программирование, АТС
    Replies: 9235
    Последнее сообщение: 26.10.2015, 01:36