Preparare lo scalping - pagina 17

 
Igor Makanu:

Bene, c'è una domanda qui, le classi semplificano il tempo di sviluppo del software - diciamo, se si scrive software su un flusso (come in una catena di montaggio - essenzialmente assemblando il software)

ma ahimè, i miracoli non accadono - per utilizzare le classi è necessario il tempo di studiarle

ma in termini di classi standard dalla consegna di MT, possono essere utilizzate - c'è un aiuto, le classi sono scritte in un buon stile di programmazione, e abbastanza facile da leggere

Non tutti sono veramente utilizzabili. Ci sono momenti in cui è più facile scrivere la propria classe, o almeno copiare quella standard e fare le modifiche necessarie.

 
SEM:

Ci sarà una versione per MT5?

Una piccola billetta per MT5 (funziona nel tester).

Apre il prossimo trade, se tutti quelli precedenti per simbolo e direzione sono in plus.

Funziona bene per cominciare... Devo finirlo, perché Lehi non ha tempo... come legare i livelli - forse questo script faràhttps://www.mql5.com/ru/code/20189

ProfLine
ProfLine
  • www.mql5.com
Скрипт рассчитывает и выводит на график уровни безубытка отдельно для открытых позиций BUY и SELL. После изменений количества позиций требуется повторный запуск скрипта.
 
Petros Shatakhtsyan:

Non sto parlando delle classi MQL standard, che rendono il codice molto più semplice. E non c'è bisogno di conoscere l'OOP per usarli.

Bene, se state già usando le classi MQL standard, siete solo ad un passo dall'OOP

Se ha senso scrivere una classe, facciamolo, altrimenti non scrivetela.

Nella stessa grafica, senza classi non si può, ho raggiunto il mio apprendimento già da TurboPascal ed era a quel tempo una libreria grafica per lavorare con pannelli di testo, e la questione non era su OOP - codice finestre e menu era così complicato che ho rinunciato a fare qualcosa da questa libreria, e dopo tutto da quella libreria comunque è venuto fuori NortonCommander

))))

E un altro esempio, MQL permette di creare simboli sintetici, è possibile riempire tutti i campi di un nuovo strumento una volta dal codice. - Dovrete comporre una serie di strutture o simili.

Oppure potete cercare nei forum e trovare una soluzione pronta sotto forma diclasse SYMBOL

https://www.mql5.com/ru/code/18855

Oppure ereditiamo e riscriviamo i metodi che troviamo migliori

Ahimè, viviamo in un'epoca in cui la quantità di informazioni prevale sulla capacità di una persona di studiarle, quindi bisogna cercare e utilizzare soluzioni già pronte.

Symbol
Symbol
  • www.mql5.com
Библиотека содержит некоторый функционал, позволяющий разобраться на начальном этапе, как идет работа с кастомными символами, и предлагает некоторые готовые решения, могущие быть полезными. Пример При запуске бэктеста на кроссах тестер тянет за собой не только основной символ, но и вспомогательный, который позволяет конвертировать валюту...
 
Igor Makanu:

Tu hai uno scenario ottimista, io sono pessimista e vedo il seguente corso degli eventi: dopo la dissezione otteniamo un aumento di 20 volte del kukish! ))))

Ma il punto è questo:

Questo è chiaro, diciamo che queste domande sorgono solo per coloro che hanno letto OOP per la prima volta, se ora stiamo parlando dei principi di base di OOP, allora sono interessato alle seguenti domande

- come ereditare più di una classe padre

- come ereditare da CObject i principi delle liste collegate, per esempio, voglio imparare come "incrociare" CLabel con CObject, il risultato sarà CLabel .Prev , CLabel .Next e metodi simili

Non si può fare questo in MQL, nemmeno sotto forma di interfacce.

Non ci sono principi di ereditarietà, ci sono funzioni fittizie, devi solo fare tutto da solo. La classe è composta da diverse stringhe

class CObject
  {
private:
   CObject          *m_prev;               // previous item of list
   CObject          *m_next;               // next item of list

public:
                     CObject(void): m_prev(NULL),m_next(NULL)            {                 }
                    ~CObject(void)                                       {                 }
   //--- methods to access protected data
   CObject          *Prev(void)                                    const { return(m_prev); }
   void              Prev(CObject *node)                                 { m_prev=node;    }
   CObject          *Next(void)                                    const { return(m_next); }
   void              Next(CObject *node)                                 { m_next=node;    }
   //--- methods for working with files
   virtual bool      Save(const int file_handle)                         { return(true);   }
   virtual bool      Load(const int file_handle)                         { return(true);   }
   //--- method of identifying the object
   virtual int       Type(void)                                    const { return(0);      }
   //--- method of comparing the objects
   virtual int       Compare(const CObject *node,const int mode=0) const { return(0);      }
  };
 
Igor Makanu:

Bene, c'è una domanda qui, le classi semplificano il tempo di sviluppo del software - diciamo, se si scrive software su un flusso (come in una catena di montaggio - in effetti, assemblando il software)

ma ahimè, i miracoli non accadono - per utilizzare le classi è necessario il tempo di studiarle

ma in termini di classi standard del toolkit MT, sono utilizzabili - c'è un aiuto e le classi sono scritte in un buon stile di programmazione, e abbastanza facili da leggere

E molti sono scritti in modo molto efficiente, per esempio CHashMap rompe tutti gli analoghi che sono stati pubblicati qui in articoli e kodobase. E uso molto spesso le tabelle hash.

 
Сергей Криушин:

Funziona benissimo per iniziare... Dobbiamo finirlo, Lekha non ha tempo... come collegare i livelli - forse questo script funzioneràhttps://www.mql5.com/ru/code/20189

Ahimè, Lekha ha bisogno di guadagnare del cibo )). Lo farà, ma non istantaneamente.

 
Igor Makanu:

Nella stessa grafica, non si può fare a meno delle classi, ho raggiunto TurboPascal durante i miei studi e a quel tempo c'era una libreria grafica per lavorare con pannelli di testo, e non si parlava di OOP - il codice di finestre e menu era così complicato che ero riluttante a fare qualcosa da tale libreria, e comunque, quella libreria si è trasformata in NortonCommander comunque

Ricordo che alcuni rudimenti di OOP sono apparsi in TP 7

 
Alexey Volchanskiy:

Ahimè, anche Lekha deve guadagnarsi i suoi spuntini )) Lo farà, ma non istantaneamente

Mettete il vostro conto di denaro web nel profilo... e lo riempiremo... buona fortuna... per i vostri sforzi e la vostra ispirazione... Non si lavora per il proprio bene per il bene comune e la comprensione della verità ...

 
Сергей Криушин:

Metti un conto in denaro web nel tuo profilo....e ti daremo un'elemosina.... per il tuo duro lavoro e l'ispirazione... Non lo stai facendo solo per te stesso, per il bene comune e la comprensione della verità...

Da uomo profondamente cinico, non credo nei miracoli )))) Ma, come esperimento sociale, ho scritto borse. Forse accadrà un miracolo e una moneta rimbalzerà nella VM, e il mio cuore si scioglierà, e la userò per nutrire i gattini randagi )) O raccogliere e far volare un'anatra con un'ala rotta da un lago vicino. Ma prometto di non berlo, di non sprecarlo con le donne e di non perderlo a carte!https://www.mql5.com/ru/users/vdev


Alexey Volchanskiy
Alexey Volchanskiy
  • www.mql5.com
Опубликовал пост ScalpHunter2 v1.38_EN.ex4 Немного измененная версия, из-за чемпионата не получилось много поработать, внизу смотрите ScalpHunter2 v1.38_EN.zip, работает до 2018.07.31, настройки те же... Добавил тему Шифрование программ? Тут коллега спрашивает, ломаются ли программы из Маркета и обычные, зашифрованные на Сервере MQ? Кто не в...
 
Ho aggiornato il progetto nel repository, in pratica ho aggiunto la classe CM1PivotLevels. Il progetto è memorizzato nel Vault a "MQL5\Progetti condivisi\PreparareScalping". Non funziona ancora, lo finirò presto.