Ayuda a la codificación - página 65

 

Aquí hay una función que comprobará los tiempos de apertura de las órdenes y devolverá el precio de la que tenga el tiempo de apertura más reciente (si no hubo órdenes anteriores, devolverá 0)

double lastOrderOpenPrice(int magicNumber=0)

{

datetime lastTime = 0;

double lastPrice = 0;

for(int i=OrdersTotal()-1; i>=0; i--)

{

if (OrderSelect(i,SELECT_BY_POS, MODE_TRADES)==false) break;

if (magicNumber!=0)

if (OrderMagicNumber() != magicNumber) continue;

if (OrderSymbol() != Symbol()) continue;

if (OrderOpenTime() <= lastTime) continue;

lastTime = OrderOpenTime();

lastPrice = OrderOpenPrice();

}

if (lastTime==0)

for(i=OrdersHistoryTotal()-1; i>=0; i--)

{

if (OrderSelect(i,SELECT_BY_POS, MODE_HISTORY)==false) break;

if (magicNumber!=0)

if (OrderMagicNumber() != magicNumber) continue;

if (OrderSymbol() != Symbol()) continue;

if (OrderOpenTime() <= lastTime) continue;

lastTime = OrderOpenTime();

lastPrice = OrderOpenPrice();

}

return(lastPrice);

}

[/PHP]

The assumtion is that currently open orders have times more recent than the already closed orders. If you wish to avoid that assumption, comment out this line :

[PHP] if (lastTime==0)

dasio:
Hola,

Necesito una función doble que me devuelva el precio de la última orden abierta.

¿Alguien me puede ayudar?

Gracias
 

Hola,

utilizo este código para calcular lotes. A veces recibo el error 131. ¿El código está bien?

double Lotti1(double StopLoss,double Rischio_per_trade){

double MyLots,AllowedLots,MaxLots,MinLot,StopValue,TickValue;

int RightLots;

AllowedLots=(AccountFreeMargin()* Rischio_per_trade/100);

if (Digits==2 || Digits==4)

TickValue=MarketInfo(Symbol(),MODE_TICKVALUE)/10;

else

TickValue=MarketInfo(Symbol(),MODE_TICKVALUE);

StopValue=StopLoss*TickValue;

MinLot=MarketInfo(Symbol(),MODE_MINLOT);

MaxLots=MarketInfo(Symbol(),MODE_MAXLOT);

RightLots=MathRound(AllowedLots/StopValue);

double soldi_ora = AccountBalance()/100;

MyLots = soldi_ora*(Rischio_per_trade/10);

MyLots = NormalizeDouble(MyLots/StopLoss,2);

MyLots = NormalizeDouble(MyLots/(MarketInfo(Symbol(),MODE_TICKVALUE)/100),2);

MyLots = NormalizeDouble(MyLots/100,2);

return(MyLots);

}[/PHP]

the Stoploss is = [PHP]StopLoss= NormalizeDouble(Ask-SLbuy()-20*Point,5)*10000;

y Rischio_per_trade = 0.5.

Gracias

 

dasio

prueba la función de este post : https://www.mql5.com/en/forum/general

dasio:
Hola,

Yo utilizo este código para calcular lotes. A veces recibo el error 131. ¿El código está bien?

double Lotti1(double StopLoss,double Rischio_per_trade){

double MyLots,AllowedLots,MaxLots,MinLot,StopValue,TickValue;

int RightLots;

AllowedLots=(AccountFreeMargin()* Rischio_per_trade/100);

if (Digits==2 || Digits==4)

TickValue=MarketInfo(Symbol(),MODE_TICKVALUE)/10;

else

TickValue=MarketInfo(Symbol(),MODE_TICKVALUE);

StopValue=StopLoss*TickValue;

MinLot=MarketInfo(Symbol(),MODE_MINLOT);

MaxLots=MarketInfo(Symbol(),MODE_MAXLOT);

RightLots=MathRound(AllowedLots/StopValue);

double soldi_ora = AccountBalance()/100;

MyLots = soldi_ora*(Rischio_per_trade/10);

MyLots = NormalizeDouble(MyLots/StopLoss,2);

MyLots = NormalizeDouble(MyLots/(MarketInfo(Symbol(),MODE_TICKVALUE)/100),2);

MyLots = NormalizeDouble(MyLots/100,2);

return(MyLots);

}[/PHP]

the Stoploss is = [PHP]StopLoss= NormalizeDouble(Ask-SLbuy()-20*Point,5)*10000;

y Rischio_per_trade = 0.5.

Gracias
 

Estimados amigos,

Respetuosamente les deseo a ustedes y a todos los miembros del foro salud y felicidad en el próximo año nuevo. Me siento realmente agradecido a muchos codificadores sobresalientes y generosos aquí, así como las ideas brillantes de los miembros de este foro. Todos me ayudan mucho a mejorar mis habilidades de trading (aunque todavía soy un idiota en esta carrera )

Recientemente, en la revisión del mercado y mi enfoque comercial, pienso en un indicador que me ayudaría mucho (y otros también, tal vez). Mi idea es simple, pero la transferencia en el código está más allá de mi capacidad. No sé tal indicador existe o no, así que voy a describir mi idea en detalle y espero que alguien me ayude a encontrar o hacer el mejor ajuste.

- Idea general: Quiero seguir el precio del mercado continuamente dentro de un rango fijo de puntos. El indicador me daría alguna información necesaria sobre la acción del precio dentro de los segmentos del precio (rango fijo dado) como: (1) nivel superior, (2) nivel inferior, (3) nivel medio, (4) número de barras dentro del rango. También me gustaría saber el nivel del Punto de Control (POC) de las barras en el rango dado, pero tal vez es demasiado complicado en la codificación y consumir mucha memoria de la PC.

- Analogía : He encontrado indicadores populares como "Market Profile", "Price Channel", o "Session HiLo", ... comparten mucho mi idea. Pero todos ellos están limitados por el intervalo de tiempo como Hourly, Daily, ... no se basan en un rango fijo dado o carecen de algunas características como he mencionado anteriormente. He tratado de recodificar en ellos para adaptar mi idea, pero no tiene éxito hasta ahora.

- Lista de deseos sobre el indicador : (1) Parámetro de entrada: Rango fijo de puntos; Intervalo de tiempo (en minutos, horas o días) o número de barras utilizado para contar el número de barras cerradas dentro del rango dado; Alerta cuando el precio toca los niveles (opcional)

(2) Salida en el gráfico principal: muestra la línea horizontal correspondiente a los niveles del rango (superior, inferior, medio), y el texto informa del número de barras contadas dentro del rango para el tiempo dado.

(3) Actualización continua: la información se actualiza en 3 casos: (a) el precio hace un nuevo máximo del rango actual, (b) un nuevo mínimo del rango actual, (c) más y más barras se consolidan dentro del rango actual.

Normalmente tengo que hacer todas estas cosas manualmente. Ahora espero que el indicador me ayude a simplificar mi trabajo, ahorrar tiempo y mantener mi enfoque en la acción del precio. Buscando en Internet, pero no puedo encontrar tal herramienta. Si usted conoce una, o hace una, estaría muy agradecido.

Gracias por su consideración y su ayuda.

Y de nuevo, ¡feliz año nuevo para ti!

Saludos cordiales,

fareastol

oh me olvidé de adjuntar la imagen de lo que yo imagen del indicador

Archivos adjuntos:
 

Adjunto otra imagen para aclarar mi idea :

a) El máximo o el mínimo del rango actual se determina por separado con el número de barra de entrada. El Alto/Bajo se adapta al tamaño del rango dado y a la acción del precio del mercado actual.

b) El número de barra introducido se utiliza para calcular el número de barras cerradas dentro del rango actual.

c) Puedo poner el indicador más de una vez en un gráfico, con diferentes ajustes de entrada, por supuesto.

fareastol:
Estimados amigos,

Respetuosamente le deseo a usted y a todos los miembros del foro salud y felicidad en el próximo año nuevo. Realmente me siento agradecido a muchos codificadores sobresalientes y generosos aquí, así como las ideas brillantes de los miembros de este foro. Todos me ayudan mucho a mejorar mis habilidades de trading (aunque todavía soy un idiota en esta carrera )

Recientemente, en la revisión del mercado y mi enfoque comercial, pienso en un indicador que me ayudaría mucho (y otros también, tal vez). Mi idea es simple, pero la transferencia en el código está más allá de mi capacidad. No sé tal indicador existe o no, así que voy a describir mi idea en detalle y espero que alguien me ayude a encontrar o hacer el mejor ajuste.

- Idea general : Quiero seguir el precio del mercado continuamente dentro de un rango fijo de puntos. El indicador me daría alguna información necesaria sobre la acción del precio dentro de los segmentos del precio (rango fijo dado) como: (1) nivel superior, (2) nivel inferior, (3) nivel medio, (4) número de barras dentro del rango. También me gustaría saber el nivel de Punto de Control (POC) de las barras en el rango dado, pero tal vez es demasiado complicado en la codificación y consumir mucha memoria de la PC.

- Analogía : He encontrado indicadores populares como "Market Profile", "Price Channel", o "Session HiLo", ... comparten mucho mi idea. Pero todos ellos están limitados por el intervalo de tiempo como Hourly, Daily, ... no se basan en un rango fijo dado o carecen de algunas características como he mencionado anteriormente. He tratado de recodificar en ellos para adaptar mi idea, pero no tiene éxito hasta ahora.

- Lista de deseos sobre el indicador : (1) Parámetro de entrada: Rango fijo de puntos; Intervalo de tiempo (en minutos, horas o días) o número de barras utilizado para contar el número de barras cerradas dentro del rango dado; Alerta cuando el precio toca los niveles (opcional)

(2) Salida en el gráfico principal: muestra la línea horizontal correspondiente a los niveles del rango (superior, inferior, medio), y el texto informa del número de barras contadas dentro del rango para el tiempo dado.

(3) Actualización continua: la información se actualiza en 3 casos: (a) el precio hace un nuevo máximo del rango actual, (b) un nuevo mínimo del rango actual, (c) más y más barras se consolidan dentro del rango actual.

Normalmente tengo que hacer todas estas cosas manualmente. Ahora espero que el indicador me ayude a simplificar mi trabajo, ahorrar tiempo y mantener mi enfoque en la acción del precio. Buscando en Internet, pero no puedo encontrar tal herramienta. Si usted conoce una, o hace una, estaría muy agradecido.

Gracias por su consideración y su ayuda.

Y de nuevo, ¡feliz año nuevo para ti!

Saludos cordiales,

fareastol

Oh, me olvidé de la imagen adjunta sobre lo que yo imagen del indicador
Archivos adjuntos:
 

Creo que, después de todo, he hecho algo por mí mismo. Ahora compartir con ustedes.

Como se indica en el interior del indicador, no invento nada, sólo mezclar dos indicadores relacionados que tengo. Tal vez no está bien "mezclado"

¡Por favor, échale un vistazo y mejóralo si crees que es útil !

Archivos adjuntos:
 

Dibujar un objeto rectangular múltiple

Hola,

Estoy tratando de dibujar múltiples rectángulo comprobando la última vela n.

El punto tiene una regla simple.

Adjunto un ejemplo.

El rectángulo grande sin fondo define la regla (comprobar el precio incluido desde el punto 1 hasta el punto 2 usando la media móvil).

El punto para dibujar el rectángulo es el máximo y el mínimo de la barra con el máximo del rango.

¿Cómo puedo codificarla?

Gracias por su respuesta.

Lo siento,

no puedo adjuntar una imagen ahora. El punto 1 es el cruce de la MA rápida con la MA lenta hacia arriba y el punto 2 es el cruce de la MA rápida con la MA lenta hacia abajo.

 

¿Podría alguien ayudarme a modificar el indicador de barras del gráfico rsi adjunto?

Este indicador muestra barras azules cuando el RSI está por encima del nivel 50 y barras rojas por debajo de este nivel.

En realidad el nivel 50 es el nivel medio del RSI. Sería muy útil si se añadieran dos niveles más a 70 y a 30, que son los verdaderos niveles de sobrecompra y sobreventa, y cuando el RSI pase estos dos niveles 70/30, las velas también deberían cambiar de color. Agradecería mucho cualquier ayuda, y gracias en addvance.

Archivos adjuntos:
 

Laszlo,

Prueba esta versión. Sigue funcionando con 2 niveles pero muestra (o mejor dicho, no muestra) 3 estados. Colorea las barras cuando los niveles se rompen hacia arriba o hacia abajo y si el valor de rsi está entre los 2 niveles deja las barras como están (por lo que son barras simples, no coloreadas por el indicador) Aquí hay un ejemplo de cómo se ve y cómo se compara con rsi "regular" :

Laszlo:
¿Alguien podría ayudarme a modificar el indicador de barras del gráfico rsi adjunto?

Este indicador muestra barras azules cuando el RSi está por encima del nivel 50 y barras rojas por debajo de este nivel.

En realidad el nivel 50 es el nivel medio del RSI. Sería muy útil si se añadieran dos niveles más a 70 y a 30 que son los verdaderos niveles de sobrecompra y sobreventa. y cuando el RSI pase estos dos niveles 70/30, las velas deberían cambiar de color también. Agradecería mucho cualquier ayuda, y gracias en addvance.
Archivos adjuntos:
 
fareastol:
Creo que he hecho algo por mí mismo después de todo. Ahora compartir con ustedes.

Como se indica en el interior del indicador, no invento nada, solo mezclo dos indicadores relacionados que tengo. Quizás no esté bien "mezclado"

¡Por favor, echa un vistazo y mejorarlo si usted piensa que es útil !

Fareastol, me gusta tu indicador de rango y lo que estoy pensando que será genial si se puede añadir "punto de inicio" de arrastre (que tiene) y "punto de finalización de arrastre" y luego se dibujará automáticamente rango para ese período.

Razón de la queja: