Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 536

 
nekadabra:
¿Pueden decirme si Win 8 es compatible con MT 4 y MT 5? Lo pregunto porque tengo un mac y me estoy preguntando con qué sistema operativo comprar un PC. Un tipo incluso me mostró una captura de pantalla de MT 4 corriendo en 8. Pero como algunos compañeros afirman que no hay compatibilidad total, tengo que aclarar... Gracias.

Win 8 es compatible con MT 4 y 5.
 

¡Buenas tardes!

Hay un problema con el software del indicador, el autor afirma que el indicador funciona, pero de hecho el gráfico no se muestra - ¿cuál es el problema?

#property copyright "Copyright © 2006, Profitrader."
#property link      "profitrader@inbox.ru"
//----
#property indicator_separate_window
#property indicator_buffers 1
#property  indicator_color1 Red
//---- input parameters
extern int FastMAPeriod = 3;
extern int SlowMAPeriod = 15;
extern string SecondMarket = "GOLD";
extern bool MarketsDirectCorrelation = true;
//---- buffers
double [];
double Spread[];
double FastEMA[];
double SlowEMA[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string Correlation = "Invert Correlation";
   if(MarketsDirectCorrelation == TRUE) 
       Correlation = "Direct Correlation";
   IndicatorShortName("Will-Spread(" + FastMAPeriod + "," + SlowMAPeriod + 
                      "," + SecondMarket + "," + Correlation + ")");
   IndicatorDigits(Digits + 2);
   IndicatorBuffers(4);
   SetIndexBuffer(0, WillSpread);
   SetIndexBuffer(1, Spread);
   SetIndexBuffer(2, FastEMA);
   SetIndexBuffer(3, SlowEMA);
   SetIndexStyle(0, DRAW_LINE);
   SetIndexLabel(0, "W-S");
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int i, counted_bars = IndicatorCounted();
//---- check for possible errors
   if(counted_bars < 0) 
       return(-1);
//---- last counted bar will be recounted
   if(counted_bars > 0) 
       counted_bars--; 
   int limit = Bars - counted_bars;
   if(MarketsDirectCorrelation == TRUE)
     {
       for(i = 0; i < limit; i++)
           Spread[i] = iClose(SecondMarket, 0, i) / Close[i]*100;
     }
   else
     {
       for(i = 0; i < limit; i++)
           Spread[i] = Close[i] / iClose(SecondMarket, 0, i)*100;
     }
   for(i = limit - 1; i >= 0; i--)
     {
       FastEMA[i] = iMAOnArray(Spread, 0, FastMAPeriod, 0, MODE_EMA, i);
       SlowEMA[i] = iMAOnArray(Spread, 0, SlowMAPeriod, 0, MODE_EMA, i);
       WillSpread[i] = FastEMA[i] - SlowEMA[i];
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+
 
AlexMikash:

¡Buenas tardes!

Hay un problema con el programa del indicador, el autor afirma que el indicador funciona, pero de hecho el gráfico no se muestra - ¿cuál es el problema?

El problema está en estas líneas

   int i, counted_bars = IndicatorCounted();
//---- check for possible errors
   if(counted_bars < 0) 
       return(-1);
//---- last counted bar will be recounted
   if(counted_bars > 0) 
       counted_bars--; 
   int limit = Bars - counted_bars;
El nuevo compilador da un error al ejecutar, pero al compilar está bien. Haga que el autor lo ejecute en el depurador y vea el problema inmediatamente.
 
AlexeyVik:

El problema está en estas líneas

El nuevo compilador da un error al ejecutar, pero al compilar todo está bien. Haga que el autor lo ejecute en el depurador y vea el problema inmediatamente.


No hay ningún problema, todo funciona. Es suficiente para restaurar la descripción del buffer

//---- buffers
double [];
double Spread[];
double FastEMA[];
double SlowEMA[];

El problema está en la herramienta por defecto. Lo más probable es que no haya ninguna herramienta GOLD, si pones otra herramienta está bien


 
¿Qué significa el icono amarillo de emisión de señales en el Metatrader? ¿Que la señal no se emite temporalmente? ¿Y por qué algunas señales que puedo ver ahora en el terminal no aparecen actualmente en mql5.com?
 
Vinin:


No hay problema, todo funciona. Es suficiente con restaurar la descripción del buffer

El problema está en la herramienta por defecto. Lo más probable es que no haya ninguna herramienta GOLD, si pones otra herramienta, todo está bien.



La cuestión es que me interesa mucho la herramienta GOLD, ¿cómo puedo conectarla al terminal?
 
AlexMikash:

La cuestión es que me interesa mucho la herramienta GOLD, ¿cómo puedo conectarla al terminal?

O está o no está. Todo depende de la empresa de corretaje. Tanto si proporciona esa herramienta como si no.
 
Vinin:

O está o no está. Todo depende de la DC. Tanto si proporciona esa herramienta como si no.


Gracias, ¡la imagen es clara!

 

Buenas tardes. Estoy aprendiendo a atornillar indicadores en un EA pero hasta ahora no tengo mucho éxito.

1 - Cuando ejecuto el EA a través de un probador, sólo cuando lo detengo aparecen las etiquetas de los indicadores.

2 - Tampoco entiendo cuáles deberían ser las condiciones y cómo están escritas.

Quiero pedirle a mi EA que opere en base a un indicador, sólo necesito saber cómo adjuntar el indicador a mi EA.

Basado en el indicador de flecha que muestra hacia arriba o hacia abajo BS_Living Now ver #1.mq4 https://www.mql5.com/ru/code/11014#50910

#property



 
 indicator_chart_window //#property indicator_buffers 4 //#property indicator_color1 Red //#property indicator_color2 Yellow //#property indicator_color3 Red //#property indicator_color4 Yellow ////******************// entrada de parámetros del indicadorextern int BQuant=48; // - número de barras contadas //******************// componentes del indicador
                                        // else//{ // if(iHigh(NULL,0,t)>=High[ iHighest(NULL,0,2,BQuant,t+1)] && // iHigh(NULL,0,t)>iHigh(NULL,0,t-1)) // { // ExtrimHi[t] =iHigh(NULL,0,t); // Break_Detect(t,1);                               //******************// Detección de punto de interrupción } // // si(iLow(NULL,0,t)<=Low[iLowest(NULL,0,1,BQuant,t+1)] && // iLow(NULL,0,t)<iLow(NULL,0,t-1))// // ExtrimLo[t] =iLow(NULL,0,t);                                         // Break_Detect(t,-1); //******************// Detección del punto de ruptura }//} // return(0);                                                                  //} //double Break_Detect(int a,int Signal) //***********************************// Determinación de los puntos de ruptura { // for(int r=1; r<BQuant; r++) //  // si(Señal==1 && iHigh(NULL,0,a+r)<High[iHighest(NULL,0,2,BQuant,a+r+1)]) // {BreakHi[a] =Low[iLowest(NULL,0,1,r+2,a-1)]; r=BQuant;}               // si(Señal==-1 && iLow(NULL,0,a+r)>Low[iLowest(NULL,0,1,BQuant,a+r+1)]) // {BreakLo[a] =High[iHighest(NULL,0,2,r+2,a-1)]; r=BQuant;}             // } return(0); //  }

Aquí está mi Asesor Experto iniciado
.

extern double Lot=0.1; extern int Magic=0; extern int Stop=98; extern int Take=70; extern int Slip=10; extern int
BQuant=48
; // - el número de barras calculadas int start()
{
double S1=iCustom(NULL, 0, "BS_Living Now",BQuant,0,0);
OrderSend(Symbol(), OP_SELL,Lot, Bid, Slip,Ask+Stop*Point,Ask-Take*Point, "SELL", Magic, 0,Red ); OrderSend(Symbol(), OP_BUY, Lot, Ask, Slip,Bid-Stop*Point,Bid+Take*Point, " BUY", Magic, 0,Blue);

}
 

Si se escribe un script simple que crea un objeto de tipo OBJ_ARROW_RIGHT_PRICE y luego lo elimina, el objeto no se borra. Además, el comando ObjectType resulta de repente que el objeto creado no es del tipo OBJ_ARROW_RIGHT_PRICE (==36), sino ==22, es decir, ¡¡¡una simple "flecha hacia arriba"!!! ¿Soy el único al que le pasa esto o a todo el mundo le pasa?

Ya había opiniones de "expertos" sobre este tema: como leer la ayuda, o no tener suficiente memoria :) .

La memoria es suficiente.

Parece que el comando ObjectCreate dibuja un objeto del tipo OBJ_ARROW_RIGHT_PRICE , que no puede ser eliminado por el comando ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE), pero sí por el comando ObjectsDeleteAll(0,22), como si no tuviéramos la etiqueta del precio correcto sino una "flecha hacia arriba". ¿De quién es la culpa?

#property copyright "Copyright 2014, MetaQuotes Software Corp."

#enlace de propiedad "https://www.mql5.com"

#versión de la propiedad "1.00"

#propiedad estricta

//+------------------------------------------------------------------+

//| Función de inicio del programa de script |

//+------------------------------------------------------------------+

void OnStart()

{

Alerta(") ;

Alert("obj_arrow_right_price=",OBJ_ARROW_RIGHT_PRICE) ; // ==36

ObjectCreate("MyArrow", OBJ_ARROW_RIGHT_PRICE,0,Time[1],Open[1]) ; //

¡Alert("objectTipe=", ObjectType("MyArrow") ) ; // ==22 !

ResetLastError() ;

Alert("script delete arrow right price=",ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE)," lastError=",GetLastError() ) ; // número de objetos borrados ==0, errores ==0

}

Para eliminar un objeto de tipo OBJ_ARROW_RIGHT_PRICE, utilice el comando ObjectsDeleteAll(0,OBJ_ARROW), asegurándose de especificar su subventana.

p.d. Un objeto de tipo OBJ_ARROW es "flecha" cualquiera, no sólo "flecha hacia arriba". ObjectCreate(...OBJ_ARROW...) crea una "flecha hacia arriba" inmediatamente. Entonces, ¿por qué no está esto en la ayuda?