Ayuda a la codificación - página 54

 

Necesito ayuda con la función Sleep

Hola mladen

Mi requisito es que si el comercio anterior golpeó stoploss entonces EA debe dormir durante 24 horas. ¿Podría ayudarme a codificarla?

 
mladen:
annbeea En cuanto a la primera parte de tu post: sí, esa versión se repinta (es debido a cómo se hace el cálculo del T3 y tiene un error, por eso dije que es mejor usar el otro)

hola mladen, además de usar el otro que mencionas, ¿podrías recodificar esa parte del indicador que adjunto ya que prefiero su estilo de cruce, para que no se repinte pasado y con el código de alerta correcto?

Muchas gracias por la ayuda

Archivos adjuntos:
 

Marcas de trading en el gráfico, ¿cómo puedo borrarlas?

Tengo estos puntos rojos en mis gráficos cada vez que se coloca una orden. No sé qué es lo que los causa.

Archivos adjuntos:
dots.jpg  71 kb
 

Puede utilizar una función como ésta:

bool lastOrderStopLossHit(int magicNumber, string symbol, datetime& lastTime)

{

double lastClosePrice = -1;

double lastStopLoss = -1;

//

//

// reset the time of the last order

//

//

lastTime = -1;

//

//

// find the last order

//

//

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

{

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

if (OrderMagicNumber()!=magicNumber) continue;

if (OrderSymbol() !=symbol) continue;

if (OrderCloseTime()>lastTime)

{

lastTime = OrderCloseTime();

lastClosePrice = OrderClosePrice();

lastStopLoss = OrderStopLoss();

}

}

int digits = MarketInfo(symbol,MODE_DIGITS);

return (lastTime!=-1 && NormalizeDouble(lastClosePrice,digits)==NormalizeDouble(lastStopLoss,digits));

}[/PHP]

and then at the beginning of the start procedure place a code that could look like this :

[PHP] datetime lastClosedTime;

if (lastOrderStopLossHit(1,Symbol(),lastClosedTime) && (lastClosedTime+24*60*60)>TimeCurrent()) return(0);

Si desea una pausa diferente a 1 día, cambie el "24*60*60" por lo que desee

PD: He utilizado "1" para el número mágico de la llamada. Sustitúyalo por su número mágico real

uk_kara:
Hola mladen Mi requisito es que si el comercio anterior golpea stoploss entonces EA debe dormir durante 24 horas. ¿Podría ayudarme a codificarla?
 

Hola mladen,

¿podrías ayudarme a modificar el código interior, para que pueda (normalizar) tener escala vertical: mínimo como cero, máximo como 100, punto medio en 50 en lugar de cero ahora, pero manteniendo las mismas señales que antes? Muchas gracias por la ayuda.

Archivos adjuntos:
 

annbeea

Usted no puede hacer eso. La normalización de cualquier tipo va a cambiar las señales (no pueden permanecer exactamente el mismo - especialmente desde que tiene 3 valores allí, hay aún menos posibilidades de mantener las señales en los mismos lugares)

annbeea:
Hola mladen, ¿podrías ayudarme a modificar el código interior, para que pueda (normalizar) tener escala vertical: mínimo como cero, máximo como 100, punto medio en 50 en lugar de cero ahora, pero seguir manteniendo las mismas señales que antes? Muchas gracias por la ayuda.
 
mladen:
Puedes usar una función como esta :

.............................

Si desea una pausa diferente a 1 día, cambie el "24*60*60" a lo que desee

PD: He utilizado "1" para el número mágico en la llamada. Sustitúyelo por tu número mágico real

Gracias Mladen. Lo comprobaré

 
mladen:
annbeea No se puede hacer eso. La normalización de cualquier tipo va a cambiar las señales (no pueden permanecer exactamente el mismo - sobre todo porque usted tiene 3 valores allí, hay aún menos posibilidades de mantener las señales en los mismos lugares)

hola mladen

puede ser que use o entienda mal la palabra "normalizar", ¿es posible escalar la prueba osc como aparece comúnmente la escala, min 0, max 100, mid 50?

Por otra parte, ¿es posible dejar que mi prueba de ensayo rsi anterior para modificar a no repintar? puedo saber es el t3 o los componentes rsi repintar o ambos repintar? Muchas gracias por la ayuda.

 

annbeea

Estamos hablando de lo mismo: convertir los valores para que tengan un mínimo y un máximo siempre va a "deformar" los valores originales. Podemos llamarlo normalización o estandarización o lo que queramos, pero el precio que pagamos es la pérdida de correlación de los valores originales. Y cuando se "deforman" las señales se producen en lugares completamente diferentes

En cuanto al indicador rsi trial : la parte t3 se repintará. Se debe a cómo se tratan los pasos anteriores del cálculo de t3. La primera vez que se calcule (cuando se coloque en el gráfico, se cambie de marco temporal o de símbolo, ...) se calculará bien. pero en el siguiente tick, las variables e1 a e6 van a tener valores de la barra actual (cero-ésima) cuando se calcule en el siguiente tick y deberían tener al menos los valores de la primera barra (dependiendo de la variable "límite"). Es un error como el cálculo del siguiente tick hereda los valores del cálculo del paso anterior lo que provocará un error cada vez más grande en cada nuevo tick, y por eso te recomendé usar ese otro indicador como base ya que en ese se solucionan esos problemas

annbeea:
hola mladen

puede ser que use o entienda mal la palabra "normalizar", ¿es posible escalar la prueba osc como aparece comúnmente la escala, min 0, max 100, mid 50?

Por otra parte, ¿es posible dejar que mi prueba de ensayo rsi anterior para modificar a no repintar? puedo saber es el t3 o los componentes rsi repintar o ambos repintar? Muchas gracias por la ayuda.
 
uk_kara:
Gracias Mladen. Voy a comprobarlo

Funciona como siempre, gracias Mladen, eres una estrella