Sistemi Esperti: MQL5 Programming for Traders – Source Codes from the Book. Parte 7 - pagina 4
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
Ciao @Stanislav Korotky, sono nuovo di MQL5. Ho scoperto che hai pubblicato un file wss.zip per l'uso di websocket. Come si usa, c'è una demo o qualcosa che posso imparare. Grazie di cuore!
Puoi trovare diversi esempi nel libro sull'algotrading, nella sezione che descrive (passo dopo passo) l'implementazione di un progetto di servizio web per la copia di operazioni e segnali.
Potete trovare diversi esempi nel libro sull'algotrading, nella sezione che descrive (passo dopo passo) l'implementazione di un progetto di servizio web per la copia di operazioni e segnali.
Ciao @StanislavKorotky
Sto cercando di implementare una chiusura parziale della posizione con un ordine pendente nella direzione opposta.
es:
MqlTradeRequestSync reqs(transaction.symbol);
reqs.closeby(target_position_ticket_id, transaction.order);
Credo che la linea di cui sopra dovrebbe essere in grado di svolgere il lavoro, ma la mia sfida è come ottenere il `target_position_ticket_id`all'interno del gestore dell'evento OnTradeTransaction -> TRADE_TRANSACTION_DEAL_ADD ( transaction.type) o in qualche modo associare l'ordine pendente con il target_position_ticket_id che si prevede di chiudere ogni volta che l'ordine pendente viene eseguito.
Ho provato ad aggiungere il `target_position_ticket_id`al commento dell'ordine pendente quando creo l'ordine pendente, ma il problema è che all'interno di OnTradeTransaction -> TRADE_TRANSACTION_DEAL_ADD (transaction.type) non posso accedere al commento poiché gli attributi diMqlTradeTransaction non hanno 'comment'
Vi ringrazio per l'aiuto.
Il metodo closeby(ticket1, ticket2) del libro presuppone che si utilizzi un conto di copertura e che si abbiano già 2 posizioni aperte (acquisto e vendita) con i ticket ticket1 e ticket2. Suppongo che sia impossibile (in generale) eseguire un'azione TRADE_ACTION_CLOSE_BY contro un ordine pendente. Ma se il conto è in modalità netting, penso che si possa semplicemente piazzare un ordine pendente in direzione opposta e quando scatta, modificherà la posizione esistente di conseguenza - cioè la chiuderà, o la chiuderà parzialmente, o addirittura la invertirà (se il nuovo volume è maggiore del vecchio).
Piccole patch in websockets (a la carte e in massa).
Una di queste proprietà è la "Commissions" del Symbol che ovviamente differisce da broker a broker come si può vedere nell'immagine allegata. Tuttavia, non sono riuscito ad accedere a questa proprietà in modo programmatico. Per favore, potete aiutarmi con un indizio su come ottenere le commissioni del simbolo?
Inoltre, questo messaggio appare spesso nel log ogni volta che lavoro con PositionFilter, soprattutto quando l'EA viene caricato per la prima volta o ricompilato: "Unresolved int value as enum: 8 per MonitorInterface<ENUM_POSITION_PROPERTY_INTEGER,ENUM_POSITION_PROPERTY_DOUBLE,ENUM_POSITION_PROPERTY_STRING>". Funziona ancora bene e non interrompe nulla
@StanislavKorotky Grazie per il continuo aggiornamento, ma c'è qualcosa che sto cercando di capire. Su MT5 "Market Watch" posso cliccare con il tasto destro del mouse su qualsiasi "Symbol" e visualizzare tutte le sue proprietà associate proprio come farei programmaticamente cliccando su "Specification".
Una di queste proprietà è la "Commissions" del Symbol che ovviamente differisce da broker a broker come si può vedere nell'immagine allegata. Tuttavia, non sono riuscito ad accedere a questa proprietà in modo programmatico. Per favore, potete aiutarmi con un indizio su come ottenere le commissioni del simbolo?
Purtroppo non tutte le proprietà delle entità del terminale sono accessibili tramite MQL5.
A parte questo messaggio che appare spesso nel log ogni volta che lavoro con PositionFilter, specialmente quando l'EA viene caricato per la prima volta o ricompilato "Unresolved int value as enum: 8 per MonitorInterface<ENUM_POSITION_PROPERTY_INTEGER,ENUM_POSITION_PROPERTY_DOUBLE,ENUM_POSITION_PROPERTY_STRING>". Funziona ancora bene e non interrompe nulla
Questo è solo un avvertimento causato dal fatto che la corrispondente enumerazione incorporata di MQL5 ha uno spazio vuoto nelle costanti che normalmente sono assegnate consecutivamente. Questa lacuna si verifica perché MQL5 è in continua evoluzione e alcune costanti possono diventare obsolete e quindi essere eliminate. È possibile modificare il codice sorgente per evitare tali avvisi.
Allego una versione aggiornata della libreria JSON - toyjson3.mqh - che sostituisce toyjson2.mqh e toyjson.mqh del libro.
Questa versione è ottimizzata per l'elaborazione di file JSON di grandi dimensioni. Per semplicità, le versioni precedenti utilizzano la funzione StringSplit per la tokenizzazione del testo durante il parsing, e questa chiamata può richiedere internamente gigabyte di memoria libera a causa della frammentazione e dell'anticipazione di un ulteriore flusso di dati. Viene rilasciata dopo il parsing, ma il gestore della memoria di MQL5 può tenerla riservata per un po', perché libera la spazzatura in modo posticipato.
Ora richiede una quantità di memoria inferiore durante l'analisi.
Allego alcuni bugfix e miglioramenti nelle classi websockets.
Questo è esattamente ciò di cui avevo bisogno.
Grazie mille.
Mi sembri questo tipo di persona.
https://clip.cafe/top-gun-maverick-2022/good-afternoon-ladies-gentlemen-s2/