Potete dirmi come fa MT5 a sapere dalla cronologia il prezzo e l'ora del primo trade quando apre una posizione e il prezzo e l'ora del primo trade quando chiude quella posizione? Lo scopo è quello di ottenere un array di punti di ingresso dalla storia, perché a volte l'equità quando il commercio manuale, quindi voglio capire se è efficace o no. Non so nulla delle operazioni di trading, uso una classe, dove queste funzioni non sono state implementate :(
void OnTick()
{
//---
double o1 = iOpen(Symbol(),Period(),1);
double h1 = iHigh(Symbol(),Period(),1);
double l1 = iLow(Symbol(),Period(),1);
double c1 = iClose(Symbol(),Period(),1);
double c0 = iClose(Symbol(),Period(),0);
double rt = 0;
double rs1 = 0;
double rs2 = 0;
rt=MathAbs(c1-o1)/_Point; //размер тела свечи
rs1=MathAbs(h1-c1)/_Point;// размер верхней тени свечи
rs2=MathAbs(l1-c1)/_Point; // размер нижней тени свечи
ObjectDelete(0,"HL");
if ((rs1>=rt)&&(c1>o1)) //[для ростовых свечей] условие для построения уровней (если верхняя тень предыдущей свечи, больше, или равна телу этой же свечи, то...
{
double PRH=iHigh(Symbol(),_Period,1); // то это будет максимум
ObjectCreate(0,"HL",OBJ_HLINE,0,_Period,PRH); // и строим по этому максимуму, горизонтальную линию
}
ObjectDelete(0,"lL");
if ((rs2>=rt)&&(c1<o1)) // [для падающих свечей]условие для построения уровней (если нижняя тень предыдущей свечи, больше, или равна телу этой же свечи, то...
{
double PRL=iLow(Symbol(),_Period,1); // то это будет минимум
ObjectCreate(0,"lL",OBJ_HLINE,0,_Period,PRL); // и строим по этому минимум, горизонтальную линию
}
}
Considerato l'opzione 1, qualcosa di simile. Ma non corretto in qualche modo accade. All'inizio fasi secondo i piani, poi in un colpo di coda.
Beh, più o meno, sì. Se si aggiungono condizioni solo un po', c'è un problema. Traccia una linea. Quello che serve è: se non c'è un nuovo massimo/basso, viene salvato.
Beh, più o meno, sì. Se si aggiungono condizioni solo un po', c'è un problema. Traccia una linea. Quello che serve è: se non c'è un nuovo massimo/basso, viene salvato.
Non so, chi ti impedisce di aggiungere un'altra linea per Low...?
Aleksey Vyazmikin: Per favore, consigliate come ottenere il prezzo e il tempo della prima transazione quando si apre una posizione e il prezzo e il tempo della prima transazione per chiudere questa posizione dalla storia. Il mio scopo è quello di ottenere un array di punti di ingresso dalla storia, perché a volte l'equità quando faccio trading manualmente, quindi voglio sapere se è efficace o no. Non so nulla delle operazioni di trading, uso una classe, dove queste funzioni non sono state implementate :(
Prendere scambi, controllare la proprietàDEAL_ENTRY_IN o DEAL_ENTRY_OUT per entrare o uscire dal mercato e prendere il prezzo e il tempo di quello scambio.
Prendere ordini. Con l'indice 0 questa è un'entrata nel mercato, rispettivamente OrdersTotal()-1 un'uscita dal mercato.
Il modo migliore è prenderli entrambi. Il punto è che se la posizione è aperta con uno slippage, il prezzo di scambio ≠ il prezzo dell'ordine. Di conseguenza, prendete quello che vi serve.
Не следует путать между собой ордера из торговой истории и действующие отложенные ордера, которые отображаются на вкладке "Торговля" в панели "Инструменты". Список ордеров, которые были отменены или привели к проведению торговой операции, можно посмотреть в закладке "История" на панели "Инструменты" клиентского терминала. Функция...
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Buon pomeriggio!
Sto lottando con una domanda, potresti dirmi come risolverla?
L'idea è la seguente: traccio una linea al massimo precedente della candela. Voglio che la linea sia spostata a seconda del massimo precedente.
Chi mi impedisce di cambiare il prezzo della linea sui tick quando ne ho bisogno?
Ci sono 2 opzioni
Ciao omonimo!)
void OnTick() { //--- double o1 = iOpen(Symbol(),Period(),1); double h1 = iHigh(Symbol(),Period(),1); double l1 = iLow(Symbol(),Period(),1); double c1 = iClose(Symbol(),Period(),1); double c0 = iClose(Symbol(),Period(),0); double rt = 0; double rs1 = 0; double rs2 = 0; rt=MathAbs(c1-o1)/_Point; //размер тела свечи rs1=MathAbs(h1-c1)/_Point;// размер верхней тени свечи rs2=MathAbs(l1-c1)/_Point; // размер нижней тени свечи ObjectDelete(0,"HL"); if ((rs1>=rt)&&(c1>o1)) //[для ростовых свечей] условие для построения уровней (если верхняя тень предыдущей свечи, больше, или равна телу этой же свечи, то... { double PRH=iHigh(Symbol(),_Period,1); // то это будет максимум ObjectCreate(0,"HL",OBJ_HLINE,0,_Period,PRH); // и строим по этому максимуму, горизонтальную линию } ObjectDelete(0,"lL"); if ((rs2>=rt)&&(c1<o1)) // [для падающих свечей]условие для построения уровней (если нижняя тень предыдущей свечи, больше, или равна телу этой же свечи, то... { double PRL=iLow(Symbol(),_Period,1); // то это будет минимум ObjectCreate(0,"lL",OBJ_HLINE,0,_Period,PRL); // и строим по этому минимум, горизонтальную линию } }Considerato l'opzione 1, qualcosa di simile. Ma non corretto in qualche modo accade. All'inizio fasi secondo i piani, poi in un colpo di coda.
E chi vi impedisce di cambiare semplicemente il prezzo della linea sui tick quando ne avete bisogno?
Beh, più o meno, sì. Se si aggiungono condizioni solo un po', c'è un problema. Traccia una linea. Quello che serve è: se non c'è un nuovo massimo/basso, viene salvato.
Beh, più o meno, sì. Se si aggiungono condizioni solo un po', c'è un problema. Traccia una linea. Quello che serve è: se non c'è un nuovo massimo/basso, viene salvato.
Non so, chi ti impedisce di aggiungere un'altra linea per Low...?
Puoi aggiungere un'intera serie di linee o altri oggetti e segnare ogni Low e High con essi. Qual è il problema...?
Per favore, consigliate come ottenere il prezzo e il tempo della prima transazione quando si apre una posizione e il prezzo e il tempo della prima transazione per chiudere questa posizione dalla storia. Il mio scopo è quello di ottenere un array di punti di ingresso dalla storia, perché a volte l'equità quando faccio trading manualmente, quindi voglio sapere se è efficace o no. Non so nulla delle operazioni di trading, uso una classe, dove queste funzioni non sono state implementate :(
HistorySelectByPosition vi aiuterà a
Allora ci sono diverse opzioni:
Non so, chi ti impedisce di aggiungere un'altra linea per Low...?
Puoi aggiungere un'intera serie di linee o altri oggetti e segnare ogni Low e High con essi. Qual è il problema...?
Sì, funziona correttamente! Grazie Mihail!
E se avete forato la linea di fondo e avete bisogno di cancellarla dopo il piercing, come:
Giusto?
Sì, funziona come dovrebbe! Grazie Mihail!
E se la linea di fondo è perforata e bisogna cancellarla quando è perforata, come:
Giusto?
Il programma usa solo due linee per evidenziare i livelli. Perché cancellarlo e poi crearlo di nuovo se si può semplicemente impostarlo a 0...?
La linea non sarà visibile sul grafico... E poi puoi mostrarlo di nuovo:
lLine.Price(0, PRL);Il programma usa solo due linee per evidenziare i livelli. Perché cancellare e poi ricreare quando si può semplicemente impostare a 0...?
La linea non sarà visibile sul grafico... E poi puoi mostrarlo di nuovo:
Come questo? O è necessario dichiarare qualcos'altro in OnInit?