Un suggerimento per la facilità d'uso del MetaEditor - pagina 6

 
Комбинатор:
)) Beh, sai come essere scortese, ho già capito, ma non ho visto una giustificazione del tuo punto di vista o una confutazione del mio.

Belinsky certamente non si esprimerebbe così in un luogo pubblico. Quindi non si accettano reclami.

E nessuna giustificazione per il "riflesso di vomito" che i vostri riferimenti alle autorità non possono dare.

 
Alexey Viktorov:

Questo è un codice replicoide.

Parlavo di spazi dopo la virgola che separa i parametri e i caratteri

Si legge meglio

di questo.


Così ho dato un esempio del contrario ))

Ecco un esempio del mio codice, direttamente dal vivo

    void SetThresholds(double &thresholdOpen[], double &thresholdClose[])
    {
        int signalIdx = 0;  ///////////////// !!!!!!!!!!!!!!!! пока задано жестко
        CSignalFilter *signal = (CSignalFilter*)m_SignalArr.At(signalIdx);
        if (CheckPointer(signal) != POINTER_INVALID)
        {
            signal.SetThresholds(thresholdOpen, thresholdClose);
        }
    }

***

 

Già notato in precedenti occasioni, lo dirò di nuovo per un nuovo pubblico.

Oggettivamente, ci sono standard de-facto per gli stili. Ora (e negli ultimi 10 anni) ce ne sono solo 2 principali per i linguaggi con sintassi tipo C++/Java. Questi stili sono stati espressi da Combinator. Sono utilizzati nella stragrande maggioranza delle aziende dell'industria del software. Si sono dimostrati, sono provati e testati, sono logici, comprensibili e familiari alla grande maggioranza dei codificatori professionisti.

Cercare di promuovere qualcos'altro, senza benefici e solo con difetti, è un fallimento. Non riconoscere questi difetti non è altro che testardaggine. Sono oggettivi. È chiaro che MQ stesso è usato e agganciato a questo stile, ma è solo un altro bug. È così che a volte il software si rifiuta di correggere i bug conosciuti, dicendo che ci sono già un mucchio di prodotti di terze parti che si sono attaccati a questo comportamento errato. In realtà, in tutti questi casi, dovremmo cercare una soluzione che ci permetta di mantenere il vecchio comportamento per la compatibilità all'indietro, ma fare le correzioni con un cosiddetto "aggiornamento del protocollo" o fork. Nel contesto degli stili, c'è una soluzione semplice: uno styler che può essere clonato. Potrebbe essere già stato fatto un centinaio di volte.

Nello stile MQ, tra l'altro, i problemi riguardano non solo il posizionamento delle parentesi, ma anche lo stile dei commenti - per definizione non possono sovrascrivere il codice, che è ora osservato nello stile MQ.

 
Alexey Volchanskiy:

Così ho dato un esempio del contrario ))

Ecco un esempio del mio codice, direttamente dal vivo

***

Allora di cosa si trattava il furbetto?

 
Stanislav Korotky:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Вот это стиль! :)

Sergey Kravchuk, 2009.11.24 11:27


Вот кусочек кода из MACD Sample.mq5 по-ихнему и по-моему:

Styler5                                  -|- Мой стиль
-------                                  -|- ---------
bool CSampleExpert:: LongModified()       -|- bool CSampleExpert:: LongModified()
  {                                      -|- {  
   bool res=false;                       -|-   bool res = false;
//--- check for trailing stop            -|-   //--- check for trailing stop
   if( InpTrailingStop>0)                 -|-   if ( InpTrailingStop > 0)
     {                                   -|-   { 
      if( m_symbol.Bid()- m_position. Price -|-     if ( m_symbol.Bid() - m_position. Pric
        {                                -|-     {
         if( m_position. StopLoss()< m_symb -|-       if ( m_position. StopLoss() < m_symb
           {                             -|-       {
            double sl= m_symbol.Bid()- m_a -|-         double sl = m_symbol.Bid() - m_a
            double tp= m_position. TakePro -|-         double tp = m_position. TakeProfi
            //--- modify position        -|-         //--- modify position
            if( m_trade. PositionModify( Sy -|-         if ( m_trade. PositionModify( Symbo
               printf("Long position by  -|-           printf(" Long position by % s to
            else                         -|-         else
              {                          -|-         {
               printf("Error modifying p -|-           printf(" Error modifying positi
               printf("Modify parameters -|-           printf(" Modify parameters : SL
              }                          -|-         }
            //--- modified and must exit -|-         //--- modified and must exit fro
            res=true;                    -|-         res = true;
           }                             -|-       }
        }                                -|-     }
     }                                   -|-   } 
//---                                    -|-   //---
   return( res);                          -|-   return( res);
  }                                      -|- }

Non c'è da imparare lo stile, ma la versione a destra è "Il mio stile", come se l'avessi scritta io. Quello a sinistra è molto più difficile da leggere per qualche motivo. Non sono sicuro che sia una questione di abitudine.


Vladimir Karputov:
forum, kodobase dovrebbe essere riempito di codice nello stesso design.

Assolutamente no! C'è stato un tempo in cui era necessario cambiare lo stile dei nomi dei metodi/campi per la pubblicazione. Per esempio, invece di this.i, scrivete this.m_i. Gli stessi requisiti per i nomi delle classi: che inizino con la lettera C. Fortunatamente, il buon senso ha prevalso e non abbiamo più richieste del genere.

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Un suggerimento per la facilità d'uso di MetaEditor

Combinator, 2017.09.28 15:00

Io uso lo stile Olman.

void f()
{
   // some code
   if (condition)
   {
      // some code
   }
}

O per lo meno K&R.

void f() {
   // some code
   if (condition) {
      // some code
   }
}

Questi due stili sono in vantaggio sugli altri con un margine enorme. Entrambi hanno una nidificazione del codice chiaramente leggibile. Si può vedere dove il blocco appartiene, nessun problema di formattazione.

Il tuo stile è sotto-GNU, gli svantaggi che ho espresso sopra. GNU almeno ha lo stesso rientro da e verso le linee curve.

Si scopre che ho sempre usato lo stile Olman! K&R - fastidioso per qualche motivo, anche se ho visto che ai leader delle olimpiadi piace molto questo stile.

Forum sul trading, sistemi di trading automatico e test di strategia

Un suggerimento per la facilità d'uso di MetaEditor

Combinator, 2017.09.28 15:15

Già che ci siamo, l'altra cosa imbarazzante di ME è il completamento automatico dipendente dal registro.

In tutti i buoni editor è insensibile alle maiuscole e alle minuscole, quindi rende la vita più facile.

Sono completamente d'accordo.
 
Rashid Umarov:

Puoi trattarmi come vuoi. Non sono una banconota da cento dollari per accontentare tutti.

L'importante è che io abbia espresso un'opinione che è stata ascoltata e che potrebbe anche essere presa in considerazione.

 
Stanislav Korotky:

Già notato in precedenti occasioni, lo dirò di nuovo per un nuovo pubblico.

Oggettivamente, ci sono standard de-facto per gli stili. Ora (e negli ultimi 10 anni) ce ne sono solo 2 principali per i linguaggi con sintassi tipo C++/Java. Questi stili sono stati espressi da Combinator. Sono utilizzati nella stragrande maggioranza delle aziende dell'industria del software. Si sono dimostrati, sono provati e testati, sono logici, comprensibili e familiari alla grande maggioranza dei codificatori professionisti.

Cercare di promuovere qualcos'altro, senza benefici e solo con difetti, è un fallimento. Non riconoscere questi difetti non è altro che testardaggine. Sono oggettivi. È chiaro che MQ stesso è usato e agganciato a questo stile, ma è solo un altro bug. È così che a volte il software si rifiuta di correggere i bug conosciuti, dicendo che ci sono già un mucchio di prodotti di terze parti che si sono attaccati a questo comportamento errato. In realtà, in tutti questi casi, dovremmo cercare una soluzione che ci permetta di mantenere il vecchio comportamento per la compatibilità all'indietro, ma fare le correzioni con un cosiddetto "aggiornamento del protocollo" o fork. Nel contesto degli stili, c'è una soluzione semplice: uno styler che può essere clonato. Potrebbe essere già stato fatto un centinaio di volte.

A proposito, nello stile MQ i problemi riguardano non solo la parentesi, ma lo stile dei commenti - essi per definizione non possono prevalere sul codice, che è ora osservato nello stile MQ.


Aggiungo riguardo ai commenti - provate a processarli con qualsiasi sistema di autodocumentazione, rimarrete delusi.

 
Alexey Viktorov:

Allora di cosa si trattava il furbetto?


br-r-r-r-r, ho dato un esempio di codice senza spazi e virgole

rimuovere i trattini bassi.

 
Alexey Volchanskiy:

br-r-r-r-r, ho dato un esempio di codice senza spazi e virgole

rimuovere i trattini bassi

chi ha dato un esempio di codice senza spazi?
 
Rashid Umarov:

Ti permetti di "vomitare".

Roche, qual è il problema del conato di vomito? Anch'io ho lo stile MQ, e sono sarcastico nel dirlo?

Formattate il kodobase come volete, può anche essere fatto automaticamente quando si carica il codice, senza sforzare il codificatore. Sto solo ricordando: scrivo il codice, lo stile per MQ, lo salvo con un nuovo nome e lo carico per la revisione. Poi cancello lo styling e continuo a scrivere. Non è una sciocchezza?

Non ho risorse per uno styler personalizzabile. Non è che qualcuno se lo faccia andare bene.
Ma perché prendere la croce, e andare a dire a tutti che la tua fede è quella giusta (senza assolutamente argomenti!)?