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
E poi devi cercare a cosa si riferiscono quelle quattro parentesi in basso.
A proposito, mi rende molto nervoso quando l'annidamento è più di due livelli. Cerco di non scriverlo mai in questo modo, distribuendo il codice sulle funzioni.
E anche quando ci sono due livelli di annidamento - assicuratevi di scrivere commenti dopo ogni parentesi di chiusura - quale blocco seppellisce (diciamo, l'intestazione di un ciclo duplicato).
Per quanto riguarda lo stile, ecco il mio codice per selezionareuna posizione storica per MT5 (da un mago specificato, simbolo, con un intervallo di date specificato):
La classe storia stessa è una discendente dell'interfaccia astratta CTradeHistoryI:
Selezionando la storia richiesta - è possibile ricalcolare i suoi componenti (posizioni per MT5 o ordini per MT4), e ottenere un'interfaccia a qualsiasi componente come interfaccia astratta:
Per MT4 - ci sono classi di storia corrispondenti anche ereditate da queste interfacce - così, allo stesso tempo, la multipiattaforma è fornita - un EA non ha bisogno di scoprire dove lavora, tutto il lavoro con la storia è fatto attraverso le interfacce astratte.
Non scrivere funzioni che sono sempre costanti e non cambiano mai in questo stile
Scrivili in modo conciso, tanto nessuno li guarda mai, e ci vogliono la metà delle righe
Dato che queste funzioni non cambiano, perché hai messo un mucchio di parentesi graffe inutili? Rimuoveteli e tutto sarà compresso. Perché il tuo esempio sembra assurdo: tu stesso hai offuscato il codice e poi inventi delle stampelle per ridurlo.
Sono d'accordo, si possono tagliare altre 3 righe, e accorciare il codice, ma lo scopo non era quello di mettere il codice in uso, infatti non è nemmeno mio, ma di accorciare, e tali funzioni possono essere messe cinque in una schermata, non una. Dopo di che i programmi sono più facili da leggere e non devi scorrere 150 volte. E il peso del file diminuisce.
Buon lavoro, mi piace, ma non mi piace l'OOP e cerco di farne a meno. Non mi piacciono i processori con threads splitting (per esempio, 4 core e 8 threads). Deve essere chiaro che lo splitting e qualsiasi virtualizzazione è una perdita di prestazioni e perdita di tempo macchina per la sua implementazione, sia che si tratti di threads splitting nel kernel o di virtualizzazione di funzioni nel codice.
Sono d'accordo, si possono tagliare altre 3 righe, e accorciare il codice, ma lo scopo non era quello di mettere il codice in uso, infatti non è nemmeno mio, ma di accorciare, e tali funzioni possono essere messe cinque in una schermata, non una. Dopo di che i programmi sono più facili da leggere e non devi scorrere 150 volte. E il peso del file è ridotto.
Sinceramente.
Schermo di lavoro da 27 pollici
Non ho intenzione di rileggerlo, mi limiterò a citare:"Non scrivere funzioni che sono sempre costanti e non cambiano mai in quello stile"
Perché puntare gli occhi su una funzione che viene scritta una volta sola quando la piattaforma viene rilasciata e non cambierà mai in futuro? Modificate spesso il codice nelle funzioni per ottenere la dimensione del lotto, il numero di ordini e il tipico? Allora perché allungarlo su 3 schermi di un monitor 32"?
P.S. Il codice allegato è falsificato da kodobase.
Contro domanda ))) Ho tali funzioni sono nel file MyFunc.mqh, non vedo il minimo senso nel comprimerlo. Perché, per risparmiare 10-20 KB sul disco? E francamente parlando, tale codestream mi fa star male ))
Contro domanda ))) Ho tali funzioni nel file MyFunc.mqh, non vedo il minimo senso nel comprimerlo. Perché, per risparmiare 10-20 KB sul disco? Per essere onesti, questo codestream mi fa star male )).
Per quanto mi riguarda, il codice dovrebbe essere chiaro, breve, veloce da lavorare e dovrebbe funzionare in tutte le condizioni senza errori.
Sinceramente.
Contro domanda ))) Ho tali funzioni nel file MyFunc.mqh, non vedo il minimo senso nel comprimerlo. Perché, per risparmiare 10-20 KB sul disco? E francamente parlando, un tale codestream mi fa star male ))
Quindi, conta: 1000 EAs x 10 Kb = 10 Mb - devi già pensare ad economizzare ))
Contro domanda ))) Ho tali funzioni nel file MyFunc.mqh, non vedo il minimo senso nel comprimerlo. Perché, per risparmiare 10-20 KB sul disco? E francamente parlando, tale codestream mi fa star male ))
Anch'io, ma molto tempo fa sono arrivato alla conclusione che il codice deve essere compatto in posti dove non lo si guarda mai, dove non viene mai corretto e mai lo sarà.
La dispersione del codice utente con tutti questi slot è un ulteriore mal di testa, perché sarà necessario trascinare e rilasciare i file in diversi terminali o condividerli. Naturalmente, potete trasferire gli includenti a tutti i terminali, ma se cambiate o aggiungete qualcosa in un terminale, allora tutti devono essere sostituiti con uno nuovo.
Gli Expert Advisors e gli indicatori sono così piccoli che non ha senso distanziarli dal corpo del programma. Per essere più corretti, non sono piccoli, sono file singoli, non è come un sito con 10 000 pagine dove non si può fare a meno di classi e inludi. Inoltre, ci sono strutture ora, e sono sufficienti per scrivere codice compatto e funzionante al 100%.
A proposito, mi rende molto nervoso quando l'annidamento è più di due livelli. Cerco di non scriverlo mai in questo modo, distribuendo il codice sulle funzioni.
E anche quando ci sono due livelli di annidamento - assicuratevi di scrivere commenti dopo ogni parentesi di chiusura, quale blocco seppellisce (per esempio, l'intestazione di un ciclo duplicato).
Per quanto riguarda lo stile, ecco il mio codice per selezionare laposizione storica per MT5 (per mago specificato, simbolo, con intervallo di date specificato):
La classe storia stessa è una discendente dell'interfaccia astratta CTradeHistoryI:
Selezionando la storia richiesta - è possibile ricalcolare i suoi componenti (posizioni per MT5 o ordini per MT4), e ottenere un'interfaccia a qualsiasi componente come interfaccia astratta:
Per MT4 ci sono classi di storia corrispondenti che ereditano anche da queste interfacce - così allo stesso tempo viene fornita la multipiattaforma - l'Expert Advisor non ha bisogno di scoprire dove lavora, tutto il lavoro con la storia viene fatto attraverso interfacce astratte.
Sembra bello, possiamo anche guardare TRACE_*** e ASSERT?
Per trascinare un file su un altro terminale, o per condividerlo, è necessario trascinare non solo un file, ma diversi. Potete, naturalmente, trasferire gli inludi a tutti i terminali, ma se cambiate o aggiungete qualcosa in un terminale, allora dovete sostituirlo con uno nuovo in tutti i terminali.