Caratteristiche utili da KimIV - pagina 3

 
KimIV:

Funzione ExistOrders().

Restituisce un flag per l'esistenza di un ordine. ...

Ho fatto (per me stesso) "restituire" il numero di ordini. Prende immediatamente 2 piccioni con una fava (non c'è bisogno di scrivere 2 funzioni) - se > 0, l'ordine esiste + possiamo analizzare ... Se ci sono "buchi nella griglia", innesco di "inversioni", ecc. (Vero, la funzione richiede più tempo per essere eseguita, il che non è giustificato al solo scopo di dichiarare)

Inoltre, mi sembra che sia visivamente più intuitivo e che, avendo assegnato una variabile, la si possa utilizzare ulteriormente

... (ExistOrders("", OP_BUYLIMIT)+ExistOrders("", OP_SELLLIMIT)) > 0 ...

che ...

... (ExistOrders("", OP_BUYLIMIT) || ExistOrders("", OP_SELLLIMIT)) ...
 
SergNF писал (а):
Ho (per me stesso) fatto un 'ritorno' del numero di ordini.
Ci sarà una funzione NumberOfOrders() più tardi.
 
KimIV:
zhuki ha scritto (a):

Mostra la tua versione dei ritardi tra le operazioni di trading

Non faccio ritardi tra le operazioni commerciali. Cioè, se ho bisogno di piazzare due o più ordini, faccio questi trade senza una pausa tra di loro. Tuttavia, tra i tentativi di trading, che devono essere ripetuti se c'è un errore di accesso al server, faccio una pausa secondo le raccomandazioni degli sviluppatori di MT4. Come esempio potete vedere come queste pause sono implementate nella mia funzione SetOrder() per il trading online. Pause diverse sono fatte per diversi errori restituiti dal server di trading.



Questa funzione SetOrder() è usata per impostare gli ordini in sospeso. È raccomandato per l'uso nel trading online su conti demo e reali.


Se più di 20 EAs stanno facendo trading, si verifica sempre l'errore 146. La funzione è in grado di risolvere il problema solo per pochi (2-4) EA, ma, in linea di principio, un ritardo fisso non risolve il problema...
Quando si fa trading con 20 o più Expert Advisors, è necessario arbitrare, almeno utilizzando il protocollo Ethernet... Poi ogni Expert Advisor sarà in grado di entrare nel mercato quando riceve un segnale.
 
Igor, per favore "regalami" le funzioni di chiusura e modifica degli ordini. ;-)
 
Lukyanov:
Igor, per favore "trattami" con funzioni per chiudere e modificare gli ordini. ;-)

Sì, decisamente... Ma prima finirò con la funzione SetOrder. Ora sto aspettando l'apertura delle contrattazioni per dare più esempi di come usare questa funzione con i record del protocollo. Lo script di prova è già pronto, ma deve essere testato online.

Prevedete di pubblicare le funzioni in ordine alfabetico:
- CancellaOrdini
- EsistereOrdiniPerLotto
- OttieniLottoUltimoOrdine
- GetOrderOpenPrice
- IndexByTicket
- ModificareOrdine
- NumeroOrdini
- Seleziona per biglietto
- Seleziona per biglietto da storia

Voi (visitatori del thread) potete regolare la sequenza di pubblicazione con i vostri desideri. Ma prima di tutto considererò l'uso logico delle funzioni, perché molte di esse sono collegate tra loro. In altre parole, le prime ad essere pubblicate saranno le funzioni che possono essere utilizzate nell'applicazione di altre funzioni, collocate successivamente.

 

Igor, stai facendo un buon lavoro!

Tuttavia... con così tanto bagaglio, e il forum e il libro, il riferimento e il kodobase.
Ho ancora domande scottanti che a volte sono imbarazzanti da fare.
(Per fortuna, io sono un dummies, e non lo nascondo ... ma ancora imparando ... :))

E domande proprio in quelle inezie e sfumature, che permettono di collegare pezzi di codice
...più precisamente, per assicurare che i blocchi (moduli) del programma siano interconnessi...

Capisco, e spesso pecco di me stesso quando la domanda come?
La risposta è nel migliore dei casi: sì...
Per esempio, trailing stop. E quando si chiede se si può usare il proprio TS
Quando chiedete se potete usare il vostro TS, la risposta sarà nel migliore dei casi: nel 100% dei casi sì, nel 90% dei casi aggiungete il vostro TS, nell'80% dei casi chiedete quale userete :)))
ecc... in ordine decrescente...
E come esattamente, lettera per lettera, ahimè, non è sempre il caso.

Quindi anch'io aspetterò con ansia i post che descrivono le funzioni di modifica,
e forse un'applicazione più dettagliata di essi nella pratica...

 
klot писал (а):
Quando si fa trading con 20 o più EAs, è necessario arbitrare, almeno utilizzando il protocollo Ethernet... Poi ogni Expert Advisor può entrare nel mercato quando riceve un segnale.
Cosa intende per "arbitraggio"?
 
kombat писал (а):
E le domande sono in quelle inezie e sfumature, che permettono di collegare pezzi di codice
Più precisamente garantendo l'interconnessione dei blocchi (moduli) del programma...

Per quanto riguarda le mie funzioni, risponderò a qualsiasi domanda. Se posso :-) ... È a questo che serve il thread. Cioè, potete fare domande qui da altri thread dove ho postato le mie funzioni senza dare spiegazioni dettagliate. Quindi sentitevi liberi di farlo. Questo è un argomento che ho intenzione di tenere per molto tempo. Ho pianificato 4 mesi solo per la pubblicazione delle caratteristiche. Più altre risposte alle domande...

kombat ha scritto (a):
Quindi anch'io aspetterò con impazienza i post con la descrizione delle funzioni di modifica,
e forse un'applicazione più dettagliata di essi nella pratica...
La funzione ModifyOrder è universale. Si applica sia agli ordini che alle posizioni. Penserò a integrarlo nel tema il più presto possibile.
 
KimIV:
klot ha scritto:

Quando fai trading con 20 o più Expert Advisors, dovresti arbitrare, almeno usando il protocollo Ethernet... Poi ogni Expert Advisor sarà in grado di entrare nel mercato quando viene ricevuto un segnale.
Cosa intende per "arbitraggio"?

Ciao!
Con "arbitraggio" intendevo fornire un accesso garantito al flusso di trading a molti Expert Advisors che lavorano simultaneamente. Ho affrontato questo problema molto tempo fa, e sono arrivato alla conclusione che è meglio usare l'accesso multiplo con il rilevamento delle collisioni dal protocollo Ethernet.
Il succo è semplice. Controlliamo se il flusso commerciale è occupato. Se il flusso è occupato, generiamo una pausa casuale (a partire da 1 secondo). Se il flusso commerciale è libero, "inviamo" un ordine immediatamente. Quando si fa trading utilizzando più Expert Advisors, ogni Expert Advisor avrà la sua pausa casuale e gli Expert Advisors occuperanno a turno il thread di trading. Non ci saranno conflitti tra esperti.
Per esempio:
if( IsTradeContextBusy() )  Sleep(MathRand()+1000);
 
Se 10 esperti sono in attesa del rilascio di un flusso commerciale (ognuno nel proprio flusso indipendente) cosa può succedere se per caso almeno 2 coincidono.
Io calcolo e uso altri principi. Se un thread di trade è occupato da qualcuno, i restanti EA semplicemente non funzionano (ritorno) e questo viene controllato all'inizio di un EA (perché analizzarlo se non si può fare nulla comunque).
Non credo, grazie.
Motivazione: