![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Gente! Alcuni suggerimenti per i principianti nella programmazione, come lavorare con la maniglia. Che cos'è - qualche file in un buffer? Come estrarre informazioni da esso per lavorarci?
Date un'occhiata:
Guida di riferimento MQL5 / Indicatori tecnici
Guida di riferimento MQL5 / Accesso alle serie temporali e agli indicatori / CopyBuffer
In breve, l'handle è un certo puntatore (link) al programma ha creato una copia dell'indicatore, da usare nella funzione CopyBuffer.
Guarda anche gli articoli per principianti, è descritto lì.
Potete dirmi come assegnare il valore del prezzo corrente a una variabile?
L'articolo "Migrazione da MQL4 a MQL5" potrebbe essere più facile da leggere.
Dovresti anche controllare più spesso la documentazione.
Questa è la risposta alla domanda dell'esempio della funzione SymbolInfoDouble
AUser:
Mi chiedo anche se è possibile caricare i dati storici nella maniglia dell'indicatore?
Per essere più precisi, i dati non vengono caricati nell'handle dell'indicatore, i dati vengono caricati in array speciali utilizzando le funzioni della sezione "Accesso ai dati delle serie temporali e degli indicatori".
Almeno queste funzioni dovrebbero essere studiate ulteriormente.
CopyBuffer
Ottiene i dati di un buffer specificato da un indicatore specificato in un array
CopyRates
Ottiene i dati storici della struttura Rates per un simbolo e un periodo specificati in un array
CopyTime
Ottiene i dati storici sul tempo di apertura della barra per un simbolo e un periodo specificati in un array
CopyOpen
Ottiene i dati storici sul prezzo di apertura della barra per un simbolo e un periodo specificati in un array
CopyHigh
Ottiene i dati storici sul prezzo massimo della barra per un simbolo e un periodo specificati in un array
CopyLow
Ottiene i dati storici sul prezzo minimo della barra per un simbolo e un periodo specificati in un array
CopyClose
Ottiene i dati storici sul prezzo di chiusura della barra per un simbolo e un periodo specificati in un array
AUser:
E con la storia dell'indicatore, non tutto è chiaro. Il problema è il seguente: prima di confrontare i valori degli indicatori sulle barre, dovrebbero essere raccolti negli array di indicatori. I valori delle barre a 15 minuti sono prevedibili, ma quelli settimanali? Ho guardato il manuale - non capisco))) Supponiamo questo: CopyClose(Ottiene i dati storici dei prezzi di chiusura delle barre per il simbolo e il periodo appropriati in un array) Otteniamo i dati, ma come farli calcolare all'indicatore? Non capisco una cosa.
Ho capito che stai scrivendo un Expert Advisor usando degli indicatori?
Se la maniglia viene ricevuta e non ci sono problemi evidenti, i dati dell'indicatore personalizzato vengono ottenuti utilizzando il CopyBuffer, per gli indicatori tecnici standard è meglio applicare le seguenti funzioni
Questo codice dovrebbe scrivere i dati di 20 barre dal buffer 0 nell'array del buffer e restituire il numero di elementi effettivamente copiati dell'array o -1
Inoltre, 20 barre sono contate a partire dalla barra 0, quindi non dobbiamo dimenticare la serialità (per i dettagli vedere qui). Puoi leggere come ottenere dati aggiuntivi qui.
Sta esplodendo... cosa c'è che non va?
pubblica qui l'aiuto per la funzione OrderSend
È così scritto che è difficile da capire senza allenamento)
pubblica qui l'aiuto per la funzione OrderSend
Spero solo di farvelo leggere, altrimenti non potrete fare nulla.
AUser, - Sergeev ha ragione. La funzioneOrderSend ha solo due parametri. Devi passare un po' di tempo a studiare MQL5.
Scritto da:
OrderSend(TRADE_ACTION_DEAL,Symbol(),1,SL,TP,10,ORDER_TYPE_BUY,ORDER_FILLING_CANCEL);
Cosa c'è che non va?
Voglio comprare ad un prezzo reale.
Voglio ottenere un codice più dettagliato di quest'area o un esempio di lavoro. 2;
2. Vorrei decidere subito in quale lingua è scritto questo codice;
3. vorremmo che la gente imparasse a leggere l'aiuto, in questo caso, leggere la descrizione della funzione OrderSend.
In questo caso questo frammento sarà sufficiente!!!
La funzione OrderSend() è destinata all'esecuzione di operazioni di compravendita inviando richieste al server di compravendita.
boolOrderSend(
MqlTradeRequest&request, //struttura della richiesta
MqlTradeResult&result// struttura della risposta
);
Voglio che la gente impari di più sulle strutture MqlTradeRequest eMqlTradeResult
5. Voglio che la gente conosca una cosa meravigliosa come CTrade (il riempimento di questa classe si trova nel file \MQL5\Include\Trade.mqh).
Un esempio del suo utilizzo in un Expert Advisor può essere trovato nell'Expert Advisor standard - MACD Sample.
Inoltre, sarebbe bene sapere cosa succede con l'ordine a partire dalla classe CSampleExpert fino alla prossima funzione del codice CTrade:
a) PositionOpen - Apre una posizione con i parametri specificati
b) PositionModify - Cambia i parametri di posizione del simbolo specificato
b) PositionClose -Chiude la posizione dal simbolo specificato.
PS
In conclusione, voglio che la gente non solo legga l'aiuto, ma sappia anche come cercare informazioni nei file della libreria standard (non è male familiarizzare con la combinazione di tasti Ctrl+Shift+F) e negli esempi situati su questo sito (Code Base - una cosa potente, se sai come usarla).
Domanda sulla funzione Sleep(). Ho capito bene che l'uso di questa funzione in un Expert Advisor arresta l'esecuzione solo di quell'EA e trasferisce le risorse della CPU (kernel) ai prossimi compiti nella lista dei compiti di quel kernel? In altre parole, è corretto che la funzione Sleep() non rallenta il thread stesso in cui l'Expert Advisor viene elaborato, ma agisce come uno switch tra l'Expert Advisor corrente e altri programmi raccolti da un particolare kernel?
Domanda sulla struttura di MqlTradeResult. Non ho trovato il campo del tempo in esso - il tempo del controllo di successo della richiesta di base (o qualcosa del genere). Qualcuno ricorda se c'era una domanda sull'introduzione di un campo di tempo aggiuntivo nella struttura MqlTradeResult? Necessario per tirare fuori un ordine pendente se improvvisamente va in cronologia.