Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 569

Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Ed ecco la soluzione proposta:
Ciao, ho una piccola domanda mentre studio MQL4. Il problema si trova nel tutorial su questo sito. Ecco la condizione: Problema 25. Creare un programma in cui si realizzano le seguenti condizioni: se il tasso supera il livello specificato, emette un messaggio in cui le parole indicano che il tasso supera il livello (fino a 100 punti); negli altri casi, il messaggio informa che il tasso non supera il livello specificato.
Ed ecco la soluzione proposta:
Mostra le possibili soluzioni. Utile per la formazione.
Ci sono altre opzioni. Ci sono altri errori.
Fidati di più di te stesso. Esperimento.
Ciao, studiando MQL4 ho una piccola domanda. Il compito si trova nel tutorial su questo sito. Ecco la condizione: Problema 25. Creare un programma che realizzi le seguenti condizioni: se il tasso supera il livello specificato, emette un messaggio che dice che il tasso supera il livello (fino a 100 punti); negli altri casi, il messaggio che dice che il tasso non supera il livello specificato.
Ed ecco la soluzione proposta:
P.S.
In particolare, l'utilità di questo esempio nel trattare un array,
la possibile rappresentazione dei dati in parole,
l'uso della funzione NormalizeDouble e la variabile predefinita Point.
Possibilità di scegliere un hobby più facile.
Apparentemente, non c'è modo di dichiarare variabili esterne direttamente nella classe. Allora quali sono le opzioni? Se non voglio dichiarare nello stesso Expert Advisor o da qualche altra parte queste variabili esterne specifiche, che sono necessarie solo quando si usa questa classe. Penso che l'unica opzione sia fare un inluder che dichiari queste variabili esterne. E poi la classe dovrebbe esservi inclusa, giusto?
Poi, per chiamare la classe, è necessario includere la classe stessa. È così? O ci possono essere altre varianti?
Semplicemente non mi sembra buono. Un sacco di file di inclusione annidati da creare... Ecco perché ho questa domanda.
O è ancora possibile, come in una normale libreria, dichiarare variabili esterne e importare le librerie richieste prima di dichiarare la classe? Intendo qualcosa del genere:
Non l'ho mai visto prima. Quindi mi chiedo se sto andando nella direzione giusta...Emettetele come variabili globali sullo schermo del terminale attraverso Comment. Non c'erano zeri, solo numeri negativi. Poi ho cambiato
Trasferendo il codice dell'indicatore all'Expert Advisor, si verifica un errore. Dividere a zero nella parte di codice
...
Emettetele come variabili globali sullo schermo del terminale tramite Comment. Non c'erano zeri, solo numeri negativi. Poi ho cambiato
...
a .
...
tutto è andato a posto e l'ha rimesso a posto. Nessun errore! Qual è stata la causa? Ho spento di nuovo internet.Ho anche ottenuto l'errore "zero divide" dove lo zero non poteva essere passato nel denominatore della frazione. Ora, prima di dividere, faccio un controllo formale come:
E l'errore è scomparso. Cioè il compilatore dovrebbe essere istruito su cosa fare se denominatore=0 anche se il programmatore è sicuro al 100% che non ci sia lo 0.
Ciao, puoi aiutarmi con il codice? Ho bisogno che l'EA faccia la cosa elementare - aprire posizioni quando si avvicina alla linea verticale (cioè rigorosamente il tempo, non il prezzo), cioè per un intervallo di shi specificato, che ho qui 120 cioè come ho capito - 2 minuti. Il colore della linea dovrebbe determinare se è comprare o vendere. Ho cercato in Internet e l'ho riscritto e ho ottenuto quanto segue:
void OnTick()
{
int AllObject = ObjectsTotal();
for ( int i = 0; i < AllObject; i++)
{
string NameObj = ObjectName(i);
Colorrr = ObjectGet(NameObj, OBJPROP_COLOR);
Vremyaaa = (ObjectGet(NameObj, OBJPROP_TIME) - shi);
if(Vremyaaa == TimeLocal())
break;
}
int kolpos = 0;
if((Colorrr == Green)||(Colorrr == Aqua)){operacia = "OP_BUY";}
if((Colorrr == Red)||(Colorrr == Purple)){operacia = "OP_SELL";}
for (int pos = 0; pos < OrdersTotal(); pos++)
{
if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES) == true)
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
kolpos++;
}
}
}
if(kolpos == 0)
{
if (iTime(NULL,0,1) == Vremyaaa)
{
int ticket = OrderSend(Symbol(), operacia, Lot, Bid, 10, 0, 0, "5", Magic, 0, col);
}
}
}
Ciao, puoi aiutarmi con il codice? Ho bisogno che l'EA faccia la cosa elementare - aprire posizioni quando si avvicina alla linea verticale (cioè rigorosamente il tempo, non il prezzo), cioè per un intervallo di shi specificato, che ho qui 120 cioè come ho capito - 2 minuti. Il colore della linea dovrebbe determinare se è comprare o vendere. Ho cercato in Internet e l'ho riscritto:
void OnTick()
{
int AllObject = ObjectsTotal();
for ( int i = 0; i < AllObject; i++)
{
string NameObj = ObjectName(i);
Colorrr = ObjectGet(NameObj, OBJPROP_COLOR);
Vremyaaa = (ObjectGet(NameObj, OBJPROP_TIME) - shi);
if(Vremyaaa == TimeLocal())
break;
}
int kolpos = 0;
if((Colorrr == Green)||(Colorrr == Aqua)){operacia = "OP_BUY";}
if((Colorrr == Red)||(Colorrr == Purple)){operacia = "OP_SELL";}
for (int pos = 0; pos < OrdersTotal(); pos++)
{
if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES) == true)
{
if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
kolpos++;
}
}
}
if(kolpos == 0)
{
if (iTime(NULL,0,1) == Vremyaaa)
{
int ticket = OrderSend(Symbol(), operacia, Lot, Bid, 10, 0, 0, "5", Magic, 0, col);
}
}
}
Se il vostro tempo coincide con quello del terminale, potete usare TimeLocal(), ma TimeCurrent() è più affidabile .
Cambiare il tipo di variabile operacia in int e rimuovere le virgolette OP_BUY e OP_SELL
Se avete lo stesso tempo del tempo del terminale, potete usare TimeLocal(), ma TimeCurrent() è più affidabile .
Cambiare il tipo di variabile operacia in int e rimuovere le virgolette OP_BUY e OP_SELL
Grazie. Riguardo a TimeCurrent è vero, il mio tempo non corrisponde a quello del server. Risolto, ma ancora non funziona... Non scrive alcun errore nel log.
P.S. Nel mio post precedente, il codice senza spazi è stato inserito in qualche modo. Ma penso di aver messo tutte le parentesi graffe correttamente.
MT4 - 625, messaggio del tester quando si cerca di testare i gufi con la libreria:
2014.03.29 18:38:48.753 'C:\Program Files\Admiral1\MQL4\Libraries\ingLib094.mq4' non è la versione a 32 bit
Prima che il gufo si compilasse senza problemi, e anche la biblioteca non aveva una sola parola. In effetti, non lo capisco affatto.
Il mio sistema (intendo Windows) è a 32 bit, non ne ho mai avuto un altro. Settimo.
La biblioteca è la mia nativa, tutta la strada con essa. Va bene in tempo reale sulla nuova costruzione. Anche con altri gufi. E in tester nelle versioni precedenti senza problemi.
Ma non vuole aprirsi in tester, e la ragione viene addirittura risucchiata dalle dita.
E non c'è una parola sui casi a 32 bit in tutti i manuali.