Индикаторные панели и диалоги управления - Страница 2
Страница 2 из 2 ПерваяПервая 1 2
Показано с 11 по 17 из 17

Тема: Индикаторные панели и диалоги управления

  1. #11
    Banned
    Регистрация
    29.05.2012
    Сообщений
    638
    Благодарности
    Получено: 145
    Отправлено: 52
    На панели выбора типа ордера и лота будут следующие элементы:
    1. Текстовые метки, для отображения надписей "Тип ордера", "Цена открытия", "Минимальный лот", "Макс. стоп-лосс", "Лот", "Расчетный лот", "Колличество ордеров", "Требуемая маржа"
    2. Комбинированный список для выбора типа ордера.
    3. Неактивные поля ввода для числового отображения мин. лота, макс. стоп-лосса, расчетного лота и маржи.
    4. Поля инкремента/декремента для лота, цены открытия, колличества ордеров
    Добавим необходимые элементы в класс CControlsDialog:

    Код:
       CLabel            lType;        //текстовая метка "тип ордера"
       CLabel            lPriceOpen;   //текстовая метка "цена открытия"
       CLabel            lMinLot;      //текстовая метка "минимальный лот"
       CLabel            lMaxSL;       //текстовая метка "макс. стоп-лосс"
       CLabel            lLot;         //текстовая метка "Лот"
       CLabel            lCalcLot;     //текстовая метка "Расчетный лот"
       CLabel            lCountOrders; //текстовая метка "Колличество ордеров"
       CLabel            lMarga;       //текстовая метка "Требуемая маржа"
       CComboBox         cType;        //комбинированный список для выбора типа ордера
       CSpinEdit         sPriceOrder;  //поле инкр./декр. цены открытия
       CEdit             eMinLot;      //поле вывода значения мин. лота
       CEdit             eMaxSL;       //поле вывода значения макс. стоп-лосса
       CSpinEdit         sLot;         //поле инкр./декр. лота
       CEdit             eCalcLot;     //поле вывода расчетного лота
       CSpinEdit         sCountOrders; //поле инкр./декр. колличества ордеров
       CEdit             eMarga;        //поле вывода требуемой маржи

    Вы не можете благодарить!

  2. #12
    Banned
    Регистрация
    29.05.2012
    Сообщений
    638
    Благодарности
    Получено: 145
    Отправлено: 52
    На панели установки стоп-лосса и тейк-профита будут:
    1. Текстовые метки "S/L (в пунктах)", "Т/P (в пунктах)", "Стоп-лосс", "Тейк-профит", "Стоп-лосс", "Возможная прибыль", "Возможный убыток", "Убыток (%)", "Прибыль (%)"
    2. Четыре поля инкремента/декремента для ввода стоп-лосса в пунтах, цены стоп-лосса, тейк-профита в пунктах и цены тейк-профита.
    3. Поля ввода для прибыли, убытка и, соответственно, в %.
    4. Два переключателя чекбокса для выбора устанавливать стоп-лосс, тейк-профита.

    Добавим private переменные в класс диалога:
    Код:
       CLabel            lSLPoint;      //текстовая метка "Стоп-лосс(в пунктах)"
       CLabel            lStopLoss;     //текстовая метка "Стоп-лосс"
       CLabel            lLoss;         //текстовая метка "Возможный убыток"
       CLabel            lLossProcent;  //текстовая метка "Возможный убыток (%)"
       CSpinEdit         sSLPoint;      //спин-поле для ввода стоп-лосса в пунктах
       CSpinEdit         sStopLoss;     //спин-поле для ввода цены стоп-лосса
       CEdit             eLoss;         //поле для показа возможного убытка
       CEdit             eLossProcent;  //поле для показа возможного убытка в (%)
       CCheckBox         chkSL;         //переключатель "Установить стоп-лосс"
       CLabel            lTPPoint;      //текстовая метка "Тейк-профит (в пунктах)"
       CLabel            lTakeProfit;   //текстовая метка "Тейк-профит"
       CLabel            lProfit;       //текстовая метка "Возможная прибыль"
       CLabel            lProfitProcent;//текстовая метка "Возможная прибыль (%)"
       CSpinEdit         sTPPoint;      //спин-поле для ввода тейк-профита в пунктах
       CSpinEdit         sTakeProfit;     //спин-поле для ввода цены тейк-профита
       CEdit             eProfit;       //поле для показа возможной прибыли
       CEdit             eProfitProcent;//поле для показа возможной прибыли в (%)
       CCheckBox         chkTP;         //переключатель "Установить тейк-профит"

    Вы не можете благодарить!

  3. #13
    Banned
    Регистрация
    29.05.2012
    Сообщений
    638
    Благодарности
    Получено: 145
    Отправлено: 52

    Список инструментов

    Заполняем ComboBox список иснтрументами из обзора рынка. При создании элемента управления cInstrument перебираем все иснтрументы, которые есть в обзоре рынка, и добавляем в список методом AddItem.
    Код:
    //--- создаём список
       if(!cInstrument.Create(m_chart_id,"сInstr",m_subwin,x1,y1,x2,y2))              return(false);
    //общее колличество символов в обзоре рынка
       int SmbTotal=SymbolsTotal(true);
    //Цикл по всем символам
       for(int i=0;i<SmbTotal;i++)
         {
          //наименование инструмента
          string NameInst=SymbolName(i,true);
          if(!cInstrument.AddItem(NameInst,i))              return(false);
         }
    //--- создаём комбинорованный спиок с инструментами
       if(!Add(cInstrument))
          return(false);

    Вы не можете благодарить!

  4. #14
    Banned
    Регистрация
    29.05.2012
    Сообщений
    638
    Благодарности
    Получено: 145
    Отправлено: 52

    События

    Что бы окно диалога умело реагировать на на те или иные события, переобъявим функцию OnEvents родительского класса CAppDialog:
    Код:
       virtual bool      OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam);
    Для определения функции OnEvent используются специальный синтаксис макроподстановок
    Код:
    //+------------------------------------------------------------------+
    //| Обработка событий                                                |
    //+------------------------------------------------------------------+
    EVENT_MAP_BEGIN(CControlsDialog)
       ON_EVENT(ON_CHANGE,cInstrument,OnChangeInstrument)
    EVENT_MAP_END(CAppDialog)
    Все используемые директивы #define находятся в файле Стандартной Библиотеки <Controls\Defines.mqh>
    При возникновении события ON_CHANGE от элемента cInstrument вызывается метод OnChangeInstrument, обработка на этом заканчивается (с кодом возврата true)

    Вы не можете благодарить!

  5. #15
    Banned
    Регистрация
    29.05.2012
    Сообщений
    638
    Благодарности
    Получено: 145
    Отправлено: 52

    Валюты расчета

    Для выполнения расчетов нужно указать валюту в которой считать. Как правило это валюта в которой открыт счет. При создании комбобокса cCurency добавим необходимые строки с их названиями в список:

    Код:
       cCurency.AddItem("USD",0);
       ...
    Можно дальше под индексом 1 добавить RUR, под индексом 2 EUR.
    Методом SelectByValue выберем дефолтную валюту по-умолчанию. Ее значение будет отображаться сразу при создании диалога.
    Код:
    cCurency.SelectByValue(0);

    Вы не можете благодарить!

  6. #16
    Banned
    Регистрация
    29.05.2012
    Сообщений
    638
    Благодарности
    Получено: 145
    Отправлено: 52

    Выбор элемента из группы радио-кнопок RadioGroup

    Чтобы при запуске индикатора по-умолчанию было выбрано одно из значений в группах переключателях выбора метода расчета лота (фиксированный или на 100 пунктов) или от чего производить расчет, из справки следует использовать метод Select класса RadioGroup.
    Например, при создании переключателей расчета лота от баланса, средств, вручную сначала добавляются нужные элементы:
    Код:
       if(!rBalance.AddItem("Баланса :",0))                               return(false);
       if(!rBalance.AddItem("Средств :",1))                               return(false);
       if(!rBalance.AddItem("Вручную :",3))                               return(false);
    А затем выбирается по-умолчанию вариант расчета от средств:
    Код:
       //Выбор по-умолчанию
       rBalance.Select(1);
    Интересно то, что в стандарной библиотеке в mt4 метод Select класса RadioGroup размещен со спецификатором protected. Перенес в раздел public, чтобы получить доступ из вне класса.

    Вы не можете благодарить!

  7. #17
    Местный
    Регистрация
    19.12.2013
    Сообщений
    8
    Благодарности
    Получено: 1
    Отправлено: 3
    тема отличная, жаль что не описано все полностью!

    Вы не можете благодарить!

Страница 2 из 2 ПерваяПервая 1 2

Похожие темы

  1. Методы управления капиталом
    от dimmi2012 в разделе Разговоры о трейдинге
    Ответов: 1025
    Последнее сообщение: 13.09.2016, 15:59
  2. Ответов: 222
    Последнее сообщение: 18.02.2016, 10:39
  3. Индикаторные советники форекс. Обсуждаем и делимся мнением.
    от Azizkin в разделе Софт для автоматизации торговли
    Ответов: 15
    Последнее сообщение: 03.02.2015, 16:40
  4. Панели для ручной торговли и советники
    от ilfatnew в разделе Конкурс "CopyFX: Трейдеры"
    Ответов: 0
    Последнее сообщение: 17.11.2012, 07:30

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •