asesor experto - preguntas varias - página 19

 

#OrderType() cadena - Abierto

El código de abajo me da ' 1 ' para Sell OrderType pero necesito obtener OrderType sting uno de ellos ' Sell, Buy so on ', no quiero obtener numérico.
Necesito comentarios útiles, por favor, gracias.

IntegerToString( OrderType() );
 

Utiliza un comando de conmutación.

switch (OrderType())
{
case OP_SELL:
  
break;

case OP_BUY:

break;
}
 
Marco vd Heijden:

Utiliza un comando de conmutación.

Gracias por el comentario, lo probaré pronto.
 

También puedes utilizar la directiva #define si quieres simplificar aún más las cosas:

#define buy  OP_BUY
#define sell OP_SELL
if(OrderType()==buy)

if(OrderType()==sell)
 
honest_knave:

También puedes utilizar la directiva #define si quieres simplificar aún más las cosas:

Yo ya uso #define que es copiado para los códigos pip y point del Sr. William.
Así que después de su comentario sólo un poco investigado al respecto, creo que puedo usarlo en mi cualquier scripts.

Gracias por tu útil comentario.

 
Marco vd Heijden:

Utiliza un comando de cambio.

Muchas gracias.

Es la primera vez que pruebo el Operador Switch para mi EA.
Así que me gustaría decir que se aprendió un poco más sobre esto, pero no tengo experiencia para este operador.

Antes de intentarlo en mi prueba de EA sólo necesito preguntar, ¿quieres decir que podría usar como el código de abajo, por favor? ( mis ea's de prueba ya tienen 500 líneas - y voy a confundir para OrderType() convertir a la cadena )

for ( ... )
{
    switch ( OrderType() )
    {
        case    0  :    ObjectCreate( ... name + " Buy" ... );
                        ObjectSetInteger(chart_ID,name + " Buy",OBJPROP_COLOR,clr);
                        // ...
        break;
        case    1  :    ObjectCreate( ... name + " Sell" ... );
                        // ...
        break;
    }
}

Gracias de antemano.

// --- segunda vez editado

Tal vez mi preocupación no es clara.
Ya he pasado mucho tiempo para este tema realmente jugando este operador, pero no resultado.

El código de abajo me da un número.

Print( "OrderType: ", IntegerToString( OrderType() ) );

// EURAUD,M30: OrderType: 0

Pero trato de obtener el siguiente resultado.

// EURAUD,M30: OrderType: Buy

Sólo necesito comentario útil.
¿Puede usted ayudarme ( / darme consejos ), por favor?

 

ID

Valor

Descripción

OP_BUY

0

Operación de compra

OP_SELL

1

Operación de venta


    switch(OrderType())
     {
      case 0:
       Print( "OrderType: buy" );
      break;
      
      case 1:
       Print( "OrderType: sell" );
      break;
     }

o

   if(OrderType()==0)
     {
      Print("OrderType: buy");
     }

   if(OrderType()==1)
     {
      Print("OrderType: sell");
     }
 

Muchas gracias @Marco.

Finalmente lo conseguí, pero esperaba escribir el código de una de las " Funciones de Conversión"... mi expectativa errónea me estaba confundiendo.
En este momento, estoy usando 3 objetos " HLine ", ahora copié eso para ambos casos ( 0 y 1 ). Hasta ahora funciona bien.
También " Order Properties " tiene 6 valores, así que me gustaría aplicar la misma función de impresión (por ejemplo, objeto, color, estilo, ancho, etc.) a 0, 2, 4.

P: ¿Podría utilizar el siguiente método?

( Función de impresión solo por ejemplo )

switch ( OrderType() )
{
    case 0: Print( "OrderType: buy" );
            // ...
    break;

    case 2: Print( "OrderType: buy" );
            // ...
    break;

    case 4: Print( "OrderType: buy" );
            // ...
    break;
}

¡Muchas gracias de antemano!

 

No porque los valores son:

ID

Valor

Descripción

OP_BUY

0

Operación de compra

OP_SELL

1

Operación de venta

OP_BUYLIMIT

2

Orden pendiente de límite de compra

OP_SELLLIMIT

3

Orden pendiente de límitede venta

OP_BUYSTOP

4

Orden pendiente de stop de compra

OP_SELLSTOP

5

Orden pendiente de stop de venta


Entonces el caso 2 y el caso 4 no son iguales a OP_BUY

Son OP_BUYLIMIT y OP_BUYSTOP por lo que son cosas diferentes.

A no ser que se refiera a esto pero aclararía decir

switch ( OrderType() )
{
    case 0: Print( "OrderType: buy" );
            // ...
    break;

    case 2: Print( "OrderType: buy Limit" );
            // ...
    break;

    case 4: Print( "OrderType: buy Stop" );
            // ...
    break;
}
 
Marco vd Heijden:

No porque los valores son:
Así que el caso 2 y el caso 4 no son iguales a OP_BUY

Cadena #OrderType() - Cerrado

Después de tu último comentario siento que no puedo combinar los casos 0, 2 y 4.
Gracias @Marco vd Heijden por tu tiempo y tu ayuda.