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

 

Come faccio a sapere se un simbolo è disponibile per un conto senza doverlo aprire nel mercato?

 
leonerd:

Come faccio a sapere se un simbolo è disponibile per un conto senza doverlo aprire nel mercato?

Di solito sul sito web del DC, dove sono descritti i tipi di conto, ci sono anche le specifiche del contratto. Se la specifica è diversa per ogni tipo di conto, allora le liste di strumenti disponibili riflettono solo quelli che sono disponibili per quel tipo di conto. In realtà, alcune società di brokeraggio mostrano nel Market Watch non solo i simboli che possono essere scambiati, ma anche altri simboli. Sono disponibili per il conto, le quotazioni vanno, ma non si può fare trading. Se siete interessati a come elencare programmaticamente tutti i simboli disponibili, allora usate le funzioni SymbolsTotal, SymbolName.

 

C'è una funzione.

double XX=0;

double x()
{
  XX++;

return(XX);
}


Ogni chiamata di funzione cambierà la variabile ХХ, e ho bisogno che ХХ sia esterna (secondo la mia logica), ma ogni chiamata di funzione è iniziata con ХХ che è 0 e di conseguenza return(ХХ) restituirà il suo valore. Cioè, non capisco come rendere la variabile XX esterna e la funzione potrebbe essere chiamata "autonomamente", in isolamento. Esattamente per mezzo di MQ4. Grazie!

 
Александр:

C'è una funzione.


Ogni chiamata di funzione cambierà la variabile XX, e ho bisogno che XX sia esterna (per la logica che voglio), ma ogni chiamata di funzione è iniziata con XX che è 0 e di conseguenza return(XX) ha restituito il suo valore. Cioè, non capisco come rendere la variabile XX esterna e la funzione potrebbe essere chiamata "autonomamente", in isolamento. Esattamente per mezzo di MQ4. Grazie!

L'approccio di aumentare il contatore è completamente incomprensibile. Perché non aumentarlo direttamente, perché abbiamo bisogno di una funzione?

 
Александр:

C'è una funzione.


Ogni chiamata di funzione cambierà la variabile ХХ, e ho bisogno che ХХ sia esterna (secondo la logica che voglio), ma ogni chiamata di funzione è iniziata con ХХ che è 0 e di conseguenza return(ХХ) restituirà il suo valore. Cioè, non capisco come rendere la variabile XX esterna e la funzione potrebbe essere chiamata "autonomamente", in isolamento. Esattamente per mezzo di MQ4. Grazie!

Quindi all'interno della funzione si azzera e basta.

double XX=0;

double x()
{
  XX=0;
  XX++;
return(XX);
}
 
Alexey Viktorov:

Quindi, all'interno della funzione, azzerate e questo è tutto.

Restituirà sempre 1)

 
Vitaly Muzichenko:

In questo modo verrà sempre restituito 1)

Per come è presentato il codice, sì, restituirà sempre 1. Ma la mia comprensione è che questa non è una versione molto ben semplificata della funzione, ecco perché ho suggerito questa soluzione.

Bene, diciamo che la funzione ha un ciclo while e abbiamo bisogno di tracciare quante iterazioni del ciclo ci sono state.

In caso contrario, aspetteremo il chiarimento della domanda.

 

La difficoltà è che (per ricordare il valore attuale) creo una variabile esterna. Ma se chiamo la funzione più volte e in momenti diversi, otterrò lo stesso valore di quella variabile. E ho bisogno di diversi "set" autonomi della stessa funzione. Non voglio usare i loop, per ovvie ragioni. Un loop è un esempio perfetto di ciò di cui ho bisogno. È come una funzione autonoma che vive solo durante il ciclo.

 

La difficoltà è che (per ricordare il valore attuale) creo una variabile esterna. Ma se chiamo la funzione più volte e in momenti diversi, otterrò lo stesso valore di quella variabile. E ho bisogno di diversi "set" autonomi della stessa funzione. Non voglio usare i loop, per ovvie ragioni. Un loop è un esempio perfetto di ciò di cui ho bisogno. È come una funzione autonoma che vive solo durante un ciclo.


Questo è ciò di cui ho bisogno.

double XX=0;

double x()
{
  XX=0;
  XX++;
return(XX);
}
///////////////
int start()

{

 Print(" x() = ',x()); // Проверка в 10:00, вызывал функцию в 08:00.
 x() = 40;// условно конечно

///////////

 Print(" x() = ',x()); // Проверка в 10:00, здесь вызвал вызывал функцию раньше в 01:00.
 x() =70;// условно конечно

return(0);
}
 
La via d'uscita più semplice è avere diverse funzioni identiche con nomi diversi (senza contare i loop). Ma non so quante volte devo chiamarlo, quindi voglio una soluzione elegante.
Motivazione: