Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 170
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Ci sono molti esempi in CodeBase, cercate Expert Advisors su ordini pendenti e vedete come è scritto il codice.
Ho cercato inCodeBase per circa un'ora e non ho trovato nulla di comprensibile. È troppo complicato per me. I codici sono troppo grandi e incomprensibili per me, mentre tutto ciò di cui ho bisogno sono un paio di codici lunghi 4-6 righe. Grazie per la risposta, ma non si adatta.
Ho cercato un esempio inordine pendente quando ha raggiunto qualsiasi valore (cioè se il prezzo è 0,7777, allora aprire un ordine pendente)
2) Chiudi l'ordine (ordine a mercato) quando ha raggiunto un valore qualsiasi (cioè se il prezzo è 0,6666, allora chiudi l'ordine).
Ottenere una risposta a 4-6 righe di codice?
Sei uno di quei commercianti che scrivono: "Cosa c'è da fare? Ci vogliono solo un paio di righe... Cosa sono cento sterline?".
Cerchiamo di essere chiari:
Devi prima determinare che il prezzo ha raggiunto 0,7777. Ha raggiunto la cima? In basso? Va bene se il tick precedente era, per esempio, 0,7776 e il tick attuale è diventato 0,7778? In questo caso, il prezzo non sarà uguale al valore di 0,7777. Quindi, dovete controllare il valore passato e quello attuale per intersecare il valore necessario. Corrispondentemente, dovete memorizzare il valore del tick precedente e conoscere il valore del tick attuale. Significa - avete bisogno di una funzione per ottenere il valore del tick e memorizzare il suo valore, in modo da avere qualcosa con cui confrontarlo in seguito - tre prezzi: il tick precedente, il tick attuale e il prezzo incrociato stesso.
Più in là. Dobbiamo sapere in quale direzione il prezzo attraverserà il valore necessario e, di conseguenza, dobbiamo impostare il tipo necessario di ordine pendente al prezzo necessario.
Per impostarlo, dobbiamo calcolare il prezzo impostato dal prezzo corrente, confrontare la distanza ottenuta dell'impostazione dell'ordine pendente con il valore di StopLevel e se la distanza ottenuta è inferiore a quel valore, allora: a) correggere la distanza di impostazione dell'ordine in modo da non raggiungere l'errore 130 e impostare l'ordine o b) aspettare che la distanza di impostazione superi lo StopLevel (con lo spread fluttuante che dovremmo anche ricevere in ogni tick) e vedere se il prezzo attraversa già il livello impostato e se è sul valore corretto - cioè se il livello di stop è impostato, possiamo impostare l'ordine.е., si è allontanato da quel livello per effettuare un ordine o il treno è già partito.
Dovete anche calcolare i valori di stop e take di un ordine pendente che non devono essere inferiori a StopLevel (correggeteli se necessario).
Se tutti i controlli sono stati superati, un ordine dovrebbe essere inviato al server per impostare un ordine in sospeso, ottenere una risposta - se la risposta contiene un errore, processarla (è necessaria un'altra funzione)...
Questo è per gli ordini in sospeso.
È più o meno lo stesso per la chiusura di una posizione - identificare l'incrocio, inviare un ordine di compravendita e gestire la risposta del server in caso di errore.
Se riuscite ad inserire 4-6 righe per tutto questo, allora...avrai una medaglia nel magazzino... ;)
Sento che dopo questa spiegazione c'è un programmatore novizio in meno ))))
Ragazzi, cos'è la (.e) in valuta per favore spiegate
hai bisogno di una sezione di codice - un affidabile trailing stop multicurrency che inizia con un punto di break-even impostato e un rientro impostato dal prezzo
Guarda questo, http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=62
Vuoi rispondere a questa domanda:
1) aprire un ordine pendente quando ha raggiunto qualsiasi valore (cioè se il prezzo è 0,7777, allora aprire un ordine pendente)
2) Chiudi l'ordine (ordine a mercato) quando ha raggiunto un valore qualsiasi (cioè se il prezzo è 0,6666, allora chiudi l'ordine).
Ottenere una risposta a 4-6 righe di codice?
Sei uno di quei commercianti che scrivono: "Cosa c'è da fare? Ci vogliono solo un paio di righe... Cosa sono cento sterline?".
Cerchiamo di essere chiari:
Devi prima determinare che il prezzo ha raggiunto 0,7777. Ha raggiunto la cima? In basso? Va bene se il tick precedente era, per esempio, 0,7776 e il tick attuale è 0,7778? In questo caso, il prezzo non sarà uguale al valore di 0,7777. Quindi, dovete controllare il valore passato e quello attuale per l'intersezione del valore necessario. Corrispondentemente, dovete memorizzare il valore del tick precedente e conoscere il valore del tick attuale. Significa - avete bisogno di una funzione per ottenere il valore del tick e memorizzare il suo valore, in modo da avere qualcosa con cui confrontarlo in seguito - tre prezzi: il tick precedente, il tick attuale e il prezzo incrociato stesso.
Più in là. Dobbiamo sapere in quale direzione il prezzo attraverserà il valore necessario e, di conseguenza, dobbiamo impostare il tipo necessario di ordine pendente al prezzo necessario.
Per impostarlo, dobbiamo calcolare il prezzo impostato dal prezzo corrente, confrontare la distanza ottenuta dell'impostazione dell'ordine pendente con il valore di StopLevel e se la distanza ottenuta è inferiore a quel valore, allora: a) correggere la distanza di impostazione dell'ordine in modo da non raggiungere l'errore 130 e impostare l'ordine o b) aspettare che la distanza di impostazione superi lo StopLevel (con lo spread fluttuante che dovremmo anche ricevere in ogni tick) e vedere se il prezzo attraversa già il livello impostato e se è sul valore corretto - cioè se il livello di stop è impostato, possiamo impostare l'ordine.е., si è allontanato da quel livello per effettuare un ordine o il treno è già partito.
Devi anche calcolare i valori di Stop e Take per l'ordine pendente che a loro volta non devono essere inferiori al livello di Stop (correggili, se necessario).
Se tutti i controlli sono stati superati, un ordine dovrebbe essere inviato al server per impostare un ordine in sospeso, ottenere una risposta - se la risposta contiene un errore, elaborarla (è necessaria un'altra funzione)...
Questo è per gli ordini in sospeso.
È molto simile alla chiusura di una posizione - identificare l'incrocio, inviare un ordine di compravendita e gestire la risposta del server in caso di errore.
Se riuscite ad inserire 4-6 righe per tutto questo, allora...avrai una medaglia nel magazzino... ;)
"Sei il tipo di cliente che dice: "Cosa c'è da fare? Sono solo un paio di righe... Cosa sono cento sterline?". No, non sono una di quelle persone e non capisco perché pensi che io sia un cliente. Voglio imparare questo programma perché ho idee sull'Expert Advisor, i problemi nella sua implementazione sono solo tecnici (e non sto contestando che i problemi sono molto grandi), ma non sto cercando di dire qualcosa come "fammi tutto il software e che funziona solo con profitto. Al contrario, ho iniziato con le basi e voglio scrivere il mio primo Expert Advisor. Ho anche scritto che volevo un esempio molto semplice, senza prendere in considerazione tutti i dettagli (anche se capisco che sono molto importanti), ma devo iniziare da qualche parte. Sapevo che sarebbe stato doloroso per un professionista guardare ciò che sto chiedendo, ma non potevo farne a meno, finché è tutto ciò che so. Pensavo di poter scrivere un pezzo di codice simile con l'aiuto dell'operatore if else e della funzione OrderSend (OrderClose) e altre cose, che non posso fare. Avete scritto un sacco di termini complessi e quindi mi avete detto che non sono capace di fare niente e sono un idiota nella programmazione, ma lo so lo stesso. Spero che non pensiate che io sia un arrogante e che capisca che voglio solo continuare ad imparare. Ma anche tu hai ragione, spero che sia stato trovato un compromesso.
Nessuno ti ha chiamato "babbeo", non è vero. Ma anche 4-6 righe di codice, sapete, causano disorientamento - perché se una persona impara qualcosa, deve già provare qualcosa, ha provato a scrivere qualcosa, e ovviamente vede già che in 4-6 righe non va bene.
Mostraci cosa hai cercato di fare - cerchiamo di capire.
Posso proporre una versione alternativa e semplificata - non cercate un passaggio di livello del prezzo in tick, e cercatelo in MA(1) - allora il MA sulla barra 1 e il MA sulla barra 0 serviranno come indicatore del necessario passaggio di livello.
Ragazzi, cos'è la (.e) in valuta per favore spiegate