[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 289

 
artmedia70:

Avete provato a fare una funzione separata per cercare la presenza/assenza di elementi?

Per esempio:

Magic - numero magico di EA (impostato nelle impostazioni o generato automaticamente da EA). Poi per controllare l'assenza di posizione Buy da simbolo corrente dovrebbe essere scritto:

Nota - non solo un comando per aprire un ordine Buy, ma una funzione completa con la gestione di tutti i parametri di apertura dell'ordine e gli errori restituiti dal server.

Tuttavia, il tester può fare a meno di controllare i parametri inseriti per valori validi...



Potresti per favore mostrare questa funzione per intero come codice di lavoro pronto all'uso con la funzione iniziale e tutte le descrizioni? E meglio ancora, Magic è generato dall'EA automaticamente, cioè, come ho capito, questo è il caso in basso.

bool ExistPositions(string sy="", int op=-1, int mn=-1) {
   if (sy=="") sy=Symbol();
   for (int i=0; i<OrdersTotal(); i++) {
      if (OrderSelect(i, SELECT_BY_POS)) {
         if (OrderMagicNumber()!=mn)   continue;
         if (OrderSymbol()!=sy)        continue;
         if (OrderType()>1)            continue;
         if (op<0 || OrderType()==op)  
            return(True);
         }
      }
   return(False);
}

if (!ExistPositions(Symbol(), OP_BUY, Magic)) {
   // ... Тут код для вызова функции открытия позиций ... 
   }
 
kolyango:


Potresti per favore mostrare questa funzione per intero come codice di lavoro pronto all'uso con la funzione iniziale e tutte le descrizioni? E meglio ancora, Magic è generato automaticamente dall'EA, cioè, come ho capito, questo è il caso in basso.


Le magie non possono essere generate, se il computer si blocca (mancanza di corrente, passi di gatto sulla tastiera, ...), ad un nuovo avvio l'EA perderà il controllo dell'ordine (se non scrive magiks su un file).
 
icas:

Non puoi generare un magik, se il tuo computer si blocca (perde l'alimentazione, il gatto calpesta la tastiera, ...) al riavvio, l'EA perderà il controllo degli ordini (se non scrive magik su un file).
Dipende da come generare. Il mio EA è generato usando symbol, tf e non va da nessuna parte ma normalmente si riprende al riavvio. L'ho preso una volta da qualche parte e l'ho usato da allora.
 
snail09:
Dipende da come si genera. I miei sono generati usando un simbolo, tf, e non vanno da nessuna parte ma riprendono normalmente al riavvio. L'ho preso una volta da qualche parte e l'ho usato da allora.

Posso vedere un esempio di come...
 
snail09:
Dipende da come si genera. I miei sono generati usando un simbolo, tf, e non vanno da nessuna parte ma riprendono normalmente al riavvio. L'ho preso una volta da qualche parte e l'ho usato da allora.

Interessante, citare il codice per favore.
 

Ciao a tutti, di nuovo...)

Come faccio a far apparire gli oggetti (qualsiasi oggetto) sul grafico in primo piano e NON dietro le candele...? c'è una funzione per questo?

 
OvA:

Ciao a tutti, di nuovo...)

Come faccio a far apparire gli oggetti (qualsiasi oggetto) sul grafico in primo piano e NON dietro le candele...? c'è una funzione per questo?


Non ci sono livelli sul grafico (imho), passo a mostrare le barre ma non le candele, ci si può abituare con il tempo.
 
icas:

Non ci sono livelli sul grafico (imho), io passo a mostrare le barre ma non le candele, ci si può abituare con il tempo.

Capisco, grazie...

 
Inoltre, come faccio a rimuovere lo script dal grafico?
 

Beh, eccone uno grezzo. Preso dal consigliere di ikatsko. Forse è l'autore, forse no, lo stile sembra quello di KimIV... Non lo so, ma mi piace, lo sto usando ora.

MagicNumber=1000+func_Symbol2Val(Symbol())*100+func_TimeFrame_Const2Val(Period());

//+------------------------------------------------------------------+
//| Numeric value for symbol name
//+------------------------------------------------------------------+
int func_Symbol2Val(string symbol) {
     if(symbol=="AUDCAD") {
        return(1);
     } else if(symbol=="AUDJPY") {
        return(2);
     } else if(symbol=="AUDNZD") {
        return(3);
     } else if(symbol=="AUDUSD") {
        return(4);
     } else if(symbol=="CHFJPY") {
        return(5);
     } else if(symbol=="EURAUD") {
        return(6);
     } else if(symbol=="EURCAD") {
        return(7);
     } else if(symbol=="EURCHF") {
        return(8);
     } else if(symbol=="EURGBP") {
        return(9);
     } else if(symbol=="EURJPY") {
        return(10);
     } else if(symbol=="EURUSD") {
        return(11);
     } else if(symbol=="GBPCHF") {
        return(12);
     } else if(symbol=="GBPJPY") {
        return(13);
     } else if(symbol=="GBPUSD") {
        return(14);
     } else if(symbol=="NZDUSD") {
        return(15);
     } else if(symbol=="USDCAD") {
        return(16);
     } else if(symbol=="USDCHF") {
        return(17);
     } else if(symbol=="USDJPY") {
        return(18);
     } else if(symbol=="XAUUSD") {
        return(19);
     } else if(symbol=="XAGUSD") {
        return(20);
     } else if(symbol=="XAUEUR") {
        return(21);
     } else if(symbol=="XAGEUR") {
        return(22);
     } else {
        Comment("unexpected Symbol");
        return(0);
     }
}

//+------------------------------------------------------------------+
//| Time frame interval appropriation function                      |
//+------------------------------------------------------------------+
int func_TimeFrame_Const2Val(int Constant) {
     switch(Constant) {
         case     1: return(1);
         case     5: return(2);
         case    15: return(3);
         case    30: return(4);
         case    60: return(5);
         case   240: return(6);
         case  1440: return(7);
         case 10080: return(8);
         case 43200: return(9);
     }
}