Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Храни исходные коды в MQL5 Storage. Это безопасно!
MetaQuotes Software Corp.
Модератор
180326
MetaQuotes Software Corp. 2010.12.16 16:15 

eInTradePanel:

Торговая панель eInTradePanel. Альтернатива стандартному окну открытия ордера. Минимально возможного размера с несколько расширенным функционалом и некоторым количеством других дополнительных функций.

Автор: Дмитрий

Торговая панель eInTradePanel

Элементы панели управления:

  1. Кнопка отображения/скрытия торговой панели.
  2. Кнопка включения звуковой сигнализации при срабатывании стоплосс/тейкпрофит и отложенных ордеров.
  3. Кнопка включения отправки e-mail при тех же событиях, что и в п. 2.
  4. Кнопки выбора типа ордера: "b" - рыночный buy, "s" - рыночный sell, "bs" - отложенный buystop, "ss" - отложенный sellstop, "bl" - отложенный buylimit, "sl" - отложенный selllimit, "bsl" - отложенный buystoplimit, "ssl" - отложенный sellstoplimit.
  5. Кнопки открытия ордера.
  6. Поле ввода объема ордера.
  7. Поле ввода/отображения значения стоплосс в пунктах.
  8. Поле ввода/отображения значения тейкпрофит в пунктах.

Панель может использоваться в двух режимах: режим 1 (рис. 1) - открытие рыночной позиции со стоплосс/тейкпрофит указанными в пунктах. Режим 2 (рис. 2) - открытие/установка любого типа ордера со стоплосс/тейкпрофит и уровнями открытия определяемыми положением горизонтальных линий. Если все кнопки выбора типа ордера отжаты, панель работает в режиме 1.

При нажатии на любую из кнопок выбора типа ордера вместо кнопок "Sell" и "Buy" появляется одна кнопка соответствующая типу выбранного ордера и на графике появляются линии для определения уровней этого ордера, линии можно перемещать мышкой:


Торговая панель в режиме 2 (выбран ордер buystoplimit)

Dmitry Fedoseev
42642
Dmitry Fedoseev 2011.01.10 16:37  
Была ошибка с установкой времени истечения. Исправлена.
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
VladMih
144
VladMih 2011.05.29 13:31  

Integer:
 Торговая панель eInTradePanel. Альтернатива стандартному окну открытия ордера. 

Супер! Огромное спасибо! 

Идея, реализация, функционал - всё по 5 баллов! Даже не нашел к чему придраться. :) Хорошо бы, если б разработчики сделали эту альтернативу штатной, встроенной. 

Integer, есть ли идеи по развитию? Принимаются ли пожелания?

Viktor Nesterov
181
Viktor Nesterov 2011.05.30 08:36  
Отлично!!! Спасибо!!!!
Dmitry Fedoseev
42642
Dmitry Fedoseev 2011.05.30 21:03  
VladMih:

Супер! Огромное спасибо! 

Идея, реализация, функционал - всё по 5 баллов! Даже не нашел к чему придраться. :) Хорошо бы, если б разработчики сделали эту альтернативу штатной, встроенной. 

Integer, есть ли идеи по развитию? Принимаются ли пожелания?

Принимаются пожелания, давайте. 

 

 

Vladimir Gomonov
8273
Vladimir Gomonov 2011.06.02 23:18  

Gold-версия для увеличенных шрифтов экрана.

Пользуюсь увеличенными на 25% шрифтами (установлено в системе), в этом режиме многие программы норовят "залезть на поля".  Хорошо что некоторые с исходниками.. :)

Заодно перекрасил на свой вкус.  О, кстати, пожелание - вынести настройку цветов в ini-файл, щёб легче подкручивать при смене настроения.. ;)

Ну это так, мелочи, можно всёрьёз не воспринимать. 

А вот серьёзное пожелание - создавать панель сразу во всех чартах (запуская советник конечно же на одном). Учитывая, что панель сделана в виде класса - это не шибко сложно.  (Простенький пример здесь)

Чарты надо экономить. Запуская советник на чарте, мы лишаем чарт возможности запускать на нём какой-либо другой советник. :(

Вопчем - пусть наши эксперты будут взаимно вежливы.

Файлы:
Dmitry Fedoseev
42642
Dmitry Fedoseev 2011.06.15 02:09  
MetaDriver:

А вот серьёзное пожелание - создавать панель сразу во всех чартах (запуская советник конечно же на одном). Учитывая, что панель сделана в виде класса - это не шибко сложно.  (Простенький пример здесь)

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

В терминале достаточно одного чарта с панелью, у чарта можно переключать символ. 

 

 

o_O
Модератор
23615
o_O 2011.06.15 10:18  
Integer:

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

к вопросу быстрого таймера и "мягкой" зацикленности

//------------------------------------------------------------------    OnInit
int OnInit()
{
  EventChartCustom(ChartID(), 1, 0, 0, "user_start"); // проинициализировали цикл
}
//------------------------------------------------------------------    OnChartEvent
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{       
  /* обработка события*/
        
  Sleep(10); // небольшая пауза для разгрузки
        
  EventChartCustom(ChartID(), 1, 0, 0, ""); // зациклили события
}
Vladimir Gomonov
8273
Vladimir Gomonov 2011.06.15 20:13  
Integer:

1.  Кажется не получится. Нужно события обрабытывать. В примере по таймеру все графики проверяются на нажатость кнопки, а таймер работает с интервалом в секунду, т.е. долго, будет неудобно. Можно конечно просматривать другие графики из основного зацикленного советника, но только не хочется заниматься левым изобретательством, а использовать вещи по их назначению.

--

2.   В терминале достаточно одного чарта с панелью, у чарта можно переключать символ. 

1.  При внесении небольших изменений:

.......
#property indicator_chart_window
.......
........

//void OnTick()
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 &TickVolume[],
                const long &Volume[],const int &Spread[])
{
   TradePanel.Tick();
   return 0;
}

советник превращается в нормально (с двумя некритичными варнингами) компилируемый индикатор.

У него всё работает, на здоровье практически не жалуется. Единственная дисфункция - не открывает ордера, ибо по штату не положено... :)

Это решаемо. Схема примерно такая:

советник открывает на всех (или только минутных) чартах индикаторы, которые вполне автономны, только при необходимости открыть/изменить позицию переадресуют

событие основному советнику, что он за них и делает.

Тонкости:

1) советник открывая каждый индикатор, передаёт ему как параметр ID своего чарта, для того, чтоб индикатор мог генерить событие адресуя конкретному чарту.

2) Генеря событие адресованное советнику, индикатор должен не забыть передать в качестве строкового параметра символ по которому нужно корректировать позу или выставлять/корректировать ордер.

3) Желательно, чтоб советник сканировал раз в одну/несколько секунд чарты, проверяя нету ли новых минутных чартов, ну и запускал при необходимости новые индикаторы,

прибивая лишние.

Собсно всё.  Делов на час-полтора, а то и меньше.

ps. Ах да, упустил (4) глобальные переменные. Их можно размножить без особых проблем - к имени переменной добавляется ID чарта в качестве префикса.

--

2.   Вот уж это воистину долго.

MrRoss
21
MrRoss 2011.08.14 12:21  
СУУПЕЕР!!!!!!Офигенно!!!! ни чего лишнего  ,всё просто,всё интуитивно понятно,без лишних наворотов!!! +5 баллов за продукт!!! Искал просто управление позицией и ордером с помощью линий,а нашёл такое чудо!!! Молодца!!!!
Sibiriak62
12
Sibiriak62 2012.02.13 04:47  

Установил

выдаёт 5 ошибок и 2 предупреждение

Как исправить?


Файлы:
iud1kh57g0.jpg 107 kb
/ /123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий