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, Valery! Grazie mille, la tua versione "...se le posizioni con il nostro magik e al nostro simbolo sono uguali a zero, controlliamo il tempo e apriamo una posizione..." si è rivelata la più semplice ed efficace. L'ho aggiunto alla condizione di controllare il tempo && PositionTotal()==0 e solo una posizione con l'importo necessario è aperta!
Sinceramente, Vladimir.
Purtroppo, MKL non ha un comando che restituisce il numero di posizioni sul simbolo. TotalPosition restituisce tutte le posizioni del conto su tutti i simboli. Pertanto, per ottenere posizioni sul simbolo è necessario cercare tutte le posizioni e confrontare la posizione del simbolo sulla nostra.
Anche. La logica nel tempo di testa, aprirlo e controllare la presenza della nostra posizione, trilling non è sempre ottimale. A volte è meglio controllare prima se la posizione è aperta con il nostro wizard e se lo è, controlliamo l'orario di chiusura, oppure la rintracciamo, o ancora controlliamo l'orario di apertura.
L'obiettivo è quello di ridurre il numero di azioni EA.
Sfortunatamente, non c'è nessun comando in MKL che restituisca il numero di posizioni su un simbolo. TotalPositions restituisce tutte le posizioni su tutti i simboli. Pertanto, per ottenere posizioni su un simbolo, è necessario cercare tutte le posizioni e confrontare la posizione del simbolo con la nostra.
Anche. La logica nel tempo di testa, aprirlo e controllare la presenza della nostra posizione, trilling non è sempre ottimale. A volte è meglio controllare prima se la posizione è aperta con il nostro wizard e se lo è, controlliamo l'orario di chiusura, oppure la rintracciamo, o ancora controlliamo l'orario di apertura.
L'obiettivo è quello di ridurre il numero di azioni EA.
Tutto è chiaro, Valery! Sto cercando di implementare i vostri consigli.
Sinceramente, Vladimir.
Se le posizioni con il nostro Magik e sul nostro simbolo sono zero, controlliamo il tempo e apriamo una posizione, se è 1, non apriamo una posizione, controlliamo il tempo di chiusura e il trawl, se è più di 1, avvisiamo e non lavoriamo. Possiamo usare pergamene o controllare iff.
Ciao, Valery! Ho provato a scrivere il codice senza l'enumerazione delle posizioni. L'ho scritto, l'ho controllato e funziona tutto.
Sinceramente, Vladimir.Ciao Valery! Ho provato a scrivere il codice senza l'enumerazione delle posizioni. L'ho scritto, l'ho controllato e funziona tutto.
Saluti, Vladimir.Va bene per un inizio, ma solo per un inizio. Le condizioni sono troppo rigide. Se non ci sono posizioni sul nostro simbolo e non ci sono posizioni con il nostro magik su tutti gli strumenti, allora sembra normale. Nella vita reale si possono avere 2 finestre aperte su un simbolo e un altro può avere una posizione. Potete semplicemente usare Magik per contabilizzare per esempio come trishkin, le prime 3 cifre - codice simbolo e le prossime 2 - codice script/advisor. E il primo passo è quello di codificare manualmente, o generare magik aggiungendo linee a seconda del simbolo della finestra e del codice dello script e poi convertire la linea in un numero.
Il modo classico è quello di cercare tutti gli ordini o posizioni.
Ma questo è troppo per l'inizio.
Ecco perché va bene per cominciare.
Va bene per iniziare, ma solo per iniziare. Le condizioni sono troppo rigide. Se non ci sono posizioni sul nostro simbolo e non ci sono posizioni con il nostro magik su tutti gli strumenti, allora sembra normale. Nella vita reale si possono avere 2 finestre aperte su un simbolo e un altro può avere una posizione. Potete semplicemente usare Magik per contabilizzare per esempio come trishkin, le prime 3 cifre - codice simbolo e le prossime 2 - codice script/advisor. E il primo passo è quello di codificare manualmente, o generare un magik aggiungendo linee a seconda del simbolo della finestra e del codice dello script e poi convertire la linea in un numero.
Il modo classico è quello di cercare tutti gli ordini o posizioni.
Ma questo è troppo per l'inizio.
Ecco perché va bene per cominciare.
Grazie, Valeriy! Cercare tra tutte le posizioni è uno dei prossimi passi dell'auto-studio che sicuramente farò.
Saluti, Vladimir.
Per qualche motivo tutti gli ordini o le posizioni sono considerati un classico superamento.
Ahimè, questa è una tradizione nella comunità MQL, tutti gli EA sono sviluppati tenendo conto di un'improvvisa perdita di connessione e/o interruzione di corrente di un PC.
da un lato questa è una buona metodologia, ma dall'altro lato questo impone grandi restrizioni allo stile di scrittura del codice EA - EA lavora solo con i master degli ordini. Per esempio, se avete bisogno di scrivere una martingala, EA cercherà nella storia l'ultimo ordine con i suoi master e guarderà il profitto/perdita e deciderà se aumentare il nuovo lotto o no
... in generale dalla creazione di MT - tutti stanno aspettando che internet scompaia e la strategia stessa non è più così importante ))
Ahimè, questa è una tradizione nella comunità MQL, tutti gli EA sono sviluppati con in mente un'improvvisa perdita di connessione e/o interruzione di corrente del PC.
Da un lato questa è una buona metodologia, ma dall'altro impone grandi restrizioni allo stile di scrittura del codice EA - l'EA lavora solo con i master degli ordini. Per esempio, se hai bisogno di scrivere una martingala, l'EA cercherà nello storico l'ultimo ordine con i suoi master e guarderà il profitto/perdita e deciderà se aumentare il nuovo lotto o no
... in generale dalla creazione di MT - tutti stanno aspettando che Internet scompaia, e la strategia stessa non è più così importante ))
Ciao Igor, grazie per aver condiviso queste informazioni molto utili.
Sinceramente, Vladimir.
Ahimè, questa è una tradizione nella comunità MQL, tutti gli EA sono sviluppati con in mente un'improvvisa perdita di connessione e/o interruzione di corrente del PC.
Da un lato questa è una buona metodologia, ma dall'altro impone grandi restrizioni allo stile di scrittura del codice EA - l'EA lavora solo con i master degli ordini. Per esempio, se hai bisogno di scrivere una martingala, l'EA cercherà nello storico l'ultimo ordine con i suoi master e guarderà il profitto/perdita e deciderà se aumentare il nuovo lotto o no
... In generale dalla creazione di MT - tutti stanno aspettando che internet scompaia e la strategia stessa non è più così importante ))
La protezione contro il fuoco, le inondazioni e la follia dovrebbe sempre esserci!) Di solito mi limito a fermarmi in caso di perdita di connessione con DT.
Buona giornata e buon umore a tutti!
Sto continuando a studiare il linguaggio di programmazione MQL5. Ho iniziato uno studio dettagliato dell'operatore for loop, che secondo il Riferimento MQL5, e cito:
L'operatore for loop
Esegue l'operatore finché l'espressione controllata non diventa falsa. L'espressione è controllata prima di ogni iterazione
Vado alla descrizione dell'operatore for loop e lì leggo che:
L'operatore esegue un operatore? OK. Prendo ed eseguo l'operatore for loop per provare tutte le posizioni aperte e poi digito l'istruzione if con le condizioni di cui ho bisogno:
e poi non succede niente. La posizione Buy non viene aperta. Come faccio a capire questo? Devo fare qualcosa di sbagliato, o non capisco affatto il termine dell'istruzione for correttamente?
Caro esperto! Per favore consigliatemi, ma non a parole, non in un codice corretto, altrimenti non imparerò mai il linguaggio di programmazione MQL5.
Sinceramente, Vladimir.Buona giornata e buon umore a tutti!
Sto continuando a studiare il linguaggio di programmazione MQL5. Ho iniziato uno studio dettagliato dell'operatore for loop, che secondo il Riferimento MQL5, e cito:
L'operatore for loop
Esegue l'operatore finché l'espressione controllata non diventa falsa. L'espressione è controllata prima di ogni iterazione
Vado alla descrizione dell'operatore for loop e lì leggo che:
L'operatore esegue un operatore? OK. Prendo ed eseguo l'operatore for loop per provare tutte le posizioni aperte e poi digito l'istruzione if con le condizioni di cui ho bisogno:
e non succede niente. La posizione Buy non viene aperta. Come faccio a capire questo? Devo fare qualcosa di sbagliato o non capisco affatto lo scopo dell'operatore for loop?
Cari specialisti! Vi chiedo di dare un feedback, ma non a parole, altrimenti non imparerò mai il linguaggio di programmazione MQL5.
Sinceramente, Vladimir.L'operatore del ciclo e gli operatori nel corpo del ciclo. Non è proprio una lingua russa classica.
Tutto è buono, naturalmente, ma dov'è l'iteratore i nel corpo del ciclo? E per ottenere il carattere di posizione e il suo simbolo magico, deve essere prima selezionato. La descrizione della posizione è una struttura (in MQL5 tutto è una struttura, ordini, tempo e affari), ed è compilata attraverso la selezione, dall'iteratore che non è un biglietto di posizione, ma un numero di posizione. E bisogna ricordare che la struttura della descrizione della posizione è sempre l'ultima scelta.