Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 1087
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
Buon pomeriggio. Per favore aiutatemi a scrivere il seguente codice, per un EA. Voglio fare attraverso un array (se avete un'opzione migliore, per favore aiutatemi). In generale, l'EA invia messaggi, ma voglio che li invii attraverso un array (temporaneo). Cioè quando inizia l'invio del messaggio, l'Expert Advisor controlla se il messaggio è stato inviato in precedenza (controlla se il messaggio è memorizzato nell'array), se no, invia il messaggio, se il messaggio viene trovato, allora l'invio viene omesso. Spero che sia chiaro) Grazie mille!
Sei sicuro della dichiarazione del problema?
Semplicemente, ci sono delle opzioni:
- Non ripetere l'ultimo messaggio
- per ignorare quello superato (viene impostato un certo intervallo di tempo), vale a dire che il messaggio deve essere ripetuto.
P.S. La prima variante è un caso speciale della seconda, ma è molto più facile da implementare. La tua definizione del problema è anche un caso speciale della seconda variante con ritardo infinito.
Se vi interessa, ecco la soluzione del vostro problema.
Definiamo due array: uno di testo, che memorizza i messaggi, e uno di indice, per la ricerca dei messaggi.
La matrice degli indici è di tipo int. Nella prima dimensione scriviamo il checksum del messaggio di testo. Nel secondo - il numero di riga del primo array. Una matrice di indici è ordinata per la prima dimensione.
Riceviamo un nuovo messaggio. Leggi il suo checksum. Usando la funzione ArrayBsearch() trovate tale messaggio. Se non viene trovato, allora il messaggio è originale. Aggiungilo all'array di messaggi e, checksum con riferimento all'array di indici, ricordando di ordinarlo.
Quali sono le opzioni per il checksum? Io prenderei questo: prenderei in considerazione il numero di caratteri e il checksum del testo. Il checksum del testo, per esempio, è la somma dei codici dei caratteri. Date le recenti modifiche, non può superare 65 536*256. Cioè, il checksum del messaggio può apparire come segue:
il numero di caratteri moltiplicato per 10 milioni e aggiungere il checksum del testo.
pro! c'è un problema con la linea sull'angolo.
Ho costruito unTRENDBYANGLE usando le coordinate.
- Ho bisogno di un angolo.
aiuto dice che la linea creata dal programma - l'angolo di ZERO è ok.
Ho eseguito lo stesso codice di nuovo alle stesse coordinate senza toccare la linea - appare il numero corretto di gradi, non zero. perché, come posso farlo bene la prima volta?
o ho dato una coordinata - chiedo l'angolo - dice 0. poi ne do un'altra - dice l'angolo delle coordinate precedenti. senza senso
Ho spostato questo commento all'inizio perché nessuno ha risposto, ma ne ho davvero bisogno =/
È possibile implementare questo:se premo un tasto qualsiasi, una parte del codice dell'indicatore si accende (responsabile della creazione di un oggetto con un clic del mouse), poi se si verifica un evento (la seconda parte del codice, l'evento può essere, creando lo stesso oggetto per esempio), allora la prima parte del codice si disattiva (e se non lo faccio, l'oggetto viene creato da ogni clic), e viene eseguito anche quando si preme il tasto, e così via intorno)
È possibile. Aggiungere il blocco OnChartEvent. In esso, tieni traccia delle pressioni necessarie, delle misure e descrivi la reazione ad esse, secondo la tua idea.
Non posso implementare la disabilitazione di una parte del codice per il periodo prima della pressione del tasto =/ C'è un modo più semplice, ma c'è un problema:ho bisogno diriportare il suo valore all'inizio della prima istruzione if quando il tasto viene premuto.
Questo codice verrà eseguito solo se il mouse viene cliccato, con 3 linee di codice che controllano l'evento della pressione di un tasto. E queste 3 righe di codice vengono eseguite in pochi millisecondi, e anche se id durante la chiamata corrente OnChartEvent è in grado di cambiare, la possibilità che durante il tempo, esecuzione di 3 righe di codice, il tasto sarà premuto = 0%. Ovviamente, è inutile controllare l'id, all'interno di un blocco che si attiva ad un certo valore di id, e aspettare lì un valore diverso. In primo luogo, controllate la pressione del tasto, in un blocco separato, salvate in una variabile il numero del tasto o semplicemente il fatto di premere il tasto desiderato. E con questa variabile, attivate o disattivate il pezzo di codice situato nel blocco per il clic del mouse.
Grazie mille!) Questa è la linea che stavo cercando if (id==CHARTEVENT_CLICK && key == 'D'), non poteva collegare due eventi, questo non funzionava if (id==CHARTEVENT_CLICK & id==CHARTEVENT_KEYDOWN) Grazie mille ancora)
Ciao, ho una funzione che calcola la dimensione media di una candela dalle ultime n candele. a volte emette i seguenti valori: "5e-05.0". non ne ho bisogno, per mia vergogna non so quanto siano e come tagliarli. NormalizeDouble() non aiuta. per favore ditemi come calcolare tali numeri programmaticamente per tagliarli
Ciao, ho una funzione che calcola la dimensione media di una candela dalle ultime n candele. a volte emette i seguenti valori: "5e-05.0". non ne ho bisogno, per mia vergogna non so quantitativamente quanti e come tagliarli. NormalizeDouble() non aiuta. per favore ditemi come calcolare tali numeri programmaticamente per tagliarli
Cosa tagliare, allora:
Candele così piccole, 5 pips, solo a bassa latitudine, in un conto a 5 cifre, su timeframe bassi possono verificarsi. Se non avete a che fare con lo scalping, ma la media è a volte così piccola per n candele, allora l'implementazione della funzione dovrebbe essere sospetta.