[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 261

 

Ragazzi, cosa significa un numero intero non valido come parametro 10 per la funzione OrderSend e come risolverlo?

 
Pyxlik2009:

Ragazzi, cosa significa un numero intero non valido come parametro 10 per la funzione OrderSend e come risolverlo?

Per favore, datemi una linea di codice dove si verifica

 
Pyxlik2009:

Ragazzi, cosa significa un numero intero non valido come parametro 10 per la funzione OrderSend e come risolverlo?


Il tempo di scadenza dovrebbe essere un numero intero.
 
Roll:

Il tempo di scadenza dovrebbe essere un intero.
Non ho nemmeno qualcosa di frazionario nelle impostazioni
 
sergey_r:
Sì, ma il mio ordine è piazzato alla chiusura della barra e ho bisogno del prezzo attuale. Se il prezzo attuale è inferiore al minimo della barra precedente... Se il prezzo attuale è sceso al di sotto del precedente, allora l'ordine viene piazzato

prova questo

if (Bid<iLow(NULL, 0, 1)


 
Pyxlik2009:
Non ho nemmeno qualcosa di frazionario nelle impostazioni

Fare riferimento al decimo parametro della funzione di cui sopra. Impostatelo a 0.
 
paukas:
Esiste una cosa come un copione. Quando è necessario, basta eseguirlo.


Il punto non è eseguire l'azione una volta sola. Il punto è che eseguendo questo script, leggerà il tempo della sua impostazione ma non il tempo attivato.

Pertanto, il tempo stesso dell'attivazione dell'ordine pendente non viene salvato da nessuna parte nel terminale. Ho solo bisogno di conoscere questo tempo e sarebbe ideale usare la funzione integrata MQL4 PendingOrderFilledTime(), se esiste. In questo caso MT4 stesso monitorerebbe gli ordini pendenti e mi fornirebbe un risultato pronto.

Quindi, non vedo altra soluzione che usare un Expert Advisor o uno script in loop su un grafico. Perché lo chiedo qui? Forse, qualcuno ha avuto un problema simile e lo ha risolto elegantemente, senza un Expert Advisor o uno script, usando solo i mezzi di MQ4.


LazarevDenis:

Non capisco perché non sei soddisfatto dell'EA, sembra che tu non abbia intenzione di costruire un complesso sistema di trading a rete neurale con auto-ottimizzazione, hai solo bisogno di controllare ogni tick per vedere se il pendolo sta lavorando e quando è innescato otterresti un messaggio di testo sullo schermo o uno audio o entrambi, la calcolatrice può gestire questo compito, non ti preoccupi dei computer o hai solo problemi di scrittura?

Non ho nessun problema a scriverlo. Non voglio usare uno strumento improvvisato per ricevere informazioni dal terminale. Un Expert Advisor è una soluzione ad un problema a testa alta.

Se ogni compito, per il quale non esiste una funzione standard di MQ4, fosse risolto da un Expert Advisor, il terminale li avrebbe. E non è bene creare ulteriori anelli deboli nella catena. Quando si hanno molti terminali aperti e ognuno di essi ha bisogno di un EA e di controllare se c'è o no, siete d'accordo che è scomodo e poco saggio. Scrivere un controllo per l'allegato dell'EA e costringerlo ad eseguire lì è la stessa cosa, quindi perché complicare la questione, se forse qualcuno ha già risolto questo problema usando la combinazione di funzioni MQL4 esistenti?

 
Starting:
...forse qualcuno ha già risolto un problema simile con una combinazione di funzioni MQL4 esistenti.
L'ho letto e non capisco la logica. Supponiamo che la funzione di cui avete bisogno sia disponibile, come la usereste? Dovrete comunque inserirlo in un Expert Advisor o in uno script.
Quindi, la questione non riguarda l'assenza di una funzione speciale (e non si può ringraziare per ogni starnuto), ma la complessità di scrivere un codice che soddisfi le vostre esigenze.
 
granit77:
L'ho letto e non capisco la logica. Ok, diciamo che c'è una funzione di cui avete bisogno, come la userete? Dovrete comunque inserirlo in Expert Advisor o in uno script.
Quindi la questione non riguarda la mancanza di una funzione speciale (e non si può ringraziare per ogni starnuto), ma la difficoltà di scrivere codice che soddisfi i vostri requisiti.

L'uso è semplice - eseguo uno script che scrive i dati dell'ultimo trade chiuso con il primo tempo di apertura. I ciondoli attivati dallo script causano confusione nelle file degli ordini chiusi. Nel momento in cui lo script si avvia, non ha nessun posto dove ottenere i dati sugli ordini pendenti che si attivano, poiché la loro data di attivazione è fissata nella storia, non la data del loro completamento.


Un semplice esempio.

L 'ordine pendente 1 è stato fissato il 01.01.2011.

02.01.2011 è stato aperto un ordine di mercato 2.

Il 03.01.2011 l'ordine pendente 1 è scattato ed è diventato l'ordine a mercato 1 il cui OrderOpenTime() mostrerà il 01.01.2011, anche se in realtà è diventato ordine a mercato il 03.01.2011.

04.01.2011 l'ordine di mercato 2 è stato chiuso.

05.01.2011 l'ordine di mercato 1 è stato chiuso.

Nella cronologia, la data del 02.01.2011 dell'ordine di mercato 2 sarà data come data di apertura dell'ultimo ordine chiuso con l'ultima data di apertura.

In realtà la data di apertura più recente (attivata) dell'ultimo ordine pendente chiuso 1 è il 03.01.2011.

Questa è la domanda, è possibile ottenere la data effettiva di attivazione dell'ordine per ordinare correttamente gli ordini chiusi in base alla loro data di apertura senza che l'Expert Advisor controlli il conto?


Immaginate di fare trading, di avere ordini pendenti, impostati molto tempo fa. E ora vedete che alcuni di essi si sono attivati, per poi chiudersi dopo qualche tempo. Ma saranno considerati dal loro tempo "arruffato" di collocamento, anche se sono stati collocati un anno fa, ma attivati e chiusi solo oggi. Si vuole vedere ciò che è stato realmente aperto o innescato nel mercato per ultimo, quindi sarebbe dato per ultimo, e non tutto ciò che è stato una volta mescolato con quelli del mercato che sono stati aperti davvero di recente. Grazie per l'attenzione alla mia domanda.

 

Signori, potete dirmi dove ho sbagliato quando ho inserito questa funzione di temporizzazione nel mio codice EA?

int init()
  {
  
bool isTradeTimeInt (int hb=05,int mb=50,int he=23,int me=00) 
    {
  datetime db, de;           // Время начала и окончания работы
  int      hc;               // Часы текущего времени торгового сервера

  db=StrToTime(TimeToStr(TimeCurrent(), TIME_MINUTES)+" "+hb+":"+mb);
  de=StrToTime(TimeToStr(TimeCurrent(), TIME_MINUTES)+" "+he+":"+me);
  hc=TimeHour(TimeCurrent());
  if (db>=de) {
    if (hc>=he) de+=24*60*60; else db-=24*60*60;
  

  if (TimeCurrent()>=db && TimeCurrent()<=de) return(True);
  else return(False);
}
   return(0);
  }

Il compilatore mi ha inondato di errori.