Come codificare? - pagina 263

 

È possibile trascinare una linea su e giù...?

Salve,

è possibile che una linea di livelli (o una linea di livelli "effettiva") in una finestra separata dell'indicatore sia spostabile (cioè "trascinata") manualmente e che il nuovo valore delle impostazioni sia aggiornato in un EA che usa queste per iniziare ed uscire da un trade?

Ho letto che ci sono script drag 'n drop in cui è possibile spostare una linea, ma non so se è possibile incorporare / unire tale script in EA.

 
 
yourspace:
ciao

forse è giusto, si può provare.

doppio upper_red = iCustom(NULL,0, "DDM",Nmbr_Bars,Order,Ecart,3,0);

Non cambia nulla, ma comunque serbatoi per la reazione.

Forse qualcuno conosce un indicatore simile?

edit: ho risolto, l'indicatore "i-Regr H&L" è quasi lo stesso, questo disegna normalmente.

 

Risparmiatore di quote

Ciao,

Voglio salvare i dati dei tick attuali in un file csv. Ogni settimana o mese voglio salvare un file csv.

Così nella mia init-function aprirò un nuovo file e ogni tick faccio un

FileWrite(handle_tick,TimeToStr(CurTime(),TIME_DATE|TIME_MINUTES|TIME_SECONDS),Bid,Ask);

Ora ho alcuni problemi / domande:

1.

Quando c'è un problema con la scrittura nel file l'ea si ferma per il buco (settimana/mese) e non può aprirlo di nuovo.

-Devo scrivere FileOpen(...) ogni tick? O devo usare FileFlush(...)?

2.

C'era anche un problema con il tempo salvato. Se lo confrontavo con il tempo del grafico, o con il tempo del centro storico, c'era una grande differenza (non statica, a volte per esempio 39minuti, o 87minuti).

Devo salvare il CurTime o quale tempo?

3.

Ci sono delle interruzioni nella mia connessione internet (per esempio 2-5 minuti, circa 3 volte al giorno).

Come posso controllare automaticamente le mie quotazioni salvate, in modo che l'ea recuperi i dati dei minuti mancanti dalla cronologia?

E come posso recuperare i dati dei tick se la connessione internet è stata persa? C'è anche un centro storico o un buffer per le ultime ore?

4.

Qualcuno conosce un modo semplice per combinare automaticamente i singoli file csv-quote?

5.

Voglio anche salvare i dati di tick e minuti dai cfd come Ger30! Se salvo il file .csv mensilmente, ma il nuovo contratto, che arriva ogni 3 mesi, cambia durante il mese. Allora l'EA non può trovare i dati perché il sottostante attuale (il contratto "Juli" non è più valido, ma ora ad esempio il contratto di settembre) non funziona più.

Forse c'è già un EA affidabile per questo problema?

 

Dopo ogni FileWrite, dovreste fare un flush del file per assicurarvi che i dati vengano scritti su disco dopo ogni scrittura. Se il flush non viene usato, il file system memorizza le scritture in un buffer di memoria e poi scrive tutti i record nel buffer su disco per efficienza. Questo può essere il motivo per cui stai perdendo dei record; l'ea si ferma e tu perdi i record di memoria. Il file flush scriverà ogni record su disco, più lento ma assicura che li abbiate tutti. Con il file flush, potete aprire il file usando Excel mentre l'EA è in esecuzione ed esaminarlo in modalità di sola lettura.

Nella funzione deinit, controllate che l'handle del file sia > 0 e poi chiudete il file.

Ciò laverà automaticamente il buffer di memoria

Durante l'apertura ci sono opzioni per creare un nuovo file su disco o per aggiungere un file esistente. Sembra che tu debba usare il metodo append to an existing file. Questo risolverà automaticamente l'unione dei file. Puoi aprire ogni file CSV in un'istanza separata di Excel e tagliare e incollare, potresti anche usare Notepad. In Excel puoi salvare il file unito come CSV o usare Excel come database per memorizzare le informazioni unite in un formato XLSX. Oppure si potrebbe ottenere VB express da MS, è gratuito, imparare VB e scrivere un file merge in quel linguaggio.

L'opzione migliore è cercare altri esempi di salvataggio delle zecche.

Saluti

 

Ho anche un'altra domanda:

6.

È utile salvare il bid, l'ask e il volumen nel mio tick-file?

7.

Qualcuno ha un tutorial su come fare il backtest tickdata con metatrader 4 o/e 5?

C'è un esperto là fuori che potrebbe aiutare il mio? Potete anche rispondere per messaggio privato...

Grazie!

julia

 

Soprattutto cosa c'entrano i CFD? Cambiano il contratto ogni tre mesi! Quindi come posso programmare questo nel mio tick-saver.mq4, che il cambio del sottostante avviene automaticamente e non perdo nessun tick?

 

Ciao a tutti, ho bisogno di aiuto per utilizzare 1 EA su più grafici!

Riassunto della mia domanda:

Ho un EA che piazza solo 1 ordine alla volta utilizzando la variabile total = OrdersTotal() . Un nuovo ordine si aprirà solo quando questo 1 ordine sarà chiuso.

Come posso modificarlo in modo che due diverse coppie di valute possano avere ciascuna 1 ordine aperto senza che la stessa coppia di valute abbia 2 ordini aperti?

Quello di cui ho bisogno sono linee di codice che mi permettano di fare questo:

piazzare 1 ordine (diciamo con magic # 12345) se non c'è già un ordine aperto con quel magic# specifico.

oppure, piazzare 1 ordine se non c'è già un ordine dello stesso orderymbol aperto.

--------------------------

versione più lunga del mio problema:

Recentemente ho modificato un semplice EA basato sull'immissione di ordini quando le linee 10 e 5 SMA si incrociano.

Funziona bene con il mio grafico EURUSD e piazza solo un ordine alla volta, sia di acquisto che di vendita, perché ho queste righe di codice:

totale = OrdiniTotali();

se(totale < 1)

--allora piazza un ordine

Quando ho creato un duplicato dell'EA e l'ho applicato al grafico EURJPY, tuttavia, ho dovuto cambiare il codice in

totale = OrdiniTotali();

if(totale < 2)

--in modo che piazzasse un ordine se un ordine era già aperto sul grafico EURUSD.

Il problema è che quando l'ordine EURUSD si chiude, un secondo ordine EURJPY può aprirsi e l'EA EURUSD non piazza un nuovo ordine perché c'è già un ordine EURJPY aperto.

Do alle diverse coppie numeri magici separati. Avevo un ordine aperto sul mio grafico EURUSD con il numero magico 22341 e ho provato a usare una nuova variabile per il mio grafico EURJPY:

tott = OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderMagicNumber() == 22341) //22341 è il numero magico per gli ordini EURUSD

totale = OrdiniTotali();

if(total < 2 && tott == true)

--allora viene piazzato un ordine per EURJPY

ma diventa complicato lasciare che gli EA funzionino da soli... specialmente se aggiungo una terza coppia di valute USDJPY su cui voglio che il mio EA funzioni.

qualsiasi aiuto è apprezzato!

modifica:

ho deciso di usare i numeri magici:

totale= 0;

for(int i=0;i<OrdersTotal(); i++ )

{

if(OrderSelect(i, SELECT_BY_POS)==true)

{

if (OrderMagicNumber()==12341)

totale++;

}

}

{

se(totale < 1)

--allora verrà effettuato uno scambio

 

Backtesting dei tickdata

Sunshineh,

"7. Qualcuno ha un tutorial su come fare il backtesting dei tickdata con metatrader 4 o/e 5?"

Una vecchia build - credo fosse la 208 - era l'ultima che faceva i dati in tick. È stata postata da qualche parte, cerca prima in TSD.

Se riesci a risolvere tutto questo, vorrei usarlo anch'io. So anche di un thread dove questo è risolto in modo accettabile, anche se potrebbe non essere su TSD.

Grande essere

 

Come far capire all'EA che la barra precedente ha chiuso sopra la BB?

Ciao a tutti,

Sto cercando di fare in modo che l'EA registri quando una barra chiude al di fuori delle bande di bollinger, per poi iniziare un trade se questo è successo nella barra precedente

e le ema si incrociano o qualcosa del genere. Il mio codice finora assomiglia a questo

int bar, sll;

if( Close[0] > bollingerband ){

bar = Bars;}

if( bar+1 == Bars){

se(ema1>ema2){

sll = 1}

if( bar+2 == Bars ){

bar = 0;}

Sfortunatamente questo non sembra funzionare e ho anche provato a renderlo una variabile statica e globale. Quindi sarei molto grato se qualcuno potesse indicarmi la giusta direzione.

Grazie,

Sapere

Motivazione: