Dinamico (numero magico) - Casuale - Pagina 3

 

Publi

Dinamico (numero magico) - Casuale

 

Publi

Pagina 3 di 5 PrimaPrima 12345 UltimaUltima
Risultati da 21 a 30 di 41

Discussione: Dinamico (numero magico) - Casuale

  1. #21
    Citazione Originariamente Scritto da ;
    Credo che Kennyhubbard si meriti il ??????merito non io.
    Sì, grazie a Kenny e tutti su questo thread, è stato illuminante!

  2. #22

    Citazione Originariamente Scritto da ;
    Saresti così gentile a postare il codice o spiegare come funziona? Grazie, --RR
    ecco un approccio più generico, una funzione di hash. Dagli una stringa univoca e restituirà un numero univoco: Codice inserito** * crea un numero intero positivo per l'uso come numero magico. * * La funzione accetta una stringa come argomento e calcola * un valore hash di 31 bit. L'hash non ha * certamente la forza di una vera funzione di hash crittografica *, ma dovrebbe essere più che sufficiente per generare un * ID univoco da una stringa e le collisioni non dovrebbero verificarsi. * * usalo nella tua funzione init () in questo modo: * magic = makeMagicNumber (IndiorShortName () Symbol () Period ()); * * dove nome sarebbe il nome del tuo EA. Il tuo EA otterrà quindi un numero magico unico per ogni strumento e intervallo di tempo * e questo numero sarà sempre lo stesso, ogni volta che metti * lo stesso EA sullo stesso grafico. * * I numeri generati durante la modalità di test differiscono da quelli * generati su un grafico dal vivo. *int makeMagicNumber (stringa chiave) {int i, k; int h = 0; if (IsTesting ()) {chiave = _ tasto ; } for (i = 0; ilt; StringLen (chiave); i ) {k = StringGetChar (key, i); h = h k; h = bitRotate (h, 5);/ruota 5 bit} per (i = 0; ilt; StringLen (chiave); i ) {k = StringGetChar (chiave, i); h = h k;/ruota a seconda del valore del carattere h = bitRotate (h, k 0x0000000F); }/ora torniamo indietro nella nostra stringa per (i = StringLen (chiave); igt; 0; i -) {k = StringGetChar (chiave, i - 1); h = h k;/ruota a seconda degli ultimi 4 bit di h h = bitRotate (h, h 0x0000000F); } return (h 0x7fffffff); }** * Ruota un valore intero a 32 bit bit-saggio * il numero specifio di bit a destra. * Questa funzione è necessaria per i calcoli * nella funzione hash makeMacicNumber () *int bitRotate (int value, int count) {int i, tmp, mask; mask = (0x00000001 lt; lt; count) - 1; tmp = maschera di valore; valore = valore gt; gt; contare; valore = valore | (tmp lt; lt; (32 - count)); valore di ritorno); }

  3. #23
    Ciao Bluemele
    Interessante discussione, anzi ... Penso che incorporerò parte di questa roba nel nostro EA LB ... 7bit: interessante tagliare una stringa per creare un numero magico unico. Io uso un semplice algoritmo di hash DJB2 per costruire valori hash a 32 bit di stringhe. Viene utilizzato dai compilatori Java per creare le tabelle dei simboli (quindi è meglio averne una buona!). ?? molto semplice ma molto efficiente sulle stringhe (rapporto di collisione molto basso). [Modifica] ecco il codice mql: Codice inserito/ ---------------------------------- -------------------------------- int hash_string (string s)/ -------- -------------------------------------------------- -------- {//questo è l'hash della stringa djbgo algo int h = 5381, l = StringLen (s), i; for (i = 0; ilt; l; i ) h = h * 33 StringGetChar (s, i); ritorno (h); } SQ.

  4. #24

    Citazione Originariamente Scritto da ;
    Io uso un semplice algoritmo di hash DJB2 per costruire valori hash a 32 bit di stringhe. Viene utilizzato dai compilatori Java per creare le tabelle dei simboli (quindi è meglio averne una buona!).
    DJB2 è una funzione hash molto semplice, probabilmente la più semplice che può essere trovata e che funziona ancora in qualche modo. Non lo definirei buono. ?? semplice. Se guardi da vicino, noterai che lo spirito di djb2 si trova nel mio hash, infatti il ??????mio algoritmo è stato completamente ispirato a djb2 e crc32. djb2 ??????sposterà 5 bit e aggiungerà l'hash e la chiave originali (h * 33 k è equivalente a h * 32 h k che è equivalente a (hlt; lt; 5) h k mentre la mia funzione di hash nel il primo passo fa solo (hlt; lt; 5) k), ma poi lo ripeterà nei due passi successivi con cambi di bit diversi e non fissi). Se si converte l'output di djb2 in binario per stampare i 32 bit come una sequenza di 1 e 0 sullo schermo per vedere come vengono distribuiti si noterà che quando si cambia un carattere di input nella stringa di input, molto spesso cambierà solo un bit nel valore hash e non ci vuole molto tempo per produrre intenzionalmente una collisione. Quando fai lo stesso con la mia funzione di hash, noterai che ogni singolo bit che viene modifio nella stringa di input cambierà quasi la metà di tutti i bit nel valore hash e avrai difficoltà a provare a produrre intenzionalmente una collisione. Consiglio vivamente di fare questo esperimento per vedere come si comporta la funzione hash rispetto ad altre funzioni hash. Poiché il tempo di esecuzione è solo marginalmente importante qui e le 15 o più righe di codice non fanno male neanche a te, dovresti davvero considerare di usare qualcosa di più forte di djb2. La funzione di hash di cui sopra fa parte della mia libreria free_functions gratuita che può essere trovata sul mio sito web.

  5. #25
    Io uso un EA semi-manuale, disegno linee sul grafico, linea di colpi di prezzo ed entra nel commercio. Quindi per me il numero magico è ancora importante ma posso gestirlo in questo modo ... Una volta effettuato l'ordine, il codice posiziona un'etichetta di testo sul grafico con il numero majic. Rimane lì per sempre. Al riavvio apro le proprietà degli esperti e cambio me stesso il MN. Non ho quasi mai dovuto farlo, il più delle volte ho bisogno di farlo dopo aver ricomposto il codice dopo le mod.

  6. #26
    Se l'MN viene generato ad esempio per USDCAD sul timeframe H1 e viene inserita una transazione, l'utente cambia il grafico a 30 minuti, come gestisce l'ordine EA? Penso che questo sia il posto in cui la gamma potrebbe essere d'aiuto, quindi una volta posizionato può gestire tutti gli scambi all'interno del suo intervallo, MA si potrebbe ottenere un duplio se non si fa attenzione con il passaggio dei tempi di xhart. Immagino che il periodo potrebbe essere difficile da codificare. Io uso un EA dove metto le linee sul grafico e gli ordini vengono inviati. Se cambio il lasso di tempo questo potrebbe rovinarmi. Direi che in questo caso sto meglio usando un hash modifio di qualche tipo.

  7. #27

    Citazione Originariamente Scritto da ;
    Penso che questo sia il posto in cui la gamma potrebbe essere d'aiuto, quindi una volta posizionato può gestire tutti gli scambi all'interno del suo intervallo, MA si potrebbe ottenere un duplio se non si fa attenzione con il passaggio dei tempi di xhart. Immagino che il periodo potrebbe essere difficile da codificare.
    Credo che sia sempre possibile renderlo specifico per il tempo durante l'ordinamento degli ordini. Ovviamente raramente lo ordino secondo i tempi.

  8. #28

    Citazione Originariamente Scritto da ;
    Ma perché mai vorremmo mai cambiare i numeri casualmente tra i mestieri?
    Quindi il broker non può tenere traccia di ciò che stai facendo in quella particolare sessione di trading? Non lo so, forse è eccessivo? Anche se è ancora un'idea relativamente semplice.

  9. #29

    Citazione Originariamente Scritto da ;
    Io uso un EA dove metto le linee sul grafico e gli ordini vengono inviati. Se cambio il lasso di tempo questo potrebbe rovinarmi. Direi che in questo caso sto meglio usando un hash modifio di qualche tipo.
    Ho EA simili (tempo indipendente, uno di loro è quasi come si descrive con linee di disegno, ecc.). Invece di creare l'hash con il codice inserito magic = makeMagicNumber (WindowExpertName () Symbol () Period ()); uso semplicemente Inserted Code magic = makeMagicNumber (WindowExpertName () Symbol ()); e questo mi darà la stessa magia su tutti i tempi di quella coppia. Problema risolto.

  10. #30

    Citazione Originariamente Scritto da ;
    Quindi il broker non può tenere traccia di ciò che stai facendo in quella particolare sessione di trading? Non lo so, forse è eccessivo? Anche se è ancora un'idea relativamente semplice.
    Non mi importa di cosa il broker tenga traccia. Commercio con lui in modo che possa vedere i miei mestieri. Se vuole guardarmi fare trading in tempo reale perché non ha nient'altro da fare, può farlo comunque. Se vuole sapere perché sono così redditizio, può eseguire ogni tipo di analisi statistica sulla mia storia, non mi interessa. Se vuole rispecchiare le mie operazioni con $ BIG_LOTS, per favore lascialo fare, il peso dei suoi lotti sarà dalla mia parte. Se la tua egy non è redditizia, non è perché il broker sta rovinando le tue operazioni, è semplicemente perché la tua egy non è redditizia. Questo è il 99,999% dei motivi per cui un ego fallisce. Perché semplicemente non funziona. Se il broker intenzionalmente rovinasse le mie operazioni, chiuderei il mio account perché non potevo impedirgli di farlo comunque, non importa quanto fossero casuali i miei numeri. Non puoi nasconderti dal tuo broker, o ti fidi di lui e scambi con lui o meno.

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Il sito di forexmad utilizza cookie
Il sito di forexmad utilizza cookie, alcuni dei quali già installati. Per avere maggiori informazioni sui nostri cookie ti preghiamo di cliccare qui. Ti preghiamo di cliccare sul bottone a destra per accettare i nostri cookie. Se continui a navigare sul sito di forexmad assumeremo che sei d'accordo ad utilizzarli.