Domande dai principianti MQL4 MT4 MetaTrader 4 - pagina 116
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
Grazie. La pausa sembra aver aiutato. Vediamo cosa succede dopo.
No, non ha aiutato molto. Funziona solo se viene aperto un tipo di posizione. Se, per esempio, una posizione Sell viene aperta e non è ancora chiusa, e contemporaneamente una posizione Buy viene aperta e chiusa, la posizione Sell non vede le condizioni per essere chiusa prima che un'altra posizione Sell si apra e si chiuda (secondo le sue condizioni). E se BAY apre e chiude di nuovo, manca di nuovo le sue condizioni di chiusura. Ho provato a determinare la presenza diposizioni aperte dopo la chiusura di BAY usando la funzione ExistPositions() di I.Kim, ma non capisco dove inserirla e dove mettere Print per controllare l'esecuzione. Qualsiasi indizio.
No, non ha aiutato molto. Funziona solo se viene aperto lo stesso tipo di posizione. Se, per esempio, prima viene aperta una posizione Sell e non ancora chiusa, e allo stesso tempo viene aperta e chiusa una posizione Buy, allora la posizione Sell non vede le sue condizioni di chiusura fino a quando un'altra posizione Sell non si apre e chiude (secondo le sue condizioni). E se BAY apre e chiude di nuovo, manca di nuovo le sue condizioni di chiusura. Ho provato a determinare la presenza diposizioni aperte dopo la chiusura di BAY usando la funzione ExistPositions() di I.Kim, ma non capisco dove inserirla e dove mettere Print per controllare l'esecuzione. Puoi darmi un suggerimento?
Nessuno conosce la soluzione? Io no.
Mi sono collegato al forum - vedo che stai parlando da solo... Dov'è l'inizio della vostra conversazione e di cosa si tratta - difficile da capire. Per eseguire il debug di un programma, è molto più conveniente usare Alert invece di Print - viene mostrato subito sullo schermo. Questi Alert sono posizionati prima che la condizione if sia controllata. Un altro metodo di debugging con una matita - passare attraverso il programma come dovrebbe essere eseguito, e scrivere i valori delle variabili. Se cambia - cancella il vecchio valore e scrivi quello nuovo. Questo è il modo in cui si faceva prima. Ora MetaEditor ha un debugger, dove è possibile monitorare i valori delle variabili. Le costruzioni più semplici dovrebbero essere controllate separatamente scrivendo uno script
Nessuno conosce la soluzione? Io no.
Prova in questo modo:
Prova in questo modo:
Grazie, l'ho provato - non chiude nessuna posizione anche dopo alcune regolazioni, quindi il compilatore non giura.
Mi sono collegato al forum - ti vedo parlare da solo... È difficile capire da dove sei partito e di cosa stai parlando. Per il debug del programma è più conveniente usare Alert invece di Print - viene mostrato subito sullo schermo. Questi Alert sono posizionati prima che la condizione if sia controllata. Un altro metodo di debugging con una matita - passare attraverso il programma come dovrebbe essere eseguito, e scrivere i valori delle variabili. Quando cambia - cancella il vecchio valore e scrivi quello nuovo. Questo è il modo in cui si faceva prima. Ora MetaEditor ha un debugger, dove è possibile monitorare i valori delle variabili. I costrutti più semplici devono essere controllati separatamente scrivendo uno script
Grazie per le raccomandazioni, ma per la mia situazione non sono del tutto corrette. Solo per chiarire, qui sotto c'è il codice di una funzione di chiusura personalizzata
Non funziona correttamente - lachiusura delle posizioniavviene alle condizioni della prima posizione aperta. Cioè, se prima è stata aperta una posizione Buy o Sell con la Condizione 1 e poi è stata aperta una seconda posizione con la Condizione 2, la condizione di chiusura viene ignorata e anche la seconda posizione viene chiusa con la Condizione 1 nonostante un numero magico diverso.
Ho applicato l'interruzione dopo la chiusura dell'ordine ma la soluzione è stata mezza:solo se viene aperta una posizione dello stesso tipo. Se, per esempio, una posizione Sell è stata aperta per prima e non è stata ancora chiusa, mentre una posizione Buy viene aperta e chiusa, la posizione Sell non vede alcuna condizione per essere chiusa fino a quando un'altra posizione Sell non viene aperta e chiusa (secondo le sue condizioni). E se BAY apre e chiude di nuovo, manca di nuovo le sue condizioni di chiusura. Quindi cosa fare?
da dove prende i suoi dati iCustom?
dai buffer dell'indicatore personalizzato, pratica, per esempio sulla MA
Ho applicato la pausa dopo la chiusura di un ordine ma la soluzione è a metà:solo se viene aperta una posizione dello stesso tipo. Se, per esempio, una posizione BOY è aperta e non è ancora stata chiusa, mentre una posizione BAY viene aperta e chiusa, la posizione BAY non vede alcuna condizione per essere chiusa fino a quando un'altra posizione BAY viene aperta e chiusa (alle sue stesse condizioni). E se BAY apre e chiude di nuovo, manca di nuovo le sue condizioni di chiusura. Quindi cosa fare?
prova a sostituire break con continue
è strano che il mio esempio di codice non chiuda nulla, forse riguarda la normalizzazione dei prezzi
prova a sostituire break con continue
Sostituito. Errore maledetto 138(requotes). Poi ho dato la pausa indietro, ed è di nuovo 138. Strano, forse non l'ho notato prima.
dai buffer dell'indicatore personalizzato, fare pratica con la MA, per esempio