Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 170

 
Sergey Gritsay:

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.
 
maxon777:

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 ))))
 
Andrey Koldorkin:
Sento che dopo questa spiegazione c'è un programmatore novizio in meno ))))
 

Ragazzi, cos'è la (.e) in valuta per favore spiegate

 
la sezione di codice di cui avete bisogno è un affidabile trailing stop multicurrency che inizia con un punto di break-even impostato e un passo indietro impostato dal prezzo
 
Vitaliy29:
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

Автоматизация торговли на финансовых рынках - Скачать e-Trailing2.rar
  • www.kimiv.ru
Оглавление файлового архива  Разработки на MQL4 Советники   Новая улучшенная бесплатная версия "кимовского трала". Добавлен параметр Magic, позволяющий более гибко отбирать сопровождаемые позиции, а также разделены параметры трала для покупок и продаж. Кроме того, вместо параметра ProfitTrailing теперь используется TrailingStart. Это почти то...
 
Artyom Trishkin:

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.
 
maxon777:
"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.

 
Sahet.Sh:

Ragazzi, cos'è la (.e) in valuta per favore spiegate

Questa è una domanda per il broker, sentitevi liberi di contattare il supporto. Solo lui sa esattamente cosa significano i suoi suffissi .e. È una sua decisione. In generale, i suffissi (così come i prefissi) nei nomi delle coppie di valute e di altri strumenti possono significare qualsiasi cosa: ie - esecuzione istantanea, m - esecuzione sul mercato, punto - cinque cifre in una quotazione e commissione, _OP - strumento per il trading di opzioni binarie,... Ma naturalmente, è solo la decisione del broker, lui è l'autorità finale nel trovare il significato delle denominazioni che ha introdotto.