Scripts: Transparent MetaTrader 5 - página 2

 

Cambios de versión:

Versión 1.20: Al reincorporarse al gráfico, el terminal vuelve a ser opaco.

En este momento la versión 1.2 se envía a moderación.

 
Hola! Ayúdame a encontrar un script para establecer stoploss para mt5. Yo comercio rts.
 

Cambios en:

Versión 1.20: Al volver a acceder al horario, el terminal se vuelve opaco.

 

Версия 1.10: Поддержка Windows XP 32-bit.

lo has estropeado todo

te has visto obligado a hacer dos variantes de llamada a funciones DLL para 32 y 64 handles/pointers

ejemplo

 

barabashkakvn:

Versión 1.10: Compatible con Windows XP de 32 bits.

sergeev:

lo has estropeado todo

tenias que hacer dos variantes de llamada a funciones DLL para 32 y 64 handles/pointers

ejemplo

¡Gracias por el ejemplo! No puedo prometer arreglarlo enseguida, porque necesito resolver la cuestión: qué funciones contiene la librería user32.dll en sistemas operativos desde Windows XP hasta Windows 8.1, y necesito tener en cuenta el bitness del sistema.
 
Tengo la sospecha de que en MT5 build 900 o 910 el mecanismo de llamada a DLL está roto. Aplicación en la mesa de servicio #976227. Los cuelgues pueden estar relacionados con esto. Señores desarrolladores, por favor miren allí....
 
Muy interesante).
 
micle:
Tengo la sospecha de que en MT5 build 900 o 910 el mecanismo de llamada a DLL está roto. Aplicación en la mesa de servicio #976227. Los cuelgues pueden estar relacionados con esto. Señores desarrolladores, por favor miren allí...
Mi problema fue resuelto por otra declaración de función... Vivir y aprender )
 
barabashkakvn:

Cambios en:

Versión 1.20: Al volver a acceder a la programación, el terminal se vuelve opaco.

En inglés codebase, versión disponible sigue siendo 1.10.
 

Versión 1.20

//+------------------------------------------------------------------+
//|transparencia.mq5
//|Copyright © 2014, Vladimir Karputov ||
//|http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2014, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.20"
#import "user32.dll"
//+------------------------------------------------------------------+
//| GetAncestor. Recupera el handle del ancestro del |
//| ventana especificada. Извлекает дескриптор предка заданного окна | |
//+------------------------------------------------------------------+
int GetAncestor(int hwnd,int gaFlags);
//+------------------------------------------------------------------+
//| GetWindowLongW. Recupera información sobre la ventana especificada.
//| ventana. Получает информацию об указанном окне ||
//+------------------------------------------------------------------+
int GetWindowLongW(
                   int hWnd,
                   int nIndex          // GWL_EXSTYLE
                   );
//+------------------------------------------------------------------+
//| SetWindowLongW. Изменяет атрибут заданного окна ||
//+------------------------------------------------------------------+
int SetWindowLongW(
                   int hWnd,
                   char nIndex,        // GWL_EXSTYLE
                   int dwNewLong       // WS_EX_LAYERED
                   );
//+------------------------------------------------------------------+
//| SetLayeredWindowAttributes. Establece la opacidad y la transparencia.
//| clave de color de una ventana de capas. Устанавливает светопроницаемость ||.
//| и прозрачность окраски многослойного окна |
//+------------------------------------------------------------------+
bool SetLayeredWindowAttributes(
                                int hwnd,// Un asa a la ventana de capas
                                int crKey,   // 0
                                int bAlpha,  // степень непрозрачности 0-255
                                int dwFlags  // 0x00000002
                                );
#import
#define   GA_ROOT           0x0002      // Recupera la ventana raíz recorriendo la cadena de ventanas padre.
#define   GWL_EXSTYLE       -20               // Establece un nuevo estilo de ventana extendida
#define   WS_EX_LAYERED     0x00080000        // Estilo. La ventana es una ventana con capas. 
#define   LWA_ALPHA         0x00000002        // Usa bAlpha para determinar la opacidad de la ventana de capas.
//+------------------------------------------------------------------+
//| Función de inicio del programa de script|
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   long  mainChartID=ChartID();         // возвращает идентификатор текущего графика
   int   hdlmainChartID=ChartWindowsHandle(mainChartID);
   int   hdlRoot=GetAncestor(hdlmainChartID,GA_ROOT);
   int   SetWindowLongW_func;
   if(GetWindowLongW(hdlRoot,GWL_EXSTYLE)&WS_EX_LAYERED)
     {
      // У окна уже есть стиль WS_EX_LAYERED. WS_EX_LAYERED из этого окна стилей.
      // La ventana ya tiene un estilo WS_EX_LAYERED. Elimina WS_EX_LAYERED de los estilos de esta ventana.
      SetWindowLongW_func=SetWindowLongW(hdlRoot,GWL_EXSTYLE,
                                         GetWindowLongW(hdlRoot,GWL_EXSTYLE)&~WS_EX_LAYERED);
      return;
     }
// Устанавливаем WS_EX_LAYERED на ROOT окно
   SetWindowLongW_func=SetWindowLongW(hdlRoot,GWL_EXSTYLE,
                                      GetWindowLongW(hdlRoot,GWL_EXSTYLE)|WS_EX_LAYERED);
   SetLayeredWindowAttributes(hdlRoot,0,(255*70)/100,LWA_ALPHA);
   return;
  }
//+------------------------------------------------------------------+
//| La función obtiene los gráficos de mango|
//| Функция получает хэндл графика|
//+------------------------------------------------------------------+
int ChartWindowsHandle(long chart_ID)
  {
//--- prepara la variable para obtener el valor de la propiedad
//--- подготовим переменную для получения значения свойства
   long result=-1;
//--- restablecer el valor de error
//--- сбросим значение ошибки
   ResetLastError();
//--- recibir el valor de la propiedad
//--- получим значение свойства
   if(!ChartGetInteger(chart_ID,CHART_WINDOW_HANDLE,0,result))
     {
      //--- mostrar el mensaje de error en el diario Experts
      //--- выведем сообщение об ошибке в журнал "Эксперты"
      Print(__FUNCTION__+", Error Code = ",GetLastError());
     }
//--- devuelve el valor de la propiedad del gráfico
//--- вернем значение свойства графика
   return((int)result);
  }
//+------------------------------------------------------------------+