Chiunque volesse vedere i grafici senza barre mancanti - qui =) - pagina 9

 
Ho capito il motivo per cui gli sviluppatori hanno proibito agli EA di lavorare sui grafici offline.
Penso che abbia a che fare con il fatto che per i grafici offline il Bid e Ask restituiscono 0. Cioè, per gli Expert Advisors che vogliono aprire sul mercato è impossibile. Ma ho trovato la seguente soluzione per il mio EA che funziona solo con gli ordini pendenti: cambiare Bid e Ask per _Bid() e _Ask() usando la sostituzione automatica. _MarketInfo() restituisce lo spread per lo strumento scambiato.

int _MarketInfo(string symb_for_work)
{
   if(symb_for_work=="USDCHFm") return(4);
   if(symb_for_work=="CHFJPYm") return(5);
   if(symb_for_work=="GBPUSDm") return(3);
   if(symb_for_work=="USDCADm") return(5);
   if(symb_for_work=="USDJPYm") return(3);
   if(symb_for_work=="EURGBPm") return(4);
   if(symb_for_work=="AUDUSDm") return(4);
   if(symb_for_work=="EURCHFm") return(4);
   if(symb_for_work=="EURJPYm") return(5);
   if(symb_for_work=="EURUSDm") return(2);
   if(symb_for_work=="NZDUSDm") return(6);
   if(symb_for_work=="AUDJPYm") return(6);   
 
return(0);
}
 
double _Bid()
{
   return(Close[0]);
}
 
double _Ask()
{
   return(Close[0]+_MarketInfo(symbol_for_trade)*Point);
}
Penso che l'idea sia chiara. A giudicare dai primi risultati dell'EA rivisto, gli ordini si aprono normalmente. Ora è il fine settimana, quindi lo testerò nei dettagli quando il trading inizierà la prossima settimana. Penso che sarò in grado di realizzare ciò che volevo inizialmente.
 
IMHO, sciocchezze ...
Se gli sviluppatori hanno visto che "per i grafici offline Bid e Ask restituiscono 0",
cosa impedisce loro di ripararlo?
 

Beh, i grafici offline possono essere aggiornati abbastanza di rado, per esempio. E durante l'intervallo di aggiornamento, per esempio 1-2 minuti, il reale Ask e Bid può andare abbastanza lontano da quello che viene visualizzato nel grafico offline. E RefreshRates() non aiuterà affatto in questo caso. Beh, ci deve essere stata qualche altra ragione oltre a quella già scoperta. Ma solo gli sviluppatori possono rispondere a questo.

 
solandr:

Beh, i grafici offline possono essere aggiornati abbastanza di rado, per esempio. E durante l'intervallo di aggiornamento, per esempio 1-2 minuti, il reale Ask e Bid può andare abbastanza lontano da quello che viene visualizzato nel grafico offline. E RefreshRates() non aiuterà affatto. Beh, ci deve essere stata qualche altra ragione oltre a quella già scoperta. Ma solo gli sviluppatori possono rispondere a questo.

Giusto, se il grafico non viene aggiornato, l'offerta diventerà obsoleta.
Ma anche Close[0] lo farà!

Non si possono usare prezzi consapevolmente sbagliati in un Expert Advisor di trading.
Utilizzare MarketInfo( MODE_BID ) e MarketInfo( MODE_ASK ) per ottenere un nuovo prezzo)
 

Fondamentalmente, sono abbastanza soddisfatto di Close[0] ;o)
Non ho fretta. Ho persino rallentato l'Expert Advisor di proposito ;o) secondo il seguente principio:

1. Se il prezzo corrente è almeno 50 pips lontano dal provider, il provider può modificare l'ordine del provider solo se è necessario spostarlo di almeno 10 pips.
2. Se il prezzo corrente è all'interno del range di 25...50 pip dall'"Oder", l'Expert Advisor è autorizzato a modificare l'"Oder" solo se è necessario modificare l'ordine di 5 pip o più.
3. Se il prezzo corrente è più vicino di 25 pip all'ordine, l'Expert Advisor sposterà gli ordini pendenti di 2 pip o più.

Questo schema ci permette di ridurre il numero di movimenti di ordini pendenti di almeno 5 volte, se non di più! :o) Risulta essere da 0 (di notte) a 20 (durante le notizie) movimenti all'ora su un totale di circa 60 ordini pendenti (per 12 valute)! Cioè, probabilmente non ci sono più di 200 mosse al giorno, e non tutti i giorni. In generale, penso che nel trading manuale le persone possono spostare gli ordini anche di più, se seguono una certa strategia e giocano con la stessa quantità di coppie di valute! ;o)

 

komposter, ancora una volta un GRANDE GRAZIE per aver sviluppato un Expert Advisor che fonde le candele del giorno della domenica con quelle del lunedì!!!
Ho lavorato con il tuo script per un mese sul reale. Ho avviato lo script per elaborare 19 coppie di valute (tutte disponibili su InterbankFX) per 600 barre intraday ciascuna. Ho impostato il tempo di aggiornamento dei grafici a 1 minuto. Tutto funziona senza problemi sulla CPU VIA C3 800 MHz!

Ho notato una piccola caratteristica, presumo che sia una caratteristica del terminale, non dell'Expert Advisor, al quale personalmente non ho nulla da rimproverare! Quando lavorando in Metaeditor provo a compilare qualsiasi EA che non è nemmeno attaccato a un grafico, il terminale genera errori nei suoi log. Allo stesso tempo questo fatto si presenta in modo stabile sia su processori a 800MHz, sia su P4 3GHz e Celeron 2GHz. Costruire 198. Non l'ho provato su 200 perché ci sono alcuni problemi con gli aggiornamenti su InterbankFX (la richiesta di aggiornamento appare ma le build non vengono scaricate - ma non importa).
******************************
2006.12.09 03:26:29 WithoutSunday_4: handle non valido -1 in FileFlush
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteInteger
2006.12.09 03:26:29 29 WithoutSunday_4: handle -1 non valido in FileSeek
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileFlush
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteInteger
2006.12.09 03:26:29 29 WithoutSunday_4: handle -1 non valido in FileSeek
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileFlush
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteInteger
2006.12.09 03:26:29 29 WithoutSunday_4: handle -1 non valido in FileSeek
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileFlush
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteInteger
2006.12.09 03:26:29 29 WithoutSunday_4: handle -1 non valido in FileSeek
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileFlush
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteInteger
2006.12.09 03:26:29 29 WithoutSunday_4: handle -1 non valido in FileSeek
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileFlush
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteDouble
2006.12.09 03:26:29 29 WithoutSunday_4: handle non valido -1 in FileWriteInteger
2006.12.09 03:26:29 29 WithoutSunday_4: handle -1 non valido in FileSeek
2006.12.09 03:26:29 29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory("WS_AUDNZDm1440. hst", FILE_BIN | FILE_WRITE ) - Error #4102
2006.12.09 03:26:29: FileOpen - troppi file aperti
2006.12.09 03:26:29 29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory("WS_NZDJPYm1440. hst", FILE_BIN | FILE_WRITE ) - Error #4102
2006.12.09 03:26:29: FileOpen - troppi file aperti
2006.12.09 03:26:29 29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory("WS_AUDCADm1440. hst", FILE_BIN | FILE_WRITE ) - Error #4102
2006.12.09 03:26:29: FileOpen - troppi file aperti
2006.12.09 03:26:29:29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory("WS_EURCADm1440. hst", FILE_BIN | FILE_WRITE ) - Error #4102
2006.12.09 03:26:29: FileOpen - troppi file aperti
2006.12.09 03:26:29 29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory("WS_EURAUDm1440. hst", FILE_BIN | FILE_WRITE ) - Error #4102
2006.12.09 03:26:29: FileOpen - troppi file aperti
2006.12.09 03:26:29 29 WithoutSunday_4 EURUSDm,Daily: Alert: FileOpenHistory("WS_GBPCHFm1440. hst", FILE_BIN | FILE_WRITE ) - Error #4102
2006.12.09 03:26:29: FileOpen - troppi file aperti
*****************************

Di solito, dopo che appare, riavvio semplicemente il terminale e tutto continua a funzionare normalmente 24 ore su 24!
Lo scrivo solo per informazione e non per cercare di risolvere il problema. Penso che non si possa fare a meno dell'aiuto degli sviluppatori.

Vi scrivo con la seguente richiesta. L'Expert Advisor per il calcolo delle regressioni lineari e paraboliche menzionato sopra in questo ramo funziona utilizzando le quotazioni generate da questo script. I calcoli di regressione sono basati sulla media dei parametri della barra, cioè un valore di (O+H+L+C)/4 è preso come valore di riferimento. Ma a giudicare dalle mie osservazioni a lungo termine, suppongo che questo modello di letture (O+H+L+C)/4 non sia del tutto riuscito. Piazzo uno stop per un ordine aperto sul confine del livello di confidenza del 95% sul confine del 99,9%. Tuttavia, ci sono stati casi in cui il prezzo ha superato il confine dell'intervallo di confidenza del 99,9% di pochi pip. Allo stesso tempo, il numero di questi casi è superiore al valore consentito secondo i dati statistici! Ecco perché volevo davvero verificare la mia ipotesi che se prendiamo il modello di High e Close come base per i calcoli, questo limite sarà statisticamente più accurato. L'Expert Advisor è molto ingombrante - 184kB in un file mq4. Ci sono molti posti dove si fa riferimento alle citazioni. Se correggo l'EA per un nuovo modello, oltre al fatto che è abbastanza laborioso, c'è un'alta probabilità di introdurre errori in un algoritmo di calcolo abbastanza complesso, che secondo me è già ben testato e funziona in modo affidabile.

Per questo vorrei chiedervi di migliorare l'ultima versione dello script in modo che formi le quotazioni del periodo H12 dai candelieri giornalieri ricevuti.
La barra H12 che apre alle 00:00 dovrebbe avere i valori O=H=L=C=Low della barra giornaliera iniziale.
La barra H12 che apre alle 12:00 dovrebbe avere valori O=H=L=C=High della barra giornaliera iniziale.
Inoltre, l'Expert Advisor dovrebbe essere in grado di scambiare i valori, cioè la barra H12 alle 00:00 = Alto della barra giornaliera iniziale, la barra H12 alle 12:00 = Basso della barra giornaliera iniziale.
Durante gli aggiornamenti del grafico in tempo reale, l'Expert Advisor dovrebbe passare l'ultima barra H12 del giorno corrente senza elaborazione, cioè con i valori attuali di O,H,L,C per ogni barra H12.
L'elaborazione descritta delle barre dovrebbe essere fatta solo dopo la chiusura della candela giornaliera, quando non ci sono più cambiamenti nelle barre H12 del giorno chiuso.
Se potete aiutarmi a migliorare lo script esistente secondo il metodo descritto, migliorerà MOLTO il controllo del modello High-Low in termini di analisi statistica della creazione dei canali. Prometto di presentare qui i risultati dei confronti. Penso che sarà interessante per molte persone interessate all'elaborazione statistica dei dati leggerli. GRAZIE in anticipo!!!

 
solandr:

InterbankFX sta avendo alcuni problemi con l'aggiornamento (l'invito ad aggiornare appare, ma la build non viene scaricata - ma questo non importa)

Dai nuovi server reali non si aggiorna davvero. Con il server demo di liveupdate si connette senza problemi.
 

Da parte mia, proverò prima a controllare il calcolo del canale solo per High e Low individualmente. Vedrò i risultati. Se i canali ottenuti con campioni diversi coincidono in lunghezza, possiamo probabilmente fare a meno di un nuovo script per il periodo H12. Cioè, useremo i dati su High per i confini superiori dei canali, e i dati su Low per i confini inferiori. Forse vi sto disturbando per niente con le mie richieste se tutto può essere risolto molto più facilmente nel mio EA? Penso che non sia difficile da implementare nel mio Expert Advisor.

 
komposter Ho un problema qui, puoi dirmi cosa fare? Tutti i dettagli sono qui http://forum.kimiv.ru/viewtopic.php?t=177
 
solandr:

Ho notato una piccola cosa, che presumo sia una caratteristica del terminale e non dell'EA, alla quale personalmente non ho nulla da ridire! Quando Expert Advisor è in esecuzione e compilo qualsiasi EA in Metaeditor, che non è nemmeno collegato a nessun grafico, c'è un errore nei log del terminale.

Scusa se non ho risposto per molto tempo - sono appena tornato dalle vacanze...

Il problema, mi sembra, è che EA non chiude i file aperti. La domanda è perché non lo fa =)
L'unico presupposto è che durante la compilazione, la funzione di avvio degli EA funzionanti venga fermata forzatamente.

E al prossimo "avvio", i file vengono riaperti, ma non c'è "abbastanza spazio" (massimo 32 file aperti).

Lo stesso Expert Advisor non gestisce molto correttamente questa situazione: anche se un file non è stato aperto, cerca comunque di scriverci dei dati.
Corretto - aggiunta una linea =)
if ( HistoryHandle[curChart] < 0 ) continua;


allegato Expert Advisor.



Per quanto riguarda i grafici H12. "Got time but no money" non riguarda me =)
Anche se ho anche questi 2 valori inversamente correlati - più tempo libero, meno soldi e viceversa.

Al momento non posso fare beneficenza - ho troppo lavoro.
E il forum è di 5 pagine (*30 argomenti) non letti....
File: