Мой подход. Ядро - Движок. - страница 75

 

Unicornis:.

...

Окно на 10 чекбоксов и табличку на 12 строк|5 столбцов, первый столбец и первая строка текстовое значение ячеек, остальные ячейки double(например заполнение OHLC последних 10 сформированных баров  построчно). 


Управляющий код в советнике:

void OnTick()
  {
   E_Last_10_bars_Current_symbol(Symbol());
   E_Last_10_bars_Current_timeframe(Period());
   E_Last_10_bars_Last_price(Ask);
   //------------------------------------------------------------------
   E_Last_10_bars_1_Open_price(Open[1]);  E_Last_10_bars_1_Close_price(Close[1]);
   E_Last_10_bars_2_Open_price(Open[2]);  E_Last_10_bars_2_Close_price(Close[2]);
   E_Last_10_bars_3_Open_price(Open[3]);  E_Last_10_bars_3_Close_price(Close[3]);
   E_Last_10_bars_4_Open_price(Open[4]);  E_Last_10_bars_4_Close_price(Close[4]);
   E_Last_10_bars_5_Open_price(Open[5]);  E_Last_10_bars_5_Close_price(Close[5]);
   E_Last_10_bars_6_Open_price(Open[6]);  E_Last_10_bars_6_Close_price(Close[6]);
   E_Last_10_bars_7_Open_price(Open[7]);  E_Last_10_bars_7_Close_price(Close[7]);
   E_Last_10_bars_8_Open_price(Open[8]);  E_Last_10_bars_8_Close_price(Close[8]);
   E_Last_10_bars_9_Open_price(Open[9]);  E_Last_10_bars_9_Close_price(Close[9]);
   E_Last_10_bars_10_Open_price(Open[10]);E_Last_10_bars_10_Close_price(Close[10]);
   //------------------------------------------------------------------
   E_Last_10_bars_1_High_price(High[1]);  E_Last_10_bars_1_Low_price(Low[1]);
   E_Last_10_bars_2_High_price(High[2]);  E_Last_10_bars_2_Low_price(Low[2]);
   E_Last_10_bars_3_High_price(High[3]);  E_Last_10_bars_3_Low_price(Low[3]);
   E_Last_10_bars_4_High_price(High[4]);  E_Last_10_bars_4_Low_price(Low[4]);
   E_Last_10_bars_5_High_price(High[5]);  E_Last_10_bars_5_Low_price(Low[5]);
   E_Last_10_bars_6_High_price(High[6]);  E_Last_10_bars_6_Low_price(Low[6]);
   E_Last_10_bars_7_High_price(High[7]);  E_Last_10_bars_7_Low_price(Low[7]);
   E_Last_10_bars_8_High_price(High[8]);  E_Last_10_bars_8_Low_price(Low[8]);
   E_Last_10_bars_9_High_price(High[9]);  E_Last_10_bars_9_Low_price(Low[9]);
   E_Last_10_bars_10_High_price(High[10]);E_Last_10_bars_10_Low_price(Low[10]);
   //------------------------------------------------------------------   
   
  }

Код окна на языке разметки:

//-------------------------------------------------------------------------------------------------------------------- 
NEW_WINDOW,  W_NAME, "Last 10 bars",    W_TYPE, SETTINGS,   OOI,  W_ICON,1,
//====================================================================================================================
GROUP,A,

__, BOARD, "Symbol:",  EDIT, "Current symbol",  BOARD, "Timeframe:", EDIT, "Current timeframe", W,40, BOARD, "Price:", EDIT, "Last price", 

__, H_LINE,"HL1", W,410,

END_GROUP,
//------------------------------------
i, AT, _X2X, "MF", 10, _Y2Y,"MF", 10,
//-----------
i, X_GAP,10,

i,BOARDS, H,20, END,
//-----------
"Current timeframe",READ_ONLY,  
"Last price",       READ_ONLY, 
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
//Объявляем таблицу:
//----------------------------------------------------------------------------------
GROUP,A, IS_TABLE,  


__,     T_HEADER, "Bar",     C_HEADER, "Open price", C_HEADER, "Close price",  C_HEADER, "High price", C_HEADER, "Low price",     

__,     R_HEADER, "1",  CELL, A,  CELL, A,   CELL, A,  CELL, A,         
__,     R_HEADER, "2",  CELL, A,  CELL, A,   CELL, A,  CELL, A,   
__,     R_HEADER, "3",  CELL, A,  CELL, A,   CELL, A,  CELL, A,     
__,     R_HEADER, "4",  CELL, A,  CELL, A,   CELL, A,  CELL, A,   
__,     R_HEADER, "5",  CELL, A,  CELL, A,   CELL, A,  CELL, A,         
__,     R_HEADER, "6",  CELL, A,  CELL, A,   CELL, A,  CELL, A,   
__,     R_HEADER, "7",  CELL, A,  CELL, A,   CELL, A,  CELL, A,     
__,     R_HEADER, "8",  CELL, A,  CELL, A,   CELL, A,  CELL, A,  
__,     R_HEADER, "9",  CELL, A,  CELL, A,   CELL, A,  CELL, A,         
__,     R_HEADER, "10", CELL, A,  CELL, A,   CELL, A,  CELL, A,   
 
END_GROUP,
//------------------------------------
i, AT, _X2X, "MF", 10, _Y2H,"HL1", 10,
//-----------
i, Y_GAP,-1,
i, X_GAP,-1,
//-----------
i,IS_ZEBRA_STYLE,
//----------------------------------------------------------------------------------
"Bar", W,30,
"Bar", H,30,
"Bar",N_COLOR,(int)C'235,235,0',
//----------------------------------
i,C_HEADERS,H,30,N_COLOR,(int)C'235,0,235', END,
i,R_HEADERS,H,30, N_COLOR,(int)C'0,235,0', END,
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
GROUP,A,
 
__, V_LINE,"VL1", H,320,

END_GROUP,
//----------------------------------
i,AT,_X2W,"Low price", 10,  _Y2H,"HL1",10,
//----------------------------------
//----------------------------------------------------------------------------------
GROUP,A, 

__, CHECKBOX, "Checkbox 1",  
__, CHECKBOX, "Checkbox 2", 
__, CHECKBOX, "Checkbox 3",  
__, CHECKBOX, "Checkbox 4", 
__, CHECKBOX, "Checkbox 5",  
__, CHECKBOX, "Checkbox 6",  
__, CHECKBOX, "Checkbox 7", 
__, CHECKBOX, "Checkbox 8",  
__, CHECKBOX, "Checkbox 9",
__, CHECKBOX, "Checkbox 10",

END_GROUP,
//----------------------------------
i,AT,_X2W,"VL1",10,  _Y2H,"HL1",10,
//----------------------------------
i,Y_GAP,20,
i,X_GAP,20,
//----------------------------------

//====================================================================================================================
END_WINDOW,

Первый файл - советник.

Второй файл - установить в папку инклюд (ни менять, ни открывать не требуется).

Третий файл - установить в папку инклюд и заполнить.

Четвертый файл - движок. Закинуть на график вместе с советников.

Файлы:
 

Таблица работает. Ее уже сейчас можно использовать.

В  файле External Connection.mqh  нужно прописать что делать на событиях нажатия/отжатия чекбоксов.

Все.

 
Реter Konow:


Управляющий код в советнике:

Код окна на языке разметки:

Первый файл - советник.

Второй файл - установить в папку инклюд (ни менять, ни открывать не требуется).

Третий файл - установить в папку инклюд и заполнить.

Четвертый файл - движок. Закинуть на график вместе с советников.

Благодарю! Буду пробовать прикрутить.

 
Unicornis:

Благодарю! Буду пробовать прикрутить.

Ок. Если нужно переименовать чекбоксы, напишите их имена. За 5 минут будет готово.

 
Реter Konow:


Управляющий код в советнике:

Код окна на языке разметки:

Первый файл - советник.

Второй файл - установить в папку инклюд (ни менять, ни открывать не требуется).

Третий файл - установить в папку инклюд и заполнить.

Четвертый файл - движок. Закинуть на график вместе с советников.

Во-первых, не в "папку инклюд" а в папку Include\DRIVE\

Во-вторых, файлы нужно переименовать из 'Connection_Properties.mqh' и 'External_Connection.mqh' в 'External Connection.mqh' и 'Connection Properties.mqh' (вместо занка подчеркивания поставить пробел)

В-третьих:

Третий файл - установить в папку инклюд и заполнить.

Что заполнить? Где заполнить? Чем заполнить?

В-четвертых, после компиляции и запуска эксперта, панель не появляется:


В-пятых. Если догадаться засунуть вот этот кусок кода в конец файла Extrenal Connection.mqh:

//----------------------------------------------------------------------------------------------------------------

//-------------------------------------------------------------------------------------------------------------------- 
NEW_WINDOW,  W_NAME, "Last 10 bars",    W_TYPE, SETTINGS,   OOI,  W_ICON,1,
//====================================================================================================================
GROUP,A,

__, BOARD, "Symbol:",  EDIT, "Current symbol",  BOARD, "Timeframe:", EDIT, "Current timeframe", W,40, BOARD, "Price:", EDIT, "Last price", 

__, H_LINE,"HL1", W,410,

END_GROUP,
...

Будет ошибка 

'NEW_WINDOW' - declaration without type External Connection.mqh 265     1

т.е. этот макрос не определен. 

Петр, пожалей время и чувства твоих будущих пользователей. Ты выкладываешь код, который не работает без дополнительных манипуляций. Если ты без уважения относишься к своему коду, то хотя бы уважай время других участников!

 
Vasiliy Sokolov:

Во-первых, не в "папку инклюд" а в папку Include\DRIVE\

Во-вторых, файлы нужно переименовать из 'Connection_Properties.mqh' и 'External_Connection.mqh' в 'External Connection.mqh' и 'Connection Properties.mqh' (вместо занка подчеркивания поставить пробел)

В-третьих:

Что заполнить? Где заполнить? Чем заполнить?

В-четвертых, после компиляции и запуска эксперта, панель не появляется:


В-пятых. Если догадаться засунуть вот этот кусок кода в конец файла Extrenal Connection.mqh:

Будет ошибка 

т.е. этот макрос не определен. 

Петр, пожалей время и чувства твоих будущих пользователей. Ты выкладываешь код, который не работает без дополнительных манипуляций. Если ты без уважения относишься к своему коду, то хотя бы уважай время других участников!

Василий, зачем чепуху писать?

Это просто троллинг?

В названии файлов и так пробел.

Заполнять - означает прописать вызовы своих функций на событии чекбоксов.

Нужно закинуть советник на график, а потом движок.

Файлы сохранять именно в папке инклюд.

Ничего никуда засовывать не нужно. Это отсебятина.

 
Народ, пишите по делу - замучился флуд ваш удалять. Желающих возродить курилку - можно отправить на помывку - там и накуритесь.
 
Vasiliy Sokolov:


Приведенный код окна на языке разметки - просто пример его составления. Его не нужно никуда засовывать. Он уже внутри движка.

Заполнение:

Открываем файл Extrenal Connection.mqh и устанавливаем вызовы своих функций на событиях элементов управления.

 
Реter Konow:

Файлы сохранять именно в папке инклюд.

Петр, я сейчас не хорошими словами на тебя начну ругаться. Вот код который ты выложил:

//+------------------------------------------------------------------+
//|                                                 TestApp v1.0.mq4 |
//|                                                      Peter Konow |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Peter Konow"
//+------------------------------------------------------------------+
#include<DRIVE\Connection Properties.mqh>
#include<DRIVE\External Connection.mqh> 
//---------------------------------------
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   //------------------------------------  
   EventSetMillisecondTimer(225);
   //------------------------------------
   EventChartCustom(0,INIT_GUI,0,0,NULL);  
   //------------------------------------ 
   return(INIT_SUCCEEDED);
  } 
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   EventChartCustom(0,DEST_GUI,0,0,""); 
//--- destroy timer
   EventKillTimer();
     
  }

Посмотри что желтеньким подсвечено. Ок?

Реter Konow:

В названии файлов и так пробел.

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

В любом случае, после компиляции панель у меня не отображается. Совсем. Вот так окно выглядит:

p.s. Это не троллинг.

 
Vasiliy Sokolov:

Петр, я сейчас не хорошими словами на тебя начну ругаться. Вот код который ты выложил:

Посмотри что желтеньким подсвечено. Ок?

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

В любом случае, после компиляции панель у меня не отображается. Совсем. Вот так окно выглядит:

p.s. Это не троллинг.

У меня в названии файлов пробел. Почему они скачиваются со значком "_", я не знаю.

1. Файлы 'External Connection.mqh' и 'Connection Properties.mqh' должны быть в папке инклюд.

2. Файл советника в папке Экспертов. Его нужно открыть, скомпилировать, и сохранить.

3. Движок сохранить в папке индикаторов.

4. Закинуть движок и советник на график. Все.

Прошу прощения:

#include<DRIVE\Connection Properties.mqh>
#include<DRIVE\External Connection.mqh> 

Действительно. В советнике я забыл убрать подключение через папку DRIVE

Это нужно исправить.