1 EA può monitorare e negoziare più coppie di valute da un solo grafico? - pagina 2

 
angevoyageur:

Se non vuoi rispondere alla sua domanda, non rispondere, è semplice. Non c'è bisogno di offendere le persone.

E credetemi, è disponibile anche per me, se ho postato tutto quello che voglio postare, ho 1000 punti di valutazione in più, almeno.



se avesse fatto qualche ricerca e cercato in Code Base avrebbe trovato per esempio https://www.mql5.com/en/code/11176

e si possono trovare altri esempi del genere, il modo in cui sta chiedendo ora sembra a me e credo ad altri

che non fa abbastanza per imparare a codificare e vuole ottenere da altri di codificare per lui per ottenere esempi di come fare trading di un EA diversi simboli

senza fare alcun tentativo da solo...

Come CodeMonkey ha scritto a xennon

Il problema qui non è che non può essere fatto, è che non ti sei preso la briga di provare a farlo. '

.

se xennon si fa fare queste risposte che non gli piacciono allora è anche il suo modo di reagire ad esso un modo sbagliato

Penso che tu capisca la situazione come la vedo io...

 
deVries:


se avesse fatto qualche ricerca e guardato in Code Base allora avrebbe trovato per esempio https://www.mql5.com/en/code/11176

e si possono trovare più esempi di questo tipo, il modo in cui sta chiedendo ora sembra a me e credo ad altri

che non fa abbastanza per imparare a codificare e vuole ottenere da altri di codificare per lui per ottenere esempi di come fare trading con un EA diversi simboli

senza fare alcun tentativo da solo...

Come CodeMonkey ha scritto a xennon

Il problema qui non è che non può essere fatto, è che non ti sei preoccupato nemmeno di provare a farlo. '

.

se xennon si fa fare queste risposte che non gli piacciono allora è anche il suo modo di reagire ad esso un modo sbagliato

penso che tu capisca la situazione come la vedo io...

Certo, sono d'accordo.

Ma sono anche d'accordo che se qualcuno risponde, non c'è bisogno di offendere l'OP (o qualsiasi altro utente). Penso che questo forum abbia bisogno di un'atmosfera migliore.

 
deVries:

xennon: è registrato da gennaio 2012 e ora viene qui con questa domanda?

mi sembra che sia il momento per lui di fare qualche ricerca leggendo e imparando

se vuole fare questo EA allora deve venire con il suo tentativo se ha problemi a farlo

è possibile .... dopo più di 2 anni, ora lo sa di sicuro


Sì, 2 anni e allora?! Non significa che sono stato attivamente impegnato in MQL, vero? - Infatti la mia esperienza collettiva con MQL è probabilmente meno di un mese, TOTALE. Ti suggerisco di contribuire con qualcosa di positivo e utile o xxxx. Che affermazione stupida e idiota da fare.
 
xennon:

Sì, 2 anni e allora?! Non significa che sono stato attivamente a pasticciare in MQL, vero? - Infatti la mia esperienza collettiva con MQL è probabilmente meno di un mese, TOTALE. Ti suggerisco di contribuire con qualcosa di positivo e utile o xxx. Che affermazione stupida e idiota da fare.

Vi consiglio già di stare attenti al linguaggio. Questo è il mio ultimo avvertimento.

Grazie.

 
xennon:

Sì, 2 anni e allora?! Non significa che sono stato attivamente impegnato in MQL, vero? - Infatti la mia esperienza collettiva con MQL è probabilmente meno di un mese, TOTALE. Ti suggerisco di contribuire con qualcosa di positivo e utile o xxxx. Che affermazione stupida e idiota da fare.


l'esempio da codebase che ho indicato ???? https://www.mql5.com/en/forum/149766/page2#915892

 
xennon:

Mi sto chiedendo se è possibile avere un singolo EA in esecuzione su qualsiasi coppia di valute, ma fargli monitorare più coppie di valute e rispondere ai trigger quando si presentano in ogni coppia.

Essenzialmente, voglio un EA che effettui il polling di tutte le coppie di interesse, verifichi i criteri preconfigurati su ciascuna di esse e risponda con acquisto/vendita/chiusura/avvisi come richiesto.

Sospetto che questo non possa essere fatto, ma sarei interessato a sentire se qualcuno ha qualche idea su come raggiungere questo obiettivo senza dover aprire molti grafici e applicare l'EA ad ogni grafico separatamente principalmente nell'interesse dell'efficienza (meglio avere 1 blocco di codice invece di una dozzina?)


Grazie.


I miei soldi sarebbero su un array di stringhe per i simboli e poi passare attraverso un ciclo per tutti i simboli di interesse

Qualcosa come

string nameArray[]={"EURUSD","...","USDJPY"};

poi

for(x=numberOfSymbols;x>=0;x--)
   {
   string symbol=nameArray[x];
   CustomCondition(symbol)
   ....
   .....
//or something like that
 
xennon:

Mi sto chiedendo se è possibile avere un singolo EA in esecuzione su qualsiasi coppia di valute, ma fargli monitorare più coppie di valute e rispondere ai trigger quando si presentano in ogni coppia.

Essenzialmente, voglio un EA che effettui il polling di tutte le coppie di interesse, verifichi i criteri preconfigurati su ciascuna di esse e risponda con acquisto/vendita/chiusura/avvisi come richiesto.

Sospetto che questo non possa essere fatto, ma sarei interessato a sentire se qualcuno ha qualche idea su come raggiungere questo obiettivo senza dover aprire molti grafici e applicare l'EA ad ogni grafico separatamente principalmente nell'interesse dell'efficienza (meglio avere 1 blocco di codice invece di una dozzina?)


Grazie.

Ciao xennon,

La risposta breve alla tua domanda è sì.

Ho pensato di fare qualcosa di simile ma non ho ancora avuto modo di codificare nulla quindi vi darò lo schema di base di come strutturerei il codice ma non i dettagli perché sarebbe probabilmente meglio se cercaste come codificare ogni parte da soli e faceste riferimento al codebase e ad altre fonti come esempi di codifica come esercizio di apprendimento perché vi aiuterà di più nella futura scrittura del codice che copiare semplicemente il codice dagli esempi e incollare una soluzione senza capire veramente cosa sta succedendo e perché, inoltre vi aiuterà nel debug degli errori di codice. Anche se il codice può essere confuso se non si ha familiarità con la codifica, in quanto alcune terminologie possono essere difficili da seguire.

Anche perché la mia idea non è stata ancora testata o implementata, quindi ci sono forse modi migliori di codificarla o bug che non ho previsto, dato che non sono un codificatore esperto e sono abbastanza arrugginito in generale, quindi se qualcuno ha qualche suggerimento sono tutto orecchie e se ci sono errori non abbattetemi.

L'idea generale è quella di utilizzare l'evento timer al millisecondo, poiché l'evento OnTick funzionerà solo per il grafico a cui è collegato, quindi i tick di altre coppie di valute non genereranno un evento tick e l'EA non verrà eseguito, ma il timer dell'evento al millisecondo può essere attivato più volte al secondo e monitorare le variazioni di prezzo. Usa anche tre array, uno per memorizzare le stringhe dei simboli che vuoi usare e un altro per memorizzare i dati dei prezzi.

Cercherò di spiegarlo un po'. L'array nameArray memorizzerà ogni simbolo come un array ma, cosa più importante, l'elemento dell'array può essere usato per impostare la posizione per gli altri due array in quanto non possono usare una stringa per localizzare una posizione in un array ma il valore dell'indice sì. Dato che i tick per ogni simbolo vengono ricevuti in momenti diversi, i dati scritti nel PriceArray non saranno tutti allo stesso tempo, dato che alcuni simboli sono più attivi in momenti diversi, quindi il secondo array memorizza l'indice per l'array PriceData in modo che possa essere scritto rapidamente senza sovrascrivere i dati passati sul prezzo. Il terzo array scriverà i dati di prezzo necessari richiesti.

Il codice è una combinazione di codice e inglese con ciò che deve essere aggiunto. È molto semplice ma dovrebbe fornirvi un punto di partenza per la vostra idea. Ci sono numerose lacune come ad esempio quando trattare gli array quando raggiungono la fine, ma questo fa parte della curva di apprendimento. Suggerisco di far funzionare il codice con un simbolo e poi due, e così via per permettervi di eliminare e correggere qualsiasi bug nel codice. Come ho detto questa è solo una bozza, quindi usatela come tale e sono possibili miglioramenti, per esempio, potete usare un tipo di dati Struct o un oggetto al posto dei tre array per memorizzare i dati dei tick, ma questo design è un po' più semplice per iniziare e potete guardare alle Strutture e alla programmazione orientata agli oggetti in una fase successiva della codifica.

Ho cercato di essere chiaro ma questo potrebbe essere molto confuso per voi quindi se avete altre domande sulla chiarezza fatemelo sapere e vi aiuterò dove posso ma sfortunatamente non ho tempo per codificare qualcosa di simile.

Ecco lo pseudo codice,

// OnInit ()
    {
     string nameArray[]={"EURUSD","...","USDJPY"};                         // As suggested by thrdel. Creates an array with currency pairs
     int TicksRecorded [#  of symbols monitored];                           // Records the required position in the PriceData array to write the next tick data to for each symbol
     double PriceData [#  of symbols monitored][Ticks][data to record];     // Stores price data for each symbol required for as many ticks as required

     Create the timer and set an appropriate interval
     Open a file to save data if required for future use
     
     for (x=0; x < #  of symboels; x++)                                     // Get all prices for all the symbols you want and store them in the first position of the Ticks and data to record dimensions
           {                                                               // Also adapted from thrdel's code example
            PriceData [x][0][0] = Ask;
            PriceData [x][0][0] = Bid;
            ... whatever else you want to record
           }

// EventSetMillisecondTimer()
    {
     Refresh all price data for all symbols
     for (x=0; x < #  of symbols; x++)                                     // Get all prices for all the symbols you want and store them in the first position of the Ticks and data to record dimensions
           {
            if ((current Ask != to previously recorded Ask for that x) or (current Bid != to previously recorded Bid for that x)... and every other price data you want)
                {
                 TicksRecorded [x]++;                                    // Increments the position in the PriceData array holding the latest tick data for that symbol
                 PriceData [x][TicksRecorded[x]][0] = Ask;
                 PriceData [x][TicksRecorded[x]][1] = Bid;
                 ... and whatever else you want to record
                 Flag to indicate a new tick has been received set to true
                }
            if (new data)
                {
                 Set new data flag to false
                 Do custom action
                }
           }
     }

// OnDeinit ()
     {
      Kill the timer
      Save data to a file if required
     }
 

Io uso semplicemente le variabili globali per permettere al mio ea di monitorare/effettuare trade dall'interno di un grafico.

Anche se devi rendere il tuo ea un po' più robusto e non specifico per un grafico.

 

Perché il seguente non funzionerebbe?


se (questo è vero){

ticket=OrderSend("GBPUSD",OP_SELL,lot,Bid,0,0,0,"",0,0,0,Rosso);

ticket=OrderSend("GBPJPY",OP_BUY,lot,Ask,0,0,0,"",0,0,0,Verde);

ticket=OrderSend("USDJPY",OP_BUY,lot,Ask,0,0,0,"",0,0,0,Verde);

}


scoppia un errore 4106 simbolo sconosciuto

 
Daniel Laverdiere: Perché il seguente non dovrebbe funzionare?

se (questo è vero){

ticket=OrderSend("GBPUSD",OP_SELL,lot,Bid,0,0,0,"",0,0,0,Rosso);

ticket=OrderSend("GBPJPY",OP_BUY,lot,Ask,0,0,0,"",0,0,0,Verde);

ticket=OrderSend("USDJPY",OP_BUY,lot,Ask,0,0,0,"",0,0,0,Verde);

}


scoppia un errore 4106 simbolo sconosciuto

  1. Quando pubblichi il codice, per favore usa il pulsante SRC!

  2. Se il modello di denominazione dei vostri grafici non è esattamente"BasQuo" allora non può funzionare.

  3. Non scambiare più valute in un solo EA.
Motivazione: