AutoGraf Serie 4 - Caratteristiche MQL. - pagina 34

 

Se includete il file tramite include, potete dichiarare variabili extern e non avete bisogno di alcun passaggio di parametri. Per evitare confusione con i nomi delle variabili e delle funzioni, è necessario usare prefissi diversi nei nomi per ogni strategia.

Scusate l'interruzione, ma un'agonia così lunga su una domanda così semplice non lascia indifferenti:)

 
Integer >> :

Se includete il file tramite include, potete dichiarare variabili extern e non avete bisogno di alcun passaggio di parametri. Per evitare confusione con i nomi delle variabili e delle funzioni, è necessario usare prefissi diversi nei nomi per ogni strategia.

Scusa, ma queste lunghe agonie su una domanda così semplice non ti lasciano indifferente:)

>> Grazie. >> Faremo una prova.

 
Integer писал(а) >>

Se includete il file tramite include, potete dichiarare variabili extern e non avete bisogno di alcun passaggio di parametri. Per evitare confusione con i nomi delle variabili e delle funzioni, è necessario usare prefissi diversi nei nomi per ogni strategia.

Scusate l'interruzione, ma queste lunghe agonie su una domanda così semplice non lasciano indifferenti:)

Stiamo parlando dell'importazione di funzioni nell'EA compilato (ex4).
 
SK. писал(а) >>
Stiamo parlando dell'importazione di funzioni nell'EA compilato (ex4).

Mi dispiace, come al solito non sto parlando di... E l'importazione da una libreria compilata?

-

Se il modulo principale è compilato, allora non è un problema usare inculcator con la strategia, tutto sarà compilato. Se il modulo principale è open source, ma la strategia è compilata, allora si può fare un adattatore sotto forma di inculdnik open source.

 

Cari signori!

Sto considerando il seguente schema della catena di connessione:



La funzione AG_AT è un interruttore per selezionare le strategie da unire.

 

Signore e signori!

Per favore, rispondi a una domanda.

Se la funzione AT non è un interruttore, ma contiene codice di strategia, allora (anche se capisco che non fa differenza), come fa l'applicazione a distinguere che la funzione AT le sta dando un'istruzione (ad esempio riferendosi al terminale), piuttosto che negoziare se stessa?

Dalla descrizione all'applicazione:

Исполнение функции АТ связано с двумя основными возможностями.

Il primo è che la funzione AT può fare trading da sola - generare ordini di trading e inviarli al server. Allo stesso tempo, la funzione non può elaborare i dati ricevuti dall'applicazione (o elaborare una parte di tali dati), ma può eseguire i propri calcoli utilizzando tutte le capacità di MQL4, tra cui chiamare il terminale per elaborare gli ordini, ottenere le quotazioni attuali, calcolare i criteri di trading, gestire gli oggetti grafici, ecc.

La seconda caratteristica è direttamente collegata all'applicazione AutoGraf 4. Questa funzione può istruire l'applicazione AutoGraf 4 a installare qualsiasi strumento necessario con impostazioni preimpostate su ordini specifici o su un grafico di prezzo, cambiare le impostazioni generali dell'applicazione, cancellare strumenti, visualizzare messaggi all'utente, ecc. (parametri di uscita).

Se la funzione AT ha generato un ordine di compravendita e non c'è una linea di codice di cui tenere conto nell'applicazione, allora si negozia da sola. L'applicazione, in questo caso, trasmette semplicemente l'ordine al terminale senza alcuna contabilità o elaborazione.

Se c'è, allora l'ordine passa attraverso l'applicazione nei parametri della funzione AT passati attraverso il collegamento.

Ho capito bene?

 
Integer писал(а) >>

Mi dispiace, non è quello che intendevo, come al solito... E l'importazione da una libreria compilata?

-

Se il modulo principale è compilato, allora non è un problema usare inculcator con la strategia, tutto sarà compilato. Se il modulo principale è open source, ma la strategia è compilata, allora si può fare un adattatore sotto forma di inculcatore open source.

Non c'è niente di cui scusarsi, la discussione è in tema.

--

Un po' di terminologia. Ci sono due concetti speculari: esportazione e importazione. Sono usati in relazione al nostro territorio.

Le esportazioni sono da noi fuori dai nostri confini. Per esempio, le esportazioni di gas dalla Russia all'Europa.

L'importazione è dall'estero nei nostri confini. Per esempio, l'importazione di sabbia in Siberia dall'Africa.

In questo caso stiamo parlando di importazioni. Il nostro territorio qui è esperto AG_exp.ex4. Questa è la base dell'applicazione AutoGraf 4 che viene fornita all'utente come file compilato. Il codice sorgente di Expert Advisor non viene fornito (naturalmente, poiché l'applicazione è distribuita commercialmente, anche se è gratuita) e, pertanto, non è possibile aggiungere moduli all'Expert Advisor tramite inclide (da parte dell'utente-programmatore).

--

Il compito era di permettere all'utente di allegare all'applicazione AutoGraf 4 i propri algoritmi di trading scritti in MQL4 ed eseguiti come file .ex4 di strategie. Per risolvere questo problema, l'Expert Advisor AG_exp.ex4 include del codice che importa nell'Expert Advisor la funzione di trading automatico AG_AT che è disponibile sia come file .ex4 che mq4. In seguito, l'utente può decidere da solo come disporre i codici. Una delle due varianti è la più conveniente:

1. Per scrivere il proprio codice direttamente nella funzione AG_AT() e compilare il file AG_AT.mq4 con lo stesso nome, ottenendo AG_AT.eq4.

Пример: http://autograf.dp.ua/Pages/2/26/267/26711/26711_1.htm, примеры 1-15: http://autograf.dp.ua/Pages/2/26/267/2679/2679_1.htm

2. Scrivete il vostro codice per la nuova funzione in un file di strategia separato, per esempio, My_Strategy() nel file My_Strategy.mq4. Scrivere in AG_AT() l'importazione della funzione My_Strategy() dal file My_Strategy.eq4 (versione moderna). Примеры http://autograf.dp.ua/Pages/2/26/267/26712/26712_1.htm, http://autograf.dp.ua/Pages/2/26/267/26712/26712_2.htm

.

In nessuna di queste varianti è possibile specificare le variabili esterne in modo che siano disponibili per l'utente. L'unica possibilità di specificare le variabili esterne è di scriverle in AG_exp.ex4 durante la fase di progettazione, cosa che viene fatta. I valori delle variabili sono passati in transito attraverso AG_AT() all'utente My_Strategy() nell'array Instrument. Questa è la tecnologia adottata nell'ultima versione di AutoGraf 4 e funziona bene.

--

Cosa significa tutto questo per l'utente? Questo significa che qualsiasi utente può scrivere la propria strategia ed eseguirla in un ambiente AutoGraf 4. Allo stesso tempo, la sua strategia funzionerà e tutte le caratteristiche di AutoGraf 4 saranno disponibili per l'utente. In particolare, qualsiasi strumento di AutoGraf 4 (!) come pullup, ribaltamenti, suoni, ecc. può essere controllato dalla strategia.

Per i programmatori professionisti, la tecnologia fornisce la possibilità di passare una variabile password personalizzabile nel file di strategia. Questo significa che i programmatori possono scrivere strategie per AutoGraf 4 e distribuirle su base commerciale (ad esempio solo per un account specifico).

 
LeonidSB писал(а) >>

Cari signori!

Sto considerando il seguente schema della catena di connessione:

La funzione AG_AT è un interruttore per selezionare le strategie da unire.

Sì, esatto.

 
LeonidSB писал(а) >>

Signore e signori!

Per favore, rispondi a una domanda.

Se la funzione AT non è un interruttore, ma contiene un codice di strategia, allora (anche se capisco che non fa differenza), come fa l'applicazione a distinguere che la funzione AT sta dando istruzioni (ad esempio, riferendosi al terminale) ad essa, piuttosto che negoziare essa stessa?

La strategia può passare all'applicazione:

- valori di parametri regolabili comuni (SL, TP, Lotti, ecc.)

- Parametri degli strumenti da installare o cancellare

La strategia non trasmette gli ordini di apertura e chiusura all'applicazione (questo è previsto in AG 5 sulla base delle capacità di MQL 5) e attualmente (in AG 4) questo non è strettamente richiesto. La strategia può e deve aprire/chiudere gli ordini utilizzando l'algoritmo dell'utente.

Se la funzione AT genera un ordine di compravendita e non c'è nessuna linea di codice da registrare nell'applicazione, la strategia negozierà da sola. L'applicazione, in questo caso, trasmette semplicemente l'ordine al terminale senza alcuna contabilità o elaborazione.

Se c'è, l'ordine passa attraverso l'applicazione nei parametri della funzione AT passati via link.

Ho capito bene?

Non è molto chiaro cosa chiami "una linea di codice da contabilizzare nell'applicazione".

L'applicazione contabilizza gli ordini ogni volta che riceve indietro il controllo. Ad ogni iterazione di un grande ciclo, l'array ricalcolato di ordini viene passato ad AG_AT e poi alla strategia. In base al conteggio degli ordini, la strategia può calcolare le azioni di controllo appropriate. L'applicazione della strategia dovrebbe essere aggiornata più frequentemente in modo che la strategia abbia sempre una nuova serie di registrazioni di ordini.

Un ordine di trading da qualsiasi parte del programma (applicazione o AG_AT o una strategia) va direttamente al terminale MT4 e direttamente al server. Dopo l'esecuzione dell'ordine sul server, il controllo ritorna allo stesso modo al punto di invio dell'ordine commerciale. Mentre l'ordine viene elaborato sul server tutto è silenzioso e aspetta la risposta - non succede niente (se non mi sbaglio, in MT5 questa tecnologia sarà cambiata - non aspetteremo, lavoreremo:)

 
Grazie!
Motivazione: