[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 579
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
eh... perché la condizione per il controllo degli ordini aperti non potrebbe essere scritta così:
se OrdiniTotali() > 0
tutto è chiaro e comprensibile... sarebbe...
È un'ora che cerco di capire come scrivere questa condizione...
eh... perché la condizione per il controllo degli ordini aperti non potrebbe essere scritta così:
se OrdiniTotali() > 0
tutto è chiaro e comprensibile... sarebbe...
È un'ora che cerco di capire come scrivere questa condizione...
È possibile, ma si attiverà se ci sono ordini aperti o pendenti su qualsiasi simbolo.
Perché no? è possibile, ma sarà attivato se ci sono ordini aperti o in sospeso su qualsiasi strumento.
Vorrei che funzionasse - ho una posizione e uno strumento.
Ma non funziona!
Dice che c'è un errore nel codice.
a questo
---------------------------
int start()
{
//----
se OrdiniTotali()>0
PlaySound ("alert.wav");
//----
ritorno(0);
}
-----------------------------
commette 8 errori!!!
Che ne dite di questo?
Che ne dite di questo?
:)))))))))))))))))))
stupendo! Grazie a voi
Quindi deinit viene chiamato quando elimino un robot da un grafico - non posso tracciare questa condizione in nessun altro modo..... è probabilmente più facile scrivere uno script separato che cancella tutti i restanti robot in sospeso, non c'è altro modo.
A proposito, un altro pensiero sull'argomento:
Penso di aver risolto il problema della cancellazione degli ordini in sospeso. Determino la quantità di ordini "necessari" (da rimuovere) in una funzione separata, chiamo questa funzione e poi while con condizione (Totale>0), poi il ciclo di rimozione for(int i=Totale-1;i<=0l; i--), di nuovo calcolando"necessario" e contatore di tentativi di rimozione con uscita dawhile quando il livello dato è raggiunto. In questo modo tutto viene cancellato.
Un ciclo infinito può verificarsi qui nel caso in cui uno degli ordini scompaia dopo il momento del conteggio per qualsiasi motivo
Perché non si può fare? Per esempio, create una variabile globale a livello di terminale, assegnatele un valore e controllate l'avvio e cambiate il valore di questa variabile tramite service -->global variables prima che sia spenta.
E quindi?
E posso chiedere, cosa stanno cercando di fare con questo?
for(int i=0; i<OrdersTotal(); i++)
sembra che stiano cercando di contare le posizioni aperte usando il metodo della forza bruta...
Buona giornata!!! Non riesco a trovare una bella soluzione alla situazione. Ecco una tipica impostazione dell'ordine. Ma se do zero al mio robot nei parametri, cioè niente stop e takeprofits, non funziona niente.
Possiamo anche impostare un if e inserire un ordine con degli zeri per la seconda volta, ma è un po' macchinoso.
E posso chiedere cosa stanno cercando di fare qui?
for(int i=0; i<OrdersTotal(); i++)
sembra che stia cercando di contare le posizioni aperte...
Bene, seleziona gli ordini in base a parametri specificati.
ad esempio https://www.mql5.com/ru/forum/131859/page3#434221
Funzione NumberOfPositions().
Questa funzione restituisce il numero di posizioni aperte al momento. Una selezione più precisa delle posizioni contate è specificata da parametri esterni:
E posso chiedere cosa stanno cercando di fare con questo?
for(int i=0; i<OrdersTotal(); i++)
sembra che stiano cercando di contare le posizioni aperte...