Sto aprendo un progetto per testare una strategia per lavorare con ordini di stop in sospeso.
L'essenza del commercio: all'inizio mettiamo due ordini pendenti stop (Buy stop e Sell stop). Se uno è scattato, allora cancella il secondo (lo modificheremo più tardi, ma per ora, cancellalo semplicemente) e ancora due ordini pendenti di stop.
Il significato: un insieme di posizioni per tendenza.
Immagine:
(un po' più tardi...).
Come accedere al codice completo: SOLO attraverso la connessione al progetto, mentre i pezzi saranno ovviamente in discussione in questo thread. L'Expert Advisor stesso sarà sotto forma di una classe (*.mqh).
Attualmente sto facendo qualcosa di simile all'ordine, solo più complicato
Seguirò il progetto con interesse...
Per favore chiarisci, vuoi essere collegato al progetto(Progetti - MetaEditor) ?
![Проекты - Справка по MetaEditor Проекты - Справка по MetaEditor](/i/community/logo_metatrader5_small.png)
- www.metatrader5.com
Ciao!
Gli obiettivi principali sono descritti sopra:
- è creare un EA come una classe separata
- sviluppo di progetti(Progetti - MetaEditor)
- testare una strategia di trading su ordini pendenti stop
![Проекты - Справка по MetaEditor Проекты - Справка по MetaEditor](/i/community/logo_metatrader5_small.png)
- www.metatrader5.com
Trovo l'argomento interessante. Prima di tutto, la condizione "come classe".
Il mio "puramente come classe" non ha funzionato. L'architettura del sistema include il Main Template, che contiene le funzioni standard OnInit(), OnTick(), ecc. Inoltre, dichiara un oggetto di classe CExpert - che ha funzioni - membri di classe, che sono gestori di tutti questi eventi. Nel template Main - le funzioni membro sono chiamate da funzioni standard.
Quindi, abbiamo già "non puramente sotto forma di classe", perché ci sono funzioni standard, da cui vengono chiamati i gestori di eventi della classe EA.
E in questa architettura, se vogliamo sostituire questa classe EA, dovremo riscrivere l'intero file template. L'Expert Advisor come classe" dovrebbe essere così: dichiariamo una classe EA (tutta la sua descrizione è nei file di inclusione), includiamo un modello - e questo è tutto.
In altre parole, si scopre che nel template, ci dovrebbero essere funzioni standard, un oggetto hub che collega l'EA a queste funzioni standard, e poi il file principale può essere ridotto alla "struttura corretta" - dichiarando un oggetto EA e collegando il template. In questo caso, nel file principale, dichiariamo un oggetto EA, colleghiamo il template principale, l'oggetto hub registra un oggetto e collega le sue funzioni handler nel template principale alle funzioni evento standard.
È anche possibile implementare molti TC in un solo EA - per questo, vengono dichiarati diversi oggetti EA e la classe Hub li collega tutti alle funzioni principali, e lavorano indipendentemente l'uno dall'altro (naturalmente, quando si collegano, si deve controllare la differenza dei maghi, e gli stessi EA devono selezionare le posizioni dei loro maghi).
A proposito di "collegami al progetto" - sono pronto a collegarmi in modalità di sola lettura - è improbabile che scriva qualcosa, ma posso guardare, suggerire qualcosa, segnalare errori.
***
E inoltre, in questa architettura, se vogliamo sostituire proprio questo consigliere di classe, dovremo riscrivere l'intero file template. L'"EA come classe" dovrebbe essere così: dichiariamo una classe EA (tutta la sua descrizione - nei file include), colleghiamo il modello - e questo è tutto.
***
... collegare il modello e passare i parametri di input alla classe Expert Advisor
***
A proposito di "collegami al progetto" - pronto a connettermi in modalità di sola lettura - è improbabile che io scriva qualcosa, ma per guardare, per offrire qualcosa, per indicare gli errori - posso.
Fatto, collegato.
... collegare il modello e passare i parametri di input alla classe EA
Fatto, collegato.
О ! Ce l'ho. Ho i file. Quando avrò tempo, vedrò cosa c'è.
Chi non sa programmare, non può partecipare?
Chiunque può partecipare, ma solo chi vuole unirsi al progetto(Progetti - MetaEditor) avrà accesso al codice COMPLETO. Ci sarà una discussione sul progetto, quindi l'opinione di chiunque (programmatore o utente) sarà preziosa.
![Проекты - Справка по MetaEditor Проекты - Справка по MetaEditor](/i/community/logo_metatrader5_small.png)
- www.metatrader5.com
Non so programmare, ma ho costruito la tua idea per il 4.
Qui c'è solo mql5. Il vecchio terminale non cita.
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Accetti la politica del sito e le condizioni d’uso
Sto aprendo un progetto
Per testare una strategia per lavorare con ordini di stop pendenti.
L'essenza del commercio: all'inizio mettiamo due ordini pendenti stop (Buy stop e Sell stop). Se uno è scattato, allora cancella il secondo (lo modificheremo più tardi, ma per ora, cancellalo semplicemente) e ancora due ordini pendenti di stop.
Il significato: un insieme di posizioni in accordo con la tendenza.
Screenshot (risultato quando c'è una tendenza e diversi ordini pendenti sono scattati):
(un po' più tardi...).
Come accedere al codice completo: SOLO attraverso la connessione al progetto, mentre i pezzi saranno ovviamente in discussione in questo thread. L'EA stesso sarà sotto forma di classe (*.mqh).
Aggiunto:
Quando l'EA è in esecuzione, i dati vengono scritti in un array in OnTradeTransaction. Il formato di registrazione è il seguente: se abbiamo una posizione Buy, registriamo '+1'; se abbiamo una posizione Sell, registriamo '-1'.
Verifichiamo l'idea di piramide (nel caso in cui una posizione sia stata aperta in direzione della precedente)