consulente esperto - domande varie - pagina 19

 

#OrderType() string - Open

Sotto il codice mi dà '1' per Sell OrderType ma ho bisogno di ottenere OrderType sting uno di loro 'Sell, Buy così via', non voglio ottenere numerico.
Ho bisogno di un commento utile, per favore, grazie.

IntegerToString( OrderType() );
 

Usa un comando di commutazione.

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

case OP_BUY:

break;
}
 
Marco vd Heijden:

Usa un comando di commutazione.

Grazie per il commento, lo proverò presto.
 

Potete anche usare la direttiva #define se volete semplificare ulteriormente le cose:

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

if(OrderType()==sell)
 
honest_knave:

Puoi anche usare la direttiva #define se vuoi semplificare ulteriormente le cose:

Io uso già #define che è stato copiato per i codici pip e point dal signor William.
Così dopo il tuo commento ho fatto un po' di ricerche su di esso, penso di poterlo usare nei miei script.

Grazie per il tuo utile commento.

 
Marco vd Heijden:

Usa un comando switch.

Grazie mille amico.

È la prima volta che provo Switch Operator per il mio EA.
Quindi vorrei dire che ho imparato un po' di più su questo, ma non ho esperienza per questo operatore.

Prima di provarlo nei miei EA di prova ho solo bisogno di chiedere, vuoi dire che potrei usare il codice qui sotto, per favore? (il mio test ea ha già 500 linee - e ho intenzione di confondermi per OrderType() che converte in stringa)

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

Grazie in anticipo.

// --- seconda volta modificato

Forse la mia preoccupazione non è chiara.
Ho già speso un sacco di tempo per questo problema che ho davvero giocare questo operatore, ma non risultato.

Il codice qui sotto mi dà il numerico.

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

// EURAUD,M30: OrderType: 0

Ma cerco di ottenere il seguente risultato.

// EURAUD,M30: OrderType: Buy

Ho solo bisogno di un commento utile.
Potete aiutarmi ( / darmi un consiglio), per favore?

 

ID

Valore

Descrizione

OP_BUY

0

Operazione di acquisto

OP_VENDITA

1

Operazione di vendita


    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");
     }
 

Grazie mille @Marco.

Finalmente ho capito, ma mi aspettavo di scrivere il codice di una delle " Funzioni di conversione "... la mia aspettativa sbagliata mi stava confondendo.
In questo momento, sto usando 3 oggetti "HLine", ora ho copiato questo per entrambi i casi (0 e 1). Per ora funziona bene.
Anche " Order Properties " ha 6 valori, quindi vorrei applicare la stessa funzione di stampa (per esempio oggetto, colore, stile, larghezza e così via...) a 0, 2, 4.

D: Potrei usare il seguente metodo?

( Funzione di stampa solo per esempio)

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

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

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

Grazie mille in anticipo!

 

No perché i valori sono:

ID

Valore

Descrizione

OP_BUY

0

Operazione di acquisto

OP_VENDITA

1

Operazione di vendita

OP_BUYLIMIT

2

Ordine pendente con limite di acquisto

OP_SELLLIMIT

3

Ordine pendente con limite divendita

OP_BUYSTOP

4

Ordine pendente di acquisto stop

OP_SELLSTOP

5

Ordine pendente di vendita stop


Quindi il caso 2 e il caso 4 non sono uguali a OP_BUY

Sono OP_BUYLIMIT e OP_BUYSTOP quindi sono cose diverse.

A meno che non sia questo che intendi, ma sarebbe più chiaro dire

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 perché i valori sono:
Quindi il caso 2 e il caso 4 non sono uguali a OP_BUY

#OrderType() string - Closed

Dopo il tuo ultimo commento sento che non posso combinare i casi 0, 2, 4.
Grazie @Marco vd Heijden per il tuo tempo e il tuo aiuto.