Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 934

 
Si facilita las cosas, lo volveré a publicar correctamente. Incluso he hecho un vídeo desde el depurador, mostrando que los valores son iguales, pero no funciona. Por favor, pon mi cerebro en su sitio))))
{
      int size = ArrayRange(arrayMinLow,0);
     
      
      double spreadFlat = highLine - lowLine;
      
     
      int directionFlat = -1;
      int slew = 0;
      for (int i = 0; i<size; i++){
            double hl =arrayMinLow[i][0];
            double ol = arrayMinLow[i][1];
            double cl = arrayMinLow[i][2];
            double ll = arrayMinLow[i][3];
            
            if (hl == highLine || ol == highLine){                                      //вот тут не срабатывает

                  if( directionFlat == -1 || directionFlat == 0)
                        slew++;

                  directionFlat = 1;
            }else if  (cl == lowLine|| ll ==lowLine){
               
                  if( directionFlat == -1 || directionFlat == 1)
                        slew++;               
               
                  directionFlat = 0;
               
           }
                  
      
      }
      
      if(slew >=4 )
         return true;
         
      return false;   
      
      

}




enlace de vídeo https://www.youtube.com/watch?v=k9Zo0SgrMCA



No puedo borrar el post anterior, he copiado todo en html y he quitado la etiqueta que necesito para editar el post

 
Leo59:
¿Qué pasa? ¿Por qué hay zonas azules que quedan fuera?




Francamente, no indago en los códigos de los demás a menos que sea necesario. Encontrarás todo en el Doc, la ayuda y la base de datos. Hay muchos ejemplos.
 

Podrían decirme cómo organizar el recálculo de la moneda de depósito.

Mi robot calcula el lote en función del saldo y los fondos de la cuenta. Pero esto es, por supuesto, si el depósito es en dólares.

Si abro un depósito en rublos, entonces tengo que dividir el lote por la tasa de usdrur.

¿Puedo permitir que mi Asesor Experto mire la moneda del depósito y, si es necesario, la divida por usdrur?

 
neman:

Podrían decirme cómo organizar el recálculo de la moneda de depósito.

Mi robot calcula el lote en función del saldo y los fondos de la cuenta. Pero esto es, por supuesto, si el depósito es en dólares.

Si abro un depósito en rublos, entonces tengo que dividir el lote por la tasa de usdrur.

¿Puedo permitir que mi Asesor Experto mire la moneda del depósito y, si es necesario, la divida por usdrur?

Bueno, AccountCurrency() y en base a esto formar un par y determinar la Oferta.
 

Lo entiendo, sólo que no sé cómo escribirlo correctamente

Por ejemplo:


double KursS=iClose("USDRUR",H1,0);

Si AccountCurrency() = USD, entonces K=1;

Si AccountCurrency() = RUR, entoncesK=KursS ;

¿Cómo puedo registrar esto correctamente?


 
neman:

Lo entiendo, sólo que no sé cómo escribirlo correctamente

Por ejemplo:


double KursS=iClose("USDRUR",H1,0);

Si AccountCurrency() = USD, entonces K=1;

Si AccountCurrency() = RUR, entoncesK=KursS ;

¿Cómo puedo registrar esto correctamente?


Te lo has saltado. En primer lugar, hay que definir la moneda "USDRUR". Si su depósito es en euros, debe establecer la tasa EURUSD.

Es decir, debe definir la cadena K_Símbolo = "USDRUR"; si el depósito es en rublos.

Creo que puedes averiguar cómo hacerlo. Si el corredor abre cuentas en otras divisas, serían controles adicionales.

 
AlexeyVik:

Eres tú quien se lo ha saltado. En primer lugar, tienes que determinar que la moneda que quieres es "USDRUR". Si quiere guardar el depósito en euros, tiene que establecer la tasa EURUSD.

Es decir, definir la cadena K_Símbolo = "USDRUR"; con la condición de que el depósito sea en rublos.

Creo que puedes averiguar cómo hacerlo. Si el corredor abre cuentas en otras divisas, serían controles adicionales.

En palabras, todo tiene sentido para mí. La cuestión era cómo grabar...

 
neman:

Con palabras lo entiendo todo. La cuestión era cómo escribirlo...


Bueno, hay de todo en nuestro diálogo.

string K_Symbol;

if(AccountCurrency() == "USD") K = 1;
else
if(AccountCurrency() == "RUR")
 {
  K_Symbol = "USDRUR";
  K = iClose(K_Symbol, H1, 0);
 }
else
if(AccountCurrency() == "EUR")
 {
  K_Symbol = "EURUSD";
  K = iClose(K_Symbol, H1, 0);
 }


La segunda opción es un poco más corta...

string K_Symbol;

if(AccountCurrency() == "USD") K = 1;
else
 {
  if(AccountCurrency() == "RUR") K_Symbol = "USDRUR";
   if(AccountCurrency() == "EUR") K_Symbol = "EURUSD";
  K = iClose(K_Symbol, H1, 0);
 }


Y la tercera opción, para todas las ocasiones y todas las monedas del depósito, un poco más complicado, y no voy a hacer, y listo no tienen, no había necesidad de escribir.

 

¡Muchas gracias!

 
pycha:

Si hace las cosas más fáciles, voy a volver a publicar correctamente. he escrito una función para detectar flytags y me tropezó en algo que no entiendo. declaración if no funciona. tal vez escribí algo mal en alguna parte, quiero que usted tome una nueva mirada, porque no entiendo por qué. incluso grabó un video depurador que muestra la igualdad de valores, pero no funciona. por favor, poner mi cerebro de nuevo en ))))




enlace de vídeo https://www.youtube.com/watch?v=k9Zo0SgrMCA



No puedo borrar el post anterior, he copiado todo en html y he quitado la etiqueta que se necesita para editar el post

¿Has oído algo sobre la comparación de números reales?

La solución al problema se sugirió hace mucho tiempo y más de una vez.

He borrado el post anterior.