
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
Beh, i nomi inglesi sono stati inventati per un motivo.
Posso darvi un altro esempio in cui i nomi russi uccideranno il vostro codice:
Si passa il codice a un cliente che non ha il cirillico. Questo è tutto. .... tutto andato..... :-)
E il cliente ha bisogno del codice o della soluzione?
Il cliente vuole il codice o la soluzione?
Ecco perché è necessario decidere il target e gli utenti finali.
Mettiti nei panni dell'utente e dimentica tutto quello che hai fatto: come si sentirà l'utente?
Tutto avrà un senso per lui o per lei?
Ecco perché è necessario decidere il target e gli utenti finali.
Mettiti nei panni dell'utente e dimentica tutto quello che hai fatto: come si sentirà l'utente?
Lui o lei capirà tutto?
Sono d'accordo. Scrivo in due lingue. Posso farlo solo in inglese.
Lei, in quanto anglofilo, si senta libero di ignorare la mia decisione. Ci sono poche parole inglesi.
A proposito, visto che sei così bravo con il codice inglese, per favore aiutami con il codice proposto da Nikolay Semko:
Onestamente, non capisco come funziona. Ha molte sillabe inglesi corte. Proprio quello che ti piace.
Questa è la cosa che so sul 30% dell'inglese, e solo tecnico, non conversazionale.
Nella programmazione, ci sono solo un paio di dozzine di parole, e si possono memorizzare dopo aver scritto letteralmente 1-2 programmi.
P.S. Il codice che hai postato, ci sono solo 5 variabili, come possono non capire?
Questo è il punto, conosco circa il 30% dell'inglese, e solo tecnico, non conversazionale.
Nella programmazione ci sono solo un paio di dozzine di parole, e possono essere memorizzate scrivendo letteralmente 1-2 programmi.
P.S. Nel codice che hai postato ci sono solo 5 variabili, come fai a non capirle?
Bene, ho contato 30 variabili nel mio codice (nella funzione principale). E fino a quanti ne conta? (scherzo).
Il 30% di inglese tecnico è molto forte. Sai quanto è ricco l'inglese tecnico?
Un paio di dozzine di parole in programmazione? Ora capisco perché non ci capiamo)).
zy. Se intendi il codice di Nikolai, illumina come funziona.
A proposito, a giudicare dalla foto, la decomposizione del colore qui non è completa. Solo la metà. La gamma dovrebbe estendersi dal completamente bianco al completamente nero, attraverso tutte le sfumature di un colore particolare.
Sì, hai ragione.
Ho cercato di implementarlo e di analizzare e visualizzare il tuo codice.
Ecco cosa ne è venuto fuori:
La tua variante
la mia variante:
Lasciatemi spiegare:
La linea bianca è la linea del tono (somma dei colori R+B+G) - idealmente dovrebbe essere una linea diagonale dritta. Io l'ho implementato, voi no.
Le linee rosse, blu e verdi sono linee di rapporto di colore. Chiamiamole armoniche dello spettro. Idealmente dovrebbero essere verticali. Ma è impossibile realizzarlo dopo che il colore massimo iniziale è diventato 255. Ma è possibile raggiungere una situazione in cui non ci saranno punti di flessione (contrassegnati da frecce rosse) e fare un arco liscio. Allora il gradiente apparirà senza "grumi". Questo problema esiste sia nel tuo che nel mio algoritmo. Può essere risolto, ma non ne vedo ancora il motivo, quindi è una perdita di tempo. In pratica ho bisogno di un gradiente da un colore all'altro. Questo è facilmente realizzabile con le armoniche strettamente verticali dello spettro (la sfocatura dell'armonica in alto è normale, poiché è una conseguenza dell'arrotondamento). In questo problema, però, il gradiente va dal nero al bianco attraverso un terzo colore, ed è per questo che esistono queste pieghe.
Strano, ero sicuro che stavi scrivendo in MQL5. Ma oltre al programma del 4 in sé, hai anche lo stile di programmazione del 4. Ho provato a trasferire il tuo algoritmo al 5 ma non ha funzionato, perché mostra solo alcune strisce di colore. Questo accade molto probabilmente a causa della confusione con l'ambito delle variabili, ma risolverlo perché il codice non è suscettibile di debug è estremamente difficile, quindi ho rinunciato. Capisco che siete abituati al vostro stile di programmazione e non capite il mio stile. È reciproco perché sono abituato a vedere la struttura di un programma invece di leggerlo come un libro. E nel tuo codice è impossibile fare il debug e capire in quale momento della definizione delle variabili, i lunghi nomi di variabili occupano il 90% del testo del programma, di conseguenza la struttura del programma si perde, dissolvendosi in questi lunghi nomi di variabili color barbie. Tutto sommato, il tuo codice mi sembra personalmente una specie di sadomaso.
Inoltre, il tuo algoritmo è risultato essere decine di volte più lento, e la ragione non è nemmeno MQL4. Non riuscivo a capirlo. Qualitangenti, quali triangoli quando c'è solo RGB?
E cerca di padroneggiare l'unione - cosa molto utile.
Per capire meglio cosa intendo, dovresti provare ad eseguire entrambi gli script che ho allegato con il tuo algoritmo (MQL4) e il mio (MQL5).
Anche voi avete queste disavventure:
Solo che non capisco ancora, è un problema di lentezza di MT4 o un bug nel tuo algoritmo.
1. Nikolai, anche confrontando le prime due foto che hai citato, si vede subito che c'è una foschia grigia che incombe sulla tua versione. Guardate attentamente. E nella mia versione il colore è molto più luminoso. Pensi che la tua versione trasmetta meglio il colore?
2. Ho preso la tavolozza dei colori di Windows come riferimento. Ho ottenuto una corrispondenza di colore del 99%. Controllate i vostri colori per vedere se corrispondono a quelli di Windows. Stampate una serie di tonalità come ho fatto io. Poi apri le proprietà del grafico e la tavolozza. Inserisci nelle finestre dei valori dei componenti del colore iniziale e poi muovi il cursore su e giù. I numeri cambieranno. Cercate questi numeri sulla vostra stampa e vedete quanto bene corrispondono.
3. Comprendo che l'attuazione specifica può variare. Non ho controllato il mio algoritmo specificamente per la velocità, e non l'ho ottimizzato per la velocità. La vostra soluzione può sembrare che vi dia una velocità maggiore. Non lo nego.
4. C'è una nozione di prisma in ottica. C'è una nozione di rifrazione della luce. Partivo proprio da questo paradigma. Ho tracciato 256*256 (da 0 a 255). Poi ho tracciato delle linee. Ho trovato l'asse di rifrazione del colore. Si trova al centro del grafico. Ogni componente è una curva composta da due segmenti. In totale il colore ha tre linee curve, ognuna delle quali si rifrange nel centro del grafico, dividendosi in due segmenti. Ogni segmento ha il suo angolo. Il colore originale ha una coordinata sul grafico. Si può trovare tra le sue sfumature. Il mio compito era quello di trovare il colore iniziale, determinare gli angoli di tutti e sei i segmenti e ottenere i valori di ogni componente lungo la sua linea.
5. Le tangenti sono i rapporti tra i cateti adiacenti e quelli opposti. È necessario per il calcolo degli angoli dei segmenti e il calcolo dell'altezza dei cateti opposti (che è il valore di un componente in un tono di colore concreto).
6. Per quanto riguarda gli stili di programmazione, suggerisco di non discuterne. Per l'essenza dell'argomento non è rilevante.
7. Sui contrattempi - forse lo sono. Ma non li ho ancora incontrati. Perciò non lo so.
A proposito, dimmi come funziona la decomposizione del colore nella tua versione. Non lo capisco completamente.
Solo non capisco ancora, è un problema di lentezza di MT4 o un bug nel tuo algoritmo.
Sulla differenza di velocità degli algoritmi:
1. Il tuo algoritmo riempie l'array di uint, mentre il mio riempie l'array di stringhe. (Ho bisogno esattamente di stringhe, per estrarre facilmente i componenti necessari dall'ombra e poi lavorare con loro). Potete vedere la differenza nella velocità di riempimento di entrambi i tipi di array dallo script qui sotto.
2. il tuo algoritmo funziona su МТ5, e il mio su МТ4. La differenza nella velocità di riempimento degli array su queste piattaforme è stata discussa da me qui -https://www.mql5.com/ru/forum/222333. Dallo script qui sotto potete vedere voi stessi la differenza. Mettetelo su entrambe le piattaforme e confrontatelo.
Ho misurato la velocità di 30 000 celle di array di int e stringhe su MT4 e MT5 (ms):
Come potete vedere, il mio algoritmo è più lento per due motivi:
Sulla differenza di velocità degli algoritmi:
1. il tuo algoritmo riempie un array uint, mentre il mio riempie un array di stringhe. (Ho bisogno di stringhe per estrarre facilmente i componenti necessari dall'ombra e poi lavorare con loro). Potete vedere la differenza nella velocità di riempimento di entrambi i tipi di array dallo script qui sotto.
2. il tuo algoritmo funziona su МТ5, e il mio su МТ4. La differenza nella velocità di riempimento degli array su queste piattaforme è stata discussa da me qui -https://www.mql5.com/ru/forum/222333. Dallo script qui sotto potete vedere voi stessi la differenza. Mettetelo su entrambe le piattaforme e confrontatelo.
Ho misurato la velocità di 30 000 celle di array di int e stringhe su MT4 e MT5 (ms):
Come potete vedere, il mio algoritmo è più lento per due motivi: