Ayuda a la codificación - página 759

 
Estimado MLADEN

En cuanto a las advertencias cuando se compila "el valor de retorno de ''order send/select,modify,close'' se corrigieron añadiendo (bool dummyResult) anteriormente pero ahora veo que usas simplemente (bool dummy), ¿está bien para todos y cada situación o el nuevo (bool dummy) para algunos indicadores y situaciones específicas?

saludos
 
mntiwana:
Estimado MLADEN

En cuanto a las advertencias cuando se compila "el valor de retorno de ''order send/select,modify,close'' se corrigieron añadiendo (bool dummyResult) anteriormente pero ahora veo que usas simplemente (bool dummy), ¿está bien para todos y cada situación o el nuevo (bool dummy) para algunos indicadores y situaciones específicas?

saludos
Normalmente esos avisos son benignos.

Lo que se utiliza para comprobar realmente si la(s) operación(es) de orden está(n) bien es GetLastError() (ya que da muchos más detalles que el simple retorno booleano que devuelve por defecto la operación de orden) - así que, sí está bien, y entonces, si se necesita más detalle para un posible error entonces, por todos los medios, se debe utilizar GetLastError()
 
wojtekpaul:

(¿qué haremos después del 31 de enero?) :(

WojtekPaul,

¿Qué quieres decir con eso?

 
chrisstoff:

WojtekPaul,

¿Qué quieres decir con eso?

Se refería a esto : https://www.forex-tsd.com/forum/announcements-forex-press/1811320-forex-tsd-is-going-to-be-terminated

Pero revisa este post también : https://www.forex-tsd.com/forum/announcements-forex-press/1811320-forex-tsd-is-going-to-be-terminated/page4#comment_1849089
 
mladen:
Normalmente esos avisos son benignos.

Lo que se utiliza para comprobar realmente si la(s) operación(es) de pedido está(n) bien es GetLastError() (ya que da muchos más detalles que el simple retorno booleano que devuelve por defecto las operaciones de pedido) - así que, sí está bien, y luego, si se necesita más detalle para un posible error entonces, por todos los medios, se debe utilizar GetLastError()
Estimado MLADEN

Gracias por la guía de ayuda.

saludos
 
mladen:
Se refería a esto : https://www.forex-tsd.com/forum/announcements-forex-press/1811320-forex-tsd-is-going-to-be-terminated

Pero mira también este post : https://www.forex-tsd.com/forum/announcements-forex-press/1811320-forex-tsd-is-going-to-be-terminated/page4#comment_1849089

Mladen,

Gracias por la información. Este es / era mi uno de los foros más favorables, por lo que es una mala noticia para mí, ya sea. Sin embargo, hay otros lugares con funciones de foro y chat ya hechas en la red. (Puse un ejemplo en el hilo "Forex-TSD se va a acabar...").

 

Hola a todos,


Necesito un codificador para poner una flecha con alerta para esta extrategia. Manualmente esta estrategia está dando 100% de victoria.


Abajo esta el link de la estrategia.

http://www.binaryoptionsedge.com/topic/1879-high-power-option-2015/page-2#entry108014

Puesto #29

Obrigado.

 

Estimado Mladen, ¿es posible que las dos funciones siguientes:

iMA(NULL,0,MAPeriod,0,MODE_EMA,PRICE_HIGH,i);

and

iCustomMa(ma_ema,getPrice(pr_high,Open,Close,High,Low,i),MAPeriod,i,0);
(or iCustomMa(ma_ema,iMA(NULL,0,1,0,MODE_SMA,PRICE_HIGH,i),MAPeriod,i,0); )
donde ma_ema se define a continuación:
#define _maWorkBufferx1 1
#define _maWorkBufferx2 2
#define _maWorkBufferx3 3
#define _maWorkBufferx5 5
double iCustomMa(int mode, double price, double length, int i, int instanceNo=0)
{
   if (length<=1) return(price);
   int r = Bars-i-1;
   switch (mode)
   {
      // ...
      case ma_ema   : return(iEma(price,length,r,instanceNo));
      // ...
      default : return(0);
   }
}

double workEma[][_maWorkBufferx1];
double iEma(double price, double period, int r, int instanceNo=0)
{
   if (ArrayRange(workEma,0)!= Bars) ArrayResize(workEma,Bars);
   //
   double alpha = 2.0 / (1.0+period);
          workEma[r][instanceNo] = workEma[r-1][instanceNo]+alpha*(price-workEma[r-1][instanceNo]);
   return(workEma[r][instanceNo]);
}
devuelvan valores diferentes (para el mismo MAPeriod y i)? ¿Significaría
que iEma funciona de forma ligeramente diferente a la EMA incorporada?
 
wojtekpaul:

Estimado Mladen, ¿es posible que las dos funciones siguientes:

iMA(NULL,0,MAPeriod,0,MODE_EMA,PRICE_HIGH,i);

and

iCustomMa(ma_ema,getPrice(pr_high,Open,Close,High,Low,i),MAPeriod,i,0);
(or iCustomMa(ma_ema,iMA(NULL,0,1,0,MODE_SMA,PRICE_HIGH,i),MAPeriod,i,0); )
donde
#define _maWorkBufferx1 1
#define _maWorkBufferx2 2
#define _maWorkBufferx3 3
#define _maWorkBufferx5 5
double iCustomMa(int mode, double price, double length, int i, int instanceNo=0)
{
   if (length<=1) return(price);
   int r = Bars-i-1;
   switch (mode)
   {
      // ...
      case ma_ema   : return(iEma(price,length,r,instanceNo));
      // ...
      default : return(0);
   }
}

double workEma[][_maWorkBufferx1];
double iEma(double price, double period, int r, int instanceNo=0)
{
   if (ArrayRange(workEma,0)!= Bars) ArrayResize(workEma,Bars);
   //
   double alpha = 2.0 / (1.0+period);
          workEma[r][instanceNo] = workEma[r-1][instanceNo]+alpha*(price-workEma[r-1][instanceNo]);
   return(workEma[r][instanceNo]);
}
devuelvan valores diferentes (para el mismo MAPeriod y i)? ¿Significaría
que iEma funciona de forma ligeramente diferente a la EMA incorporada?
La EMA depende de los valores anteriores. Si calculaste los valores en toda la serie, deberían devolver valores muy similares. Si no es así (si has intentado calcular sólo un valor), no serán iguales ya que el iMA() calculará, tras las cortinas, toda la serie, mientras que el iCustomMa() calculará sólo los valores que hayas solicitado.

Haga un bucle con iCustomMa() en toda la serie, y los resultados deberían ser los mismos


PD: ese iEma() está obsoleto. La nueva versión va así (no va a cambiar los valores, pero es "a prueba de modo estricto")
double workEma[][_maWorkBufferx1];
double iEma(double price, double period, int r, int instanceNo=0)
{
   if (ArrayRange(workEma,0)!= Bars) ArrayResize(workEma,Bars);
   //
  
   workEma[r][instanceNo] = price;
   if (r>0 && period>1)
          workEma[r][instanceNo] = workEma[r-1][instanceNo]+(2.0/(1.0+period))*(price-workEma[r-1][instanceNo]);
   return(workEma[r][instanceNo]);
}
 

Muchas gracias por su rápida respuesta, ¿podría decirme dónde puedo encontrar el código actual de las medias móviles?

encontrar el código actual de las medias móviles:

enum enMaTypes
{
   ma_sma,     // simple moving average - SMA
   ma_ema,     // exponential moving average - EMA
   ma_dsema,   // double smoothed exponential moving average - DSEMA
   ma_dema,    // double exponential moving average - DEMA
   ma_tema,    // tripple exponential moving average - TEMA
   ma_smma,    // smoothed moving average - SMMA
   ma_lwma,    // linear weighted moving average - LWMA
   ma_pwma,    // parabolic weighted moving average - PWMA
   ma_alxma,   // Alexander moving average - ALXMA
   ma_vwma,    // volume weighted moving average - VWMA
   ma_hull,    // Hull moving average
   ma_tma,     // triangular moving average
   ma_sine,    // sine weighted moving average
   ma_linr,    // linear regression value
   ma_ie2,     // IE/2
   ma_nlma,    // non lag moving average
   ma_zlma,    // zero lag moving average
   ma_lead,    // leader exponential moving average
   ma_ssm,     // super smoother
   ma_smoo     // smoother
};

Que yo sepa esta es la última lista de medias móviles disponibles como código abierto

(otras MAs ya están en formato ex4).

Razón de la queja: