[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 236
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
Non sono sicuro di cosa significhi la ricerca binaria. È una ricerca in un array bidimensionale? Ma io ne ho uno monodimensionale.
Ordinate l'array, se non l'avete fatto finora, e per il controllo della corretta preparazione in init() togliete il suo contenuto, non tutti ma i primi 20-50 elementi.
P.S. Vedi l'identità di binario e bidimensionale? Il terminale vede le vostre cifre in codice "binario" e per il corretto funzionamento della funzione ArrayBsearch(), richiede un ordinamento preliminare dell'array.
Non vedi niente lì?
Vedo che ArrayBsearch() restituisce 0 (come indice dell'elemento) OVUNQUE. Nella 0a cella della vostra matrice c'è il numero 1,0408. Torniamo al codice:
Ora sostituite i valori variabili ottenuti in questa condizione (sul carite Bid è nell'intervallo 0,8-0,9, prendiamo il massimo di questo intervallo - 0,9): se (0,9000 - 1,0408 <= 0) OrderSend(). La condizione è soddisfatta GIUSTAMENTE!!! Cerca gli errori nel completare la tua matrice. Presumibilmente non avete prestato attenzione a questa clausola nella funzione ArrayBsearch():
Nota: la ricerca binaria gestisce solo gli array ordinati. La funzione ArraySort() è usata per ordinare una matrice numerica.
P.S. La stampa non dovrebbe essere fornita come immagine, ma con la selezione simultanea di diverse linee (usando SHIFT - se non sai come farlo) di questa stessa stampa (10-20 linee sono sufficienti) nella finestra del terminale, poi copia e incolla le linee selezionate nel tuo post come codice con il pulsante SRC.
Ho capito che il problema è nella funzione ArrayBsearch()
Ma ancora non capisco perché questa funzione non dovrebbe restituire immediatamente il singolo elemento N dell'array con il valore più vicino al valore
Perché altrimenti massiv[S-1] e massiv[S+1]dovrebbero partecipare ai calcoli ?
Ho capito che il problema è nella funzione ArrayBsearch()
Ma ancora non capisco perché questa funzione non dovrebbe restituire immediatamente il singolo elemento N dell'array con il valore più vicino al valore
Perché altrimenti la massa[S-1] e la massa[S+1]partecipano ai calcoli ?
Il problema non è nella funzione ArrayBsearch(), ma nella preparazione dell'array passato in questa funzione!!!
E poi è solo un "volo di fantasia"... La tua immaginazione...
La funzione ArrayBsearch() restituisce il valore UNO, e per trovare la causa della stortura del codice, ho stampato i valori: (nell'ordine) il valore della cella dell'array con indice S (è stato restituito dalla funzione ArrayBsearch()), il valore più vicino a sinistra nell'array dato (massive[]) con indice S-1, il valore più vicino a destra con indice S+1, e il prezzo al momento dell'apertura dell'ordine.
Sei arrivato in prima elementare e stai cercando di sbirciare in una classe di diplomati... Torna alla tua classe!!! - analogia. :))
Il problema non è nella funzione ArrayBsearch(), ma nella preparazione dell'array passato a questa funzione!!!
E poi era solo un "volo di fantasia"... La tua immaginazione...
La funzione ArrayBsearch() restituisce il valore UNO, e per trovare la causa della stortura del codice, ho stampato i valori: (nell'ordine) il valore della cella dell'array con indice S (è stato restituito dalla funzione ArrayBsearch()), il valore più vicino a sinistra nell'array dato (massive[]) con indice S-1, il valore più vicino a destra con indice S+1, prezzo al momento dell'apertura dell'ordine.
Sei arrivato in prima elementare e stai cercando di sbirciare in una classe di diplomati... Torna alla tua classe!!! - analogia. :))
L'unica cosa che non capisco ancora....
Qui ho bisogno di inizializzare un array con 3000 valori e l'ho fatto usando EXCEL.
Mi sembrava un processo lungo, multi-fase e noioso.
Ci sono algoritmi migliori per questo processo?
Grazie.
L'ho fatto usando EXCEL.
Attraverso il DDE o attraverso Lazybones?
Scrivete una macro e automatizzatela, se avete una storia. Lo apri in Word con la scrittura macro abilitata, lo converti lì, poi lo salvi in csv con la macro e usi il DDE. Non conosco il formato dei file di dati di Metatrader e Metastock, non ho tempo per capirlo da solo. E se doppio array[3000] con zeri, allora usa for, ma sono inizializzati con zeri, se non mi sbaglio.
Capito. Grazie mille per il tuo aiuto.... Sono sempre un po' di fretta e vado avanti con me stesso.... Penso che ci siano più pro che contro a questo nel complesso.
L'unica cosa che non capisco è ....
Ho bisogno di inizializzare un array di 3000 valori e l'ho fatto usando EXCEL.
L'ho trovato un processo lungo, multi-fase e noioso.
Ci sono algoritmi migliori per questo processo?
Grazie.
Si prega di postare il file dove sono scritti i valori di inizializzazione...
Attraverso il DDE o attraverso il Loafer?
Scrivete una macro e automatizzatela, se avete una storia. Aprilo in Word con la scrittura macro abilitata, convertilo lì e in excel, salvalo lì come macro csv e usa il DDE. Il formato dei file di dati di metatrader e metastock non dipende da me, non ho tempo per capirlo. Se non mi sbaglio, sono inizializzati con degli zeri, attraverso for.
Grazie, lo studierò. Sono appena andato a Service - ho salvato la storia di una coppia in un file EXCEL.
Divido una singola colonna con tutti i dati per colonne, metto una virgola dopo ogni valore nella colonna con i prezzi di apertura - la traspongo in una riga - ordinata - e la incollo nell'editor, cioè
incluso il file mqh.
Se avete riferimenti a DDE o Lazybear, fatemelo sapere.
Grazie.
Sono semplicemente andato in Servizio - ho salvato la storia di una coppia in un file EXCEL.
Divido una singola colonna con tutti i dati in colonne. Nella colonna con i prezzi di apertura, metto una virgola dopo ogni valore - la traspongo in una riga - la ordino - e la incollo nell'editor, cioè nel
incluso il file mqh.
Se ci sono riferimenti al DDE o alle informazioni di Lazybear, per favore dateli.
Grazie.
Non avete bisogno di DDE o di lazybones. Hai solo bisogno di una funzione (10 righe di codice). Lancia il file nella directory del terminale e l'array sarà inizializzato... Dammi il file.
Non avete bisogno di un DDE o di un Lazybones. Avete solo bisogno di una funzione (10 righe di codice). Lanciate il file nella directory del terminale e l'array sarà inizializzato... Dammi il file.
Ho bisogno di inizializzare 2 array
1.doppio
2.datetime
Nel primo array, alcuni valori dopo la linea 1120 per qualche motivo - si sono convertiti in un formato diverso dopo che ho cambiato il segno di separazione da virgola a punto (avevo una virgola lì)
Se non è difficile, mandami anche queste 10 righe di codice ...... Le studierò.... Voglio imparare a farlo da solo in futuro.
Grazie mille per il vostro aiuto.
Strano, il file è di 140 chili, l'ho archiviato e allegato al post..... e non c'è.
Riduci il file, ho bisogno solo di un paio di righe...