Botones y campos de texto en el gráfico de mt4 posible ahora - página 6

 

Hola,

¿Alguien aquí puede proporcionarme los archivos para esto, por favor? Me encantaría poder utilizar este tipo de funcionalidad, he ido a través de fx1.net y no puedo encontrar nada en absoluto. He intentado buscar en Google pero no he tenido suerte en encontrar descargas de todos los archivos.

Si alguien tiene la amabilidad de proporcionar copias, se lo agradecería mucho. Mi correo electrónico es paul@lukafour3.com o simplemente póngame en contacto con nosotros.

Saludos cordiales

Paul

 
fridaystreet:

Hola,

¿Alguien aquí puede proporcionarme los archivos para esto, por favor? Me encantaría poder utilizar este tipo de funcionalidad, he ido a través de fx1.net y no puedo encontrar nada en absoluto. He intentado buscar en Google pero no he tenido suerte en encontrar descargas de todos los archivos.

Si alguien tiene la amabilidad de proporcionar copias, se lo agradecería mucho. Mi correo electrónico es paul@lukafour3.com o simplemente póngame en contacto con nosotros.

Saludos cordiales

Paul


En realidad, no entiendo su problema.

Conseguí mis copias visitando primero fx1.net que me llevó a este sitio:

https://www.mql5.com/go?link=http://taurus-traders.com/index.php/de/services/forex-download/viewdownload/6-plugins/246-mt4gui-toolbox-addon-for-metatrader

Conseguí los dll's desde allí. El botón "Download" está al final de la página, después del texto.

Está todo explicado como usar las funciones para crear botones.

Sólo recuerda los inconvenientes y primero prueba a fondo tu programa en demos, para evitar sorpresas desagradables

si vas a utilizar estos botones en una cuenta real.

Además, lee este hilo desde el principio hasta el final.

Y: ¿Has buscado en Google "mt4gui.dll"? ¡¡¡Prueba, te sorprenderá lo fácil que es !!!

 

Hola,

Escribí un simple EA basado en MT4GUI, pero lamentablemente MT4 se bloquea, cuando trato de cambiar el marco de tiempo (por ejemplo, de M1 a M5). ¿Alguien más ha experimentado esto o tiene una idea de cómo solucionarlo?

He intentado muchas maneras, pero hasta ahora no pude encontrar una solución. Incluso el EA más sencillo con botones se bloquea cuando se cambian los marcos temporales. He experimentado el problema en las versiones 432 y 438.

Gracias

 
darksamu:

Hola,

Escribí un simple EA basado en MT4GUI, pero lamentablemente MT4 se bloquea, cuando trato de cambiar el marco de tiempo (por ejemplo, de M1 a M5). ¿Alguien más ha experimentado esto o tiene una idea de cómo solucionarlo?

He intentado muchas maneras, pero hasta ahora no pude encontrar una solución. Incluso el EA más sencillo con botones se bloquea cuando se cambian los marcos temporales. He experimentado el problema en las versiones 432 y 438.

Gracias

Sí, lo hace. Escribí sobre esto antes.

No hay nada que pueda hacer al respecto, es un problema de la DLL.

Sólo tienes que trabajar alrededor de la apertura de muchos gráficos, cada uno con diferentes TF.

O, también lo hago así:

Hay otra situación, cuando los dll's bloquean MT4, cuando quieres modificar los externos haciendo clic en la cara sonriente.

Por eso hice el botón Defaults, que quita el EA y lo abre de nuevo, apareciendo la ventana de iniciación del EA.

 

Hola Dadas,

¿puedes insertar parte de tu código, por favor? No sé crear el menú sobre "Seleccionar el tamaño del lote". Gracias.

 
endy5:

Hola Dadas,

¿puedes insertar parte de tu código, por favor? No sé crear el menú sobre "Seleccionar el tamaño del lote". Gracias.


int    hwnd = WindowHandle(Symbol(),Period());

string MinimumLot = DoubleToStr(MarketInfo(Symbol(),MODE_MINLOT),2);

int SelectLotSizeBox = tbPutObject(hwnd,"list",-130,213,60,9,"");
    tbAddListItem(hwnd,SelectLotSizeBox,MinimumLot);
    if(MinimumLot=="0.01"){
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.02");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.03");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.04");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.05");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.06");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.07");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.08");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.09");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.10");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.20");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.30");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.40");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.60");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.70");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.80");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.90");
    tbAddListItem(hwnd,SelectLotSizeBox ,"1.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"2.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"3.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"4.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"5.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"6.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"7.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"8.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"9.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"10.00");}
    if(MinimumLot=="0.10"){  
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.20");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.30");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.40");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.60");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.70");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.80");
    tbAddListItem(hwnd,SelectLotSizeBox ,"0.90");
    tbAddListItem(hwnd,SelectLotSizeBox ,"1.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"2.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"3.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"4.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"5.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"6.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"7.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"8.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"9.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"10.00");}
    if(MinimumLot=="1.00"){    
    tbAddListItem(hwnd,SelectLotSizeBox ,"2.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"3.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"4.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"5.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"6.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"7.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"8.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"9.00");
    tbAddListItem(hwnd,SelectLotSizeBox ,"10.00");    
    }
    tbSetListSel(hwnd,SelectLotSizeBox ,0);
Así es como lo hago.
 
Buenas tardes.
Lo siento por mi inglés, soy francés.
No entiendo muy bien cómo las listas.
¿podría decirme cómo recupera sus valores?

ejemplo .

    tbAddListItem(hwnd,SelectLotSizeBox ,"2.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"3.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"4.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"5.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"6.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"7.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"8.50");
    tbAddListItem(hwnd,SelectLotSizeBox ,"9.50"); 

tbAddListItem(hwnd,SelectLotSizeBox ,"10.00");

cordialmente
 

Hola Dadas

¡¡¡muchas gracias por insertar tu código pasado!!! Lo tengo mi código :-)

Pero tengo una pregunta - como obtengo el valor (tamaño del lote) del menú de selección (objeto SelectLotSizeBox).

Encontré la función: stringtbGetListSel(int hwnd, int object);

Código: stringsize=tbGetListSel(hwnd, SelectLotSizeBox);

para seleccionar el tamaño del lote 0.01 el valor es cero,

para el tamaño de lote 0.02 valor 1, etc. Este es el número de serie del elemento de selección. ¿Puedo obtener directamente el valor de lotes (0.01; 0.02; etc.)?

Gracias por ayudarme.

 
phenix77:
Buenas tardes.
Lo siento por mi inglés, soy francés.
No entiendo muy bien cómo las listas.
¿podría decirme cómo recupera sus valores?

ejemplo .

tbAddListItem(hwnd,SelectLotSizeBox ,"10.00");

¿Estás familiarizado con esto?

  string tbVersion();         
  int tbPutObject(int,string,int,int,int,int,string); // hwnd,type,x,y,w,h,label     
  int tbSetBgColor(int,int,int); // hwnd,object,bgcolor  
  int tbSetTextColor(int,int,int); // hwnd,object,color  
  int tbRemove(int,int);
  int tbRemoveAll(int); // hwnd 
  int tbEnable(int,int,int); // hwnd, object, 0|1   
  bool tbIsClicked( int,int ); // hwnd,object  
  int tbSetText(int,int,string,int,string); // hwnd,object,text,fontsize,fontname     
  string tbGetText(int,int); // hwnd,object 
  int tbAddListItem(int,int,string); // hwnd,object,item  
  int tbGetListSel(int,int); // hwnd,object  
  int tbSetListSel(int,int,int); // hwnd,object,index 
Esto le dará el valor :
Lot=StrToDouble(tbGetText(hwnd,SelectLotSizeBox));

El texto de la caja de selección es texto, por lo tanto cadena - ¿correcto?

Y usted debe hacer esta cadena a doble - ¿verdad?

 
endy5:

Hola Dadas,

He encontrado la función: stringtbGetListSel(int hwnd, int object);

Código: stringsize=tbGetListSel(hwnd, SelectLotSizeBox);

para seleccionar el tamaño del lote 0.01 el valor es cero,

para el tamaño de lote 0.02 valor 1, etc. Este es el número de serie del elemento de selección. ¿Puedo obtener directamente el valor del tamaño del lote (0.01; 0.02; etc.)?

Gracias por ayudarme.

// It is:
string tbGetText(int,int); // hwnd,object 
// This one is int (integer):
int tbGetListSel(int,int); // hwnd,object  
// You are looking for:
double size = StrToDouble(tbGetText(hwnd,SelectLotSizeBox));