Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 308

 
MosheDayan:

Amigos, cómo salir correctamente de esta situación... El indicador dibuja dos líneas horizontales desde el CSV (Rojo - desde el principio del día hasta el final del día) Azul - Rayo procedente de los últimos días, a diferentes niveles de precios. Pero hay días en que estos niveles tienen el mismo valor/precio. Cuál es la forma correcta de salir de esta situación, para que cuando las líneas coincidan, se muestre el Rayo(Azul), y la línea Roja no sea visible en el gráfico, pero esté físicamente presente... es decir, sea transparente.

Ahora - Draw_Level("Red", red, DRAW_NONE, STYLE_SOLID,0); deja de dibujar la línea, pero el Rayo tampoco es visible desde abajo. Gracias.

Preste atención a la secuencia de creación de objetos. Y qué es Draw_Level() ¿Por qué mencionar una función personalizada si nadie la conoce?

 
Artyom Trishkin:

Buenas tardes. ¿Qué es exactamente lo que intentabas hacer tú? Sólo veo los dos códigos adjuntos. Si necesitas que alguien lo haga todo por ti, para eso está el trabajo autónomo.

Y si tú mismo lo estás intentando, entonces muéstrame exactamente lo que estás haciendo y dónde no lo entiendes.

¡Buenas tardes, Artem! Un comentario correcto. Sí, adjunto un archivo Wordovan con el código. Lo que he añadido a mi código del algoritmo prestado está marcado en rojo. No puedo decir con seguridad que no lo entiendo todavía porque no puedo comprender del todo el mecanismo de trabajo del código. Pero tal vez usted pueda orientarme en la dirección correcta con sus consejos. Se lo agradecería.

 

¡Buenos días!
Voy a abrir una orden en un símbolo diferente del gráfico en el que se encuentra el Asesor Experto. La pregunta es: ¿tengo que comprobar previamente que la oferta es correcta y cómo lo hago?

double Bid0= MarketInfo(OtherSymbol0,MODE_BID);
OrderSend(OtherSymbol0,OP_SELL,1,Bid0,3,stoploss,takeprofit,"My order",16384,0,clrGreen); 
 

Buenas tardes.

¿Puede aconsejar cómo escribir la siguiente hora en el código: 23:59 del primer viernes del mes después del primer miércoles de este mes? es decir, si el mes comenzó el jueves, entonces necesita la hora 23:59 del segundo viernes...

Gracias.

 
MosheDayan:

Buenas tardes.

¿Puede aconsejar cómo escribir la siguiente hora en el código: 23:59 del primer viernes del mes después del primer miércoles de este mes? es decir, si el mes comenzó el jueves, entonces necesita la hora 23:59 del segundo viernes...

Gracias.

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   int countWedn=0;
   int countFrid=0;
   if(TimeDayOfWeek(TimeCurrent())==5 && Hour()==23 && Minute()==59)
     {
      countWedn=0;
      countFrid=0;
      for(int i=0; i<=Day(); i++)
        {
         if(TimeMonth(iTime(Symbol(),PERIOD_D1,i))==TimeMonth(TimeCurrent()))
           {
            if(TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,i))==3)countWedn++;
            if(TimeDayOfWeek(iTime(Symbol(),PERIOD_D1,i))==5)countFrid++;
           }
        }
     }
   if(countWedn==1 && countFrid==1)Print(" 23:59 первой пятницы месяца после первой среды этого месяца ");
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin:

Puedes hacerlo. Y la dirección del pensamiento es correcta. ¿Puede mostrarme cómo intentó tomar los parámetros?


Lo tengo resuelto. Es necesario "vincular" el objeto gráfico a la clase correspondiente.

#include <ChartObjects\ChartObject.mqh>.

void OnStart()

{

Objeto CChartObject;

string objName = "";

precio doble = 0;

datetime dt;

int NumTriangles = ObjectsTotal(ChartID(),0,OBJ_TRIANGLE);

for (int j=0;j<NumTriangles;j++){

objName = ObjectName(ChartID(),j);

object.Attach(ChartID(),objName,0,3);

for (int i=0;i<object.NumPoints();i++){

precio = objeto.Precio(i);

dt = objeto.Tiempo(i);

Print("Punto de giro - ",IntegerToString(i)," Tiempo = ",TimeToString(dt)," Precio = ",DoubleToStr(price,4))

}

object.Detach();

}

 

¡Buenas tardes a todos!

Tengo una pregunta de este tipo, hay un bloqueo de este tipo:

opf_all=0;
  for(int is=OrdersHistoryTotal(); is>=0; is--)
   {
    if(OrderSelect(is, SELECT_BY_POS, MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==MN)
     {
      opf_all=opf_all+OrderProfit()+OrderCommission()+OrderSwap();
     }
   }

La variable opf_all debe arrojar el beneficio total de todo el periodo. Pero cuando se selecciona el parámetro del día actual en la pestaña del historial de la cuenta del terminal, este módulo muestra el resultado

sólo para el día actual, y cuando seleccionamos el período completo, este módulo muestra para todo el período. Este no debería ser el caso. Independientemente del intervalo en el historial de la cuenta

el módulo debería seguir mostrando el beneficio total de todo el periodo. ¿Quizás no entiendo algo?

¿Se ha resuelto este problema de alguna manera?

 
Valerius:

¡Buenas tardes a todos!

Tengo una pregunta de este tipo, hay un bloqueo de este tipo:

opf_all=0;
  for(int is=OrdersHistoryTotal(); is>=0; is--)
   {
    if(OrderSelect(is, SELECT_BY_POS, MODE_HISTORY) && OrderSymbol()==Symbol() && OrderMagicNumber()==MN)
     {
      opf_all=opf_all+OrderProfit()+OrderCommission()+OrderSwap();
     }
   }

La variable opf_all debe arrojar el beneficio total de todo el periodo. Pero cuando se selecciona el parámetro del día actual en la pestaña del historial de la cuenta del terminal, este módulo muestra el resultado

sólo para el día actual, y cuando seleccionamos el período completo, este módulo muestra para todo el período. Este no debería ser el caso. Independientemente del intervalo en el historial de la cuenta

el módulo debería seguir mostrando el beneficio total de todo el periodo. ¿Quizás no entiendo algo?

¿Se ha resuelto este problema de alguna manera?

No, no se puede solucionar más que seleccionando el tamaño del historial calculado en la pestaña "Historial de la cuenta"

Y por favor, pegue el código usando el botón SRC - está justo encima del campo de entrada de texto en el menú de formato del mensaje. He pegado correctamente tu ilegible "despojo".

 
Artyom Trishkin:

No, no se resuelve más que seleccionando el tamaño del historial calculado en la pestaña Historial de la cuenta

Y por favor, pega el código usando el botón SRC - está justo encima del campo de entrada de texto en el menú de formato del post. He pegado correctamente tu ilegible "despojo".

Gracias y disculpas...

 

Hola. Hay un botón en el gráfico https://www.mql5.com/ru/code/19049 y abre la página web.Necesito poder habilitar el script a través de este botón.¿Se puede rehacer?.Gracias.

Link
Link
  • votos: 11
  • 2017.09.01
  • Iurii Tokman
  • www.mql5.com
Индикатор создает графическую кнопку, при нажатии на которую открывается окно браузера с сайтом, заданным в настройках индикатора.