Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
No, possono essere qualsiasi cosa tu voglia. proprio come il commento. vedili come una sorta di commento numerico. Tutti i trade manuali aperti con la normale interfaccia utente di MT4 avranno il numero magico 0, quindi puoi per esempio fare un loop su tutti gli ordini e chiudere/cancellare tutti i trade e gli ordini manuali lasciando tutti i trade EA intatti.
Per identificare in modo univoco solo un certo ordine c'è il numero di ticket.
Grazie per aver chiarito e condiviso il tuo punto di vista. Fwiw, ho imparato molto...
Non ho bisogno di MathPow(), perché nessuno ha visto questo?
Sto aggiornando il primo post ora.
Non ho bisogno di MathPow(), perché nessuno ha visto questo?
Mi vengono in mente tre ragioni principali:
Non direi che riduce la chiarezza. La mia intenzione principale è la chiarezza, l'eleganza e la precisione, non le prestazioni.
Potrei anche usare potenza, moltiplicazione, divisione (e modulo) per fare l'effettivo spostamento di bit senza usare alcun operatore bitwise. Ma per il bene dell'eleganza (e anche della chiarezza) dovrei farlo o esclusivamente con uno o con l'altro, ma non misto. E poiché il significato della funzione è quello di spostare bit in giro, offuscherei il codice solo se facessi spostamenti di bit con moltiplicazioni.
Inoltre, mentre l'addizione e la moltiplicazione possono essere fatte con interi, la funzione MathPow() internamente usa logaritmi, puzza di approssimazione ed è incredibilmente complessa rispetto a ciò per cui mi serve, usa e restituisce un valore doppio e questo non ha niente a che fare con una funzione intera che dovrebbe spostare solo n bit.
Forse avrei dovuto fare la domanda perché non ho visto questo. Perché ho usato MathPow() in primo luogo? Non lo so. L'ultima volta che ho fatto un po' di assembler è stato 15 anni fa, oggi sono abituato a pensare ai problemi in astrazioni più alte. Forse questa è stata la ragione. Da qualche parte nel mio cervello c'è una forte connessione con l'ennesimo bit che è 2^n, l'ho semplicemente scritto senza pensarci un secondo. Un programmatore assembler non l'avrebbe mai fatto. Spostare a sinistra è moltiplicare per 2, moltiplicare per 2 è spostare a sinistra.
La mia soluzione per la persistenza è di usare i 32 bit dell'int per contenere i tf che uso (10), la versione dell'esperto o il metodo di trading che ha aperto l'ordine (ne ho 4). Ho ancora molti bit a disposizione se ne ho bisogno. Uso le operazioni bitwise e alcune funzioni di conversione per gestire questo. So che altri fanno questo o qualcosa di simile, ma dato che questo non sembra essere sufficiente per le vostre situazioni, sto ancora cercando di capire la domanda che ho fatto.
Come potrebbe nel tuo esempio il Symbol() diventare parte del MN? Hai un numero di EA e un numero di Timeframe, ma il simbolo?
Posso vedere i vantaggi del tuo approccio e potrei utilizzarlo in futuro. Ma essendo un NuB sto utilizzando MM dal codice base di MQL4.Com. Quindi a questo punto della mia curva di apprendimento della programmazione, MM non è la mia priorità. Anche se se riesco a trovare un metodo migliore che posso inserire, lo farò fino a quando MM non sarà in cima alla mia lista di priorità, non sono contrario ad usarlo. Noi NuB abbiamo bisogno di tutto l'aiuto possibile!
Per quanto riguarda il nome e/o il numero di versione, il MN permette solo numeri e non lettere.
Non ho esaminato il tuo codice, ma presumo che il tuo algoritmo stia convertendo il nome in parte del tuo MN, nel qual caso non ti direbbe immediatamente a quale coppia di valute ti stai rivolgendo.
il tuo algoritmo sta convertendo il nome in parte del tuo MN nel qual caso non ti direbbe immediatamente a quale coppia di valute ti stai rivolgendo.
Convertirà in modo affidabile qualsiasi stringa in un numero intero unico. Questa conversione è a senso unico, ma non ho mai e poi mai bisogno di riconvertirla.
Tutto quello che devo sapere è che queste compravendite con lo stesso numero appartengono insieme. È solo un numero identificativo per trovare facilmente tutte le compravendite di questa specifica combinazione EA/simbolo/TF con un solo if() nel ciclo. L'unica cosa che si deve sapere su questo numero è che è unico per ogni combinazione EA/simbolo/timeframe e che è deterministico e non cambierà se il mio PC decide di andare in crash.
Tutti i trade logicamente appartenenti insieme avranno lo stesso MN. Se mai, in un secondo momento, ho bisogno di sapere su quale simbolo sono stati fatti (per esempio per fare delle statistiche a fine mese) posso semplicemente usare OrderSymbol() su questi ordini.
Ehi ragazzi, sono solo curioso di sapere perché avreste bisogno di più di un esperto che esegue lo stesso tf, e simbolo con le stesse impostazioni?
La mia soluzione per la persistenza è di usare i 32 bit dell'int per tenere i tf che uso (10 di loro), la versione dell'esperto o il metodo commerciale che ha aperto l'ordine (ne ho 4). Ho ancora molti bit a disposizione se ne ho bisogno. Uso le operazioni bitwise e alcune funzioni di conversione per gestire questo. So che altri fanno questo o qualcosa di simile, ma dato che questo non sembra essere sufficiente per le vostre situazioni, sto ancora cercando di capire la domanda che ho fatto.
Non posso parlare per nessun altro, ma ho un EA che può impiegare un po' di tempo per chiudere un ordine, e perde nuovi punti di ingresso perché non è ancora chiuso dall'ordine precedente. Vorrei che gestisse ogni entrata in modo indipendente e che seguisse ogni trade secondo le regole di ogni trade (sl in movimento, chiudere la metà quando il tp viene raggiunto per primo, ecc).
Non posso parlare per nessun altro, ma ho un EA che può impiegare un po' di tempo per chiudere un ordine, e perde nuovi punti di ingresso perché non è ancora chiuso dall'ordine precedente. Vorrei che gestisse ogni entrata in modo indipendente e che seguisse ogni trade secondo le regole di ogni trade (sl in movimento, chiudere la metà quando il tp viene raggiunto per primo, ecc).Capisco. Quindi è bloccato in attesa della risposta del server, e nel frattempo potresti aprire altri ordini?
Ma il fatto che il contesto di scambio sia occupato non blocca qualsiasi azione relativa all'ordine?
Immagino che finché funziona, è tutto ciò che conta davvero.
Non tanto la risposta del server, ma semplicemente avere un ordine aperto. Quindi l'EA potrebbe ricevere un segnale di acquisto e comprare, e poi rimanere aperto. Qualche ora dopo arriva un altro segnale di acquisto, ma dato che ha già una posizione aperta, non compra perché sta aspettando di chiudere il primo ordine. Ma non c'è motivo di supporre che il primo segnale di acquisto sia più redditizio del secondo o che ci sia qualcosa da guadagnare aspettando che il primo si chiuda prima di permettere all'EA di aprire altri ordini. Ma ci sto ancora lavorando, quindi per me è ancora teoria :)