[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 197

 

Explícate. No lo entiendo. Por qué la condición

int Takeprofit = 62;

pp = MarketInfo(OrderSymbol(), MODE_POINT);

if(OrderTakeProfit() - OrderOpenPrice() < Takeprofit*pp )

¿funciona como verdad? ¡¡¡Aunque ambas partes son iguales!!! Como puede ver a continuación.

2009.08.22 18:50:31 1999.10.11 23:43 Delta EURUSD,M1: OrderTakeProfit() - OrderOpenPrice() = 0.0062 Takeprofit*pp = 0.0062

Gracias.

 

Como trabajas con números reales, debes saber que 0,0062 puede ser en realidad 0,0061999 o 0,0062001.

Utiliza la normalización.

 
OneDepo писал(а) >>

Como trabajas con números reales, debes saber que 0,0062 puede ser en realidad 0,0061999 o 0,0062001.

Utiliza la normalización.

Intenté normalizar Takeprofit*pp - nada funcionó. ¿Tal vez habría que normalizar ambos lados de la ecuación?

 
001 >> :

Intenté normalizar Takeprofit*pp - nada funcionó. ¿Quizás haya que normalizar ambos lados de la ecuación (la desigualdad)?

Sí.

La segunda opción es trabajar con el tipo int, por ejemplo:

int temp = 0.5 + (OrderTakeProfit() - OrderOpenPrice())/ pp;
if ( temp < Takeprofit)
 
OneDepo писал(а) >>

Sí.

La segunda opción es trabajar con el tipo int, por ejemplo:

>> Gracias.

 

¡Hola!

¿Cómo puedo cambiar el color de la línea del indicador en función de la condición, por ejemplo, para que diferentes rangos de barras tengan colores diferentes?

La función SetIndexStyle, que se supone que hace esto, no funciona estableciendo el color o el grosor de la línea - ver figura

Vea el código de ejemplo a continuación.

Cada barra debería ser de un color y un grosor diferente, pero todas son simplemente rojas y de un grosor de 2.

//+------------------------------------------------------------------+
//|                                                       MinMax.mq4 |
//|                      Copyright © 2009, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Gray

//---- buffers
double ExtMapBuffer1[];
double Val;
int ExtCountedBars=0;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2,Brown);
   SetIndexBuffer(0, ExtMapBuffer1);
   Val=Close[Bars-1];
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   

   if(Bars<=100) return(0);
   ExtCountedBars=IndicatorCounted();

   //---- check for possible errors
   if ( ExtCountedBars<0) return(-1);
   if ( ExtCountedBars>0) ExtCountedBars--;
   int    i, pos=Bars- ExtCountedBars-1; 
   Comment(Bars," ", ExtCountedBars, " ", pos); 
//---- last counted bar will be recounted
   
//----

   while( pos>=0) {
        
         if ( pos<100 && pos>0)   { SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2,Red); Val=1.45; }
         if ( pos<200 && pos>100) { SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,3,Blue); Val=1.44; }
         if ( pos<300 && pos>200) { SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,4,Yellow); Val=1.43; }
         if ( pos<400 && pos>300) { SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,5,Magenta); Val=1.42; }
             
      ExtMapBuffer1[ pos]= Val;
    
    pos--;
     }
  return(0);
  }
//+------------------------------------------------------------------+
 
stera писал(а) >>

¡Hola!

¿Cómo puedo cambiar el color de la línea del indicador en función de la condición, por ejemplo, para que diferentes rangos de barras tengan colores diferentes?

La función SetIndexStyle, que se supone que hace esto, no funciona estableciendo el color o el grosor de la línea - ver figura

Vea el código de ejemplo a continuación.

Cada escalón debería ser de un color y grosor diferente, pero todos son simplemente rojos y de grosor 2.

Utilizar topes adicionales, cada uno con su propio estilo y color

 
Vinin >> :

Utilizar topes adicionales, cada uno con su propio estilo y color

Una vez inició una pregunta similar, y juntos resolvimos lo que debería haber quedado claro :)))

SetIndexStyle cuando se utiliza en el inicio cambia honestamente el color, pero todo el buffer a la vez. Es decir, en el gráfico actual, el buffer (línea) tendrá el color correspondiente a la última aplicación SetIndexStyle activada.

 
stera писал(а) >>

¡Hola!

Cómo cambiar el color de la línea indicadora...

Mira aquí .

 
granit77 писал(а) >>

Una vez inició una pregunta similar, y juntos resolvimos lo que debería haber quedado claro :))

SetIndexStyle cuando se utiliza en el inicio cambia honestamente el color, pero todo el buffer a la vez. Es decir, en el gráfico actual, el buffer (línea) tendrá el color correspondiente al color de la última aplicación SetIndexStyle activada .

Muchas gracias, granit77.

Esa es una respuesta completa.
Lo sospechaba, pero no podía creer que una idea tan extraña estuviera incorporada a esta función.

Puede ser necesario cambiar el color de todo el tampón para algunos fines, pero lo más práctico es

Pero el mecanismo de colorear (y cambiar otros atributos) de algunas partes del indicador.

EasyLang, por ejemplo, lo tiene.

Escribiré a los desarrolladores.

¿Existe una descripción más detallada de las funciones MQL en algún lugar?

¿Con los ejemplos de unos u otros parámetros?

Todos los parámetros tienen que ser probados por mí o tomados de ejemplos de terceros.