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
Grazie per la risposta ... Così, per cercare gli ordini nella storia del trading, usiamo la funzioneOrdersHistoryTotal, che, dopo aver scartato tutto ciò che non ci serve, si presenta così
for(int i=OrdersHistoryTotal()-1; i>=0; i--) // - la domanda qui è cosa significa "accTotal" nel template della funzione che abbiamo scartato, e perché avete preso "i--" e non "i++" come nel template?
- la seconda funzioneOrderComment restituisce il commento dell'ordine selezionato se è stato selezionato dalla funzione precedenteOrdersHistoryTotal, prende la forma
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) //- dove"i", questo è "i>=0" dalla funzione precedente, e "SELECT_BY_TICKET" è stato sostituito con "SELECT_BY_POS" e "MODE_HISTORY" è stato aggiunto- perché?
- La terza linea è la definizione, in realtà non abbiamo bisogno di controllare l'ordine necessario poiché abbiamo solo ordini a mercato chiusi da TP e SL in questa storia (potremmo avere un ordine pendente chiuso, ma sarà raro), tutti gli altri parametri di ordine non sono importanti per noi. L'unica cosa importante è che la quantità di ordini chiusi nella storia aumenterà costantemente, è possibile fare in modo che il nostro ricalcolo prenda una certa quantità degli ultimi ordini, per esempio 5-10, e non tutti?
- Le ultime quattro linee sono abbastanza chiare, l'unica domanda riguarda la funzione PlaySound, il cui codice dovrebbe essere inserito dopo ogni linea"Print("..." come questa
OrderComment restituisce il commento dell'ordine selezionato, se è stato selezionato dalla funzione precedenteOrdersHistoryTotal - questa funzione non seleziona nulla - restituisce il numero totale di ordini chiusi e cancellati(Il numero di ordini chiusi e cancellati nella storia del conto corrente, caricato nel terminale client. La dimensione della lista della cronologia dipende dalle impostazioni correnti della scheda "Cronologia account" del terminale. Citazione dal tutorial).
accTotal nell'esempio del tutorial:
int i,accTotal=OrdersHistoryTotal(); - Questa è una variabile int - che prende il valore OrdersHistoryTotal
for(i=0;i<accTotal;i++)// Come eseguire il loop attraverso la lista della storia non è importante dal primo all'ultimo ordine o viceversa, va ancora attraverso tutta la lista in sequenza.
Ma nel caso precedente, abbiamo 1 variabile in meno, ma la richiesta OrdersHistoryTotalviene elaborata in ogni ciclo.
SELECT_BY_POS - il parametro index contiene il numero di indice dell'ordine nella lista, la lista stessa è il secondo operatore - MODE_HISTORY è la lista dei chiusi, MODE_TRADES - aperti o in sospeso. SELECT_BY_TICKET - il numero del biglietto è passato nel parametro indice. Che dovrebbe essere preso da qualche parte prima della selezione dell'ordine.
- Leultime quattro righe sono generalmente chiare, l'unica domanda riguarda la funzione PlaySound, il cui codice dovrebbe essere inserito dopo ogni linea "Print("..." nella seguente forma:
bool PlaySound(
string payment // file name
)
; ..
.O è anche convertito in qualche modo?
Dichiarare
poi cosa stamperà Print? E a quali condizioni?
Qual è lo scopo di questa azione? Riprodurre un suono quando l'ordine viene chiuso e scrivere il commento (per TP o SL)?
Graziea Vitalie Postolache per l'aiuto, grazie per il consiglio, e le informazioni su questi libri di testo è probabilmente un po 'tardi per me a studiare nel mio sesto decennio, probabilmente non posso fare così tanto, avrei dovuto prima, ma non c'era tempo. Vi sto davvero annoiando qui, scusate se è così, non continuerò, me ne vado.
A proposito, ho anche una domanda.
Ho bisogno di scrivere un assegno di Spread.
Ho usato una semplice richiesta del suo valore e il divieto di aprire un ordine se lo spread supera il valore specificato.
Ma quello che è successo è che quando lo spread sta diminuendo, l'EA apre un ordine e quello spread sta aumentando.
Ora non riesco a trovare il modo corretto per tenerne conto: se aggiungiamo lo spread all'array ogni tick, quanto sarà grande l'array? E poi, per quanto tempo durerà?
Naturalmente, possiamo non usare valori simili o usare solo valori più piccoli e più grandi, ma in questo caso dobbiamo azzerarlo in qualche modo.
E soprattutto, non riesco a capire se devo prendere in considerazione lo spread minimo e massimo o un'indicazione dei suoi salti.{
datetime time; // время начала периода
double open; // цена открытия
double high; // наивысшая цена за период
double low; // наименьшая цена за период
double close; // цена закрытия
long tick_volume; // тиковый объем
int spread; // спред
long real_volume; // биржевой объем
};
{
datetime time; // время начала периода
double open; // цена открытия
double high; // наивысшая цена за период
double low; // наименьшая цена за период
double close; // цена закрытия
long tick_volume; // тиковый объем
int spread; // спред
long real_volume; // биржевой объем
};
int spread;// spread
cioè nessun
{
datetime time; // время начала периода
double open; // цена открытия
double high; // наивысшая цена за период
double low; // наименьшая цена за период
double close; // цена закрытия
long tick_volume; // тиковый объем
int spread; // спред
long real_volume; // биржевой объем
};
Se si chiede la barra attuale, allora lo spread attuale, se dalla storia, allora al momento della chiusura.
Ho capito bene che per scrivere i dati nell'array, è necessario assegnare a ogni cella un valore diverso array1[i] = x; indicando un numero di cella specifico
o l'array può essere riempito in modo sequenziale da i=0 in poi?
Ho capito bene che per scrivere i dati nell'array, è necessario assegnare a ogni cella un valore diverso array1[i] = x; indicando un numero di cella specifico
o l'array può essere riempito in modo sequenziale da i=0 in poi?
Che differenza c'è? Penso che siano solo due percorsi diversi.