[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 477
Per favore, ditemi quale codice dovrebbe essere scritto nell'EA per fare in modo che l'EA scambi solo una volta all'ora
Per esempio, l'EA si è attivato, un ordine è aperto (non mi interessa oltre), vorrei che l'ordine non si aprisse sulla barra corrente su un timeframe orario
tutto si assomiglia:
int hh; int CurrentHour; CurrentHour=TimeHour(TimeCurrent()); se (CurrentHour!=hh) { OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point); hh=TimeHour(TimeCurrent()); }
Ragazzi, aiutatemi a trovare un EA per il trading manuale nel tester sulla storia. Ce ne sono alcuni nel codebase, ho bisogno di uno che sia stato controllato trascinando la didascalia nell'angolo inferiore sinistro del nraffic. Molto semplice, non riesco a trovarne uno. HistTraining e test di visualizzazione. Il trading manuale non lo è. Consulente molto facile, si potrebbero anche impostare i livelli in cui i test si fermano.
Ordine di acquisto ...... fallito [timeout del trade]
Sono specificamente interessato a che tipo di timeout è.
https://www.mql5.com/ru/forum/112612 Questa è una risposta del server scaduta --- se l'affare si è aperto o no. E non c'è garanzia che il commercio non si sia aperto.
Quindi, devo controllare se l'ordine è aperto in un minuto e poi continuare il trading.
rlx: deve essere impostato prima di start() e init()
int hh = 0; int init() { return(0); } int start() { //------------------------------------------------- int countorder; countorder=OrdersTotal(); if (countorder==0) { Alert ("nessun ordine aperto"); }else { Alert ("hanno ordini aperti"); } int hh; int CurrentHour; CurrentHour=TimeHour(TimeCurrent()); if ((CurrentHour!=h)&&(countorder==0)) { OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point); hh=TimeHour(TimeCurrent()); } //------------------------------------------------- return(0); }
int deinit() { return(0); }
Ho fatto come hai detto, nessun effetto, ho aggiunto il conteggio degli ordini aperti, ora apre gli ordini subito dopo la chiusura
L'ho aggirato tramite OrderCloseTime() - ora sembra funzionare
int countorder; countorder=OrdersTotal(); if (countorder==0) { Alert ("no open orders"); }else { Alert ("have open orders"); } int hh; int CurrentHour; int LastOrderCloseTime; CurrentHour=TimeHour(TimeCurrent());
https://www.mql5.com/ru/forum/112612 Questo è il periodo di attesa per il server per rispondere --- se un trade è stato aperto o no. E non c'è garanzia che l'affare non si sia aperto.
Pertanto, come raccomandato dagli sviluppatori, controllate dopo un minuto se un ordine è stato aperto e solo allora procedete.
iBarShift() funziona bene per ottenere il numero di barra dalla storia, ma come otterreste il numero di barra per questo codice se spostate la linea a destra - oltre la barra zero?
iBarShift() funziona bene per ottenere il numero di barra dalla storia, ma come posso ottenere il numero di barra per questo codice se sposto la linea a destra - oltre la barra zero?
demlin:
Еще вопрос: какой функцией можно вытащить стоимость одного пункта инструмента?
https://docs.mql4.com/ru/constants/marketinfo
MarketInfo(Symbol(), MODE_TICKVALUE);Per favore, ditemi quale codice dovrebbe essere scritto nell'EA per fare in modo che l'EA scambi solo una volta all'ora
Per esempio, l'EA si è attivato, un ordine è aperto (non mi interessa oltre), vorrei che l'ordine non si aprisse sulla barra corrente su un timeframe orario
tutto si assomiglia:
int hh;
int CurrentHour;
CurrentHour=TimeHour(TimeCurrent());
se (CurrentHour!=hh)
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point);
hh=TimeHour(TimeCurrent());
}
ma ho innumerevoli ordini aperti
Ciao a tutti!
Per favore, ditemi cosa significa questo:
Ordine di acquisto ...... fallito [timeout del trade]
Sono specificamente interessato a che tipo di timeout è.
https://www.mql5.com/ru/forum/112612
Questa è una risposta del server scaduta --- se l'affare si è aperto o no. E non c'è garanzia che il commercio non si sia aperto.
Quindi, devo controllare se l'ordine è aperto in un minuto e poi continuare il trading.
rlx:
deve essere impostato prima di start() e init()
int hh = 0;
int init()
{
return(0);
}
int start()
{
//-------------------------------------------------
int countorder;
countorder=OrdersTotal();
if (countorder==0)
{
Alert ("nessun ordine aperto");
}else
{
Alert ("hanno ordini aperti");
}
int hh;
int CurrentHour;
CurrentHour=TimeHour(TimeCurrent());
if ((CurrentHour!=h)&&(countorder==0))
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point);
hh=TimeHour(TimeCurrent());
}
//-------------------------------------------------
return(0);
}
int deinit()
{
return(0);
}
Ho fatto come hai detto, nessun effetto, ho aggiunto il conteggio degli ordini aperti, ora apre gli ordini subito dopo la chiusura
L'ho aggirato tramite OrderCloseTime() - ora sembra funzionare
int countorder;
countorder=OrdersTotal();
if (countorder==0)
{
Alert ("no open orders");
}else
{
Alert ("have open orders");
}
int hh;
int CurrentHour;
int LastOrderCloseTime;
CurrentHour=TimeHour(TimeCurrent());
OrderSelect(HistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY);
hh=TimeHour(OrderCloseTime());
se ((CurrentHour!=hh)&&(countorder==0))
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-3*Point,Bid+3*Point);
}
https://www.mql5.com/ru/forum/112612
Questo è il periodo di attesa per il server per rispondere --- se un trade è stato aperto o no. E non c'è garanzia che l'affare non si sia aperto.
Pertanto, come raccomandato dagli sviluppatori, controllate dopo un minuto se un ordine è stato aperto e solo allora procedete.
Tuttavia, non voglio essere una spina nel fianco.
Spiegatemi come si apre un ordine se OrderTotal() è zero.
Grazie.
Qui sotto c'è la figura con le parentesi che limitano il blocco di codice che viene eseguito sotto la condizione
Le operazioni OrderSend() non sono interessate da questa condizione.
come ottenere un numero di bar, nel "futuro" :)
iBarShift() funziona bene per ottenere il numero di barra dalla storia, ma come otterreste il numero di barra per questo codice se spostate la linea a destra - oltre la barra zero?
come ottenere un numero di bar, nel "futuro" :)
iBarShift() funziona bene per ottenere il numero di barra dalla storia, ma come posso ottenere il numero di barra per questo codice se sposto la linea a destra - oltre la barra zero?
Si può ottenere un offset relativo a Time[0]
Si può ottenere un offset relativo a Time[0]
Grazie! Ora è tutto a posto!