![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
Ben,
Non posso ringraziarti abbastanza per la risposta rapida e utile. Avevi assolutamente ragione e sono un passo più vicino grazie a questo!
Ho però un'altra domanda: sto cercando di aggiungere un punto di pareggio a un livello inferiore al trailing stop, ma non sono riuscito a superarlo:
extern bool UseBreak_Even = True;
extern int Break_Even = 20;
Qualche possibilità di consigli anche qui?
Grazie ancora e stammi bene!
-AceCiao, Breakeven è una funzione facile, devi solo capire di cosa hai bisogno e poi sarai in grado di pensare a cosa scrivere per farlo accadere.
1. Breakeven = spostare lo stoploss al prezzo di apertura dell'ordine quando lo stoploss è sotto l'open (per comprare, sopra l'open per vendere).
Per controllare se è sotto, di solito usiamo questo: OrderStopLoss()<OrderOpenPrice()
2. Prima di passare al breakeven è necessario controllare se le condizioni sono vere. Io uso qualcosa come questo:
if(bid>orderopenprice()+breakeven*point) move
3. Spostamento. Uso qualcosa come questo:
ordermodify(symbol(),bla-bla-bla,,,stoploss,takeprofit,0);
bla-bla-bla = set di parametri che non cambiano per gli ordini aperti come il prezzo di apertura dell'ordine (può essere cambiato per gli ordini pendenti)
stoploss = di solito metto qui orderopenprice() per chiudere l'ordine a 0 pip di profitto.
takeprofit = se non vuoi che il TP cambi, inserisci OrderTakeProfit() (sensibile al maiuscolo/minuscolo!)
Spero che questo aiuti
e sì, ti lascia fare il lavoro da solo.
Oh, e come trovare l'ordine che vuoi modificare:
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if(OrderSymbol()!=Symbol()) continue;
if(OrderMagicNumber!=MagicNumber) continue;
if(your-condition-here) your-action-here;
}Questo dovrebbe fare bene il lavoro
questo ciclo semplicemente cicla attraverso gli ordini e trova ogni ordine attualmente aperto. Poi filtra gli ordini con un numero magico diverso (dovrai prima definire il numero magico) e quelli con un simbolo diverso(coppia di valute).
Spero che questo aiuti
nck
grazie ma il codice è inutile senza gli indicatori goldminer1 e goldminer2![](https://c.mql5.com/forextsd/smiles/biggrin.png)
Il nuovo EA è allegato. Non ho potuto testarlo per ovvi motivi quindi per favore non incolpare me se non funziona come dovrebbe. Dovrebbe chiudere l'ordine esistente quando viene ricevuto un nuovo segnale, ma ci potrebbe essere un conflitto di segnali perché diversi indicatori sono usati per comprare e vendere.
Buon divertimento con il nuovo EA!
Dimensione del trade per tick o barra in MT4
Ciao,
Spero che qualcuno con una buona conoscenza degli interni di MT4 possa rispondere alla mia domanda e che questa risposta possa beneficiare tutti: Non riesco a trovare da nessuna parte come ottenere una dimensione del trade per i tick in arrivo o per una barra. Questa sembra essere una caratteristica di base del mercato ma la funzione MarketInfo non la fornisce. E' possibile in MT4?
Grazie
Ciao,
Spero che qualcuno con una buona conoscenza degli interni di MT4 possa rispondere alla mia domanda e che questa risposta possa beneficiare tutti: Non riesco a trovare da nessuna parte come ottenere una dimensione di trade per i tick in arrivo o per una barra. Questa sembra essere una caratteristica di base del mercato ma la funzione MarketInfo non la fornisce. E' possibile in MT4?
Graziedoppio Volume[]
Array di serie che contiene i volumi in tick di ogni barra del grafico corrente.
double iVolume( string symbol, int timeframe, int shift)
Restituisce il valore di Tick Volume per la barra del simbolo indicato con timeframe e shift. Se la storia locale è vuota (non caricata), la funzione restituisce 0.
Per il grafico corrente, le informazioni sui volumi di tick delle barre sono nell'array predefinito chiamato Volume[].
È questo che stavi cercando? I volumi sono basati sul numero di tick ricevuti durante la barra, potrebbero essere generati durante il back-test, differiscono per ogni broker. Temo che non abbiano molto valore.
Dimensione del trade per tick o barra in MT4
Shinigami,
Grazie per la tua risposta, ma sto cercando la dimensione effettiva della negoziazione associata ad ogni tick. Ogni tick sembra essere una transazione di acquisto/vendita e vorrei davvero sapere la dimensione effettiva di tale transazione. Sono 100 lotti standard o 1 lotto o microlotto? Fa differenza.
Ciao codificatori e colleghi trader, ho una domanda ma più sulla logica.
Sto cercando (senza successo) da un po' di tempo di fare un semplice EA e spero che mi aiuterete a fare un passo successivo.
Ho un indicatore personalizzato ( 2MA CrossoverWithPrice ) e vorrei fare un acquisto quando appaiono le frecce blu e vendere quando appare la freccia rossa.
Ho chiamato l'indicatore con la funzione iCustom in questo modo:
iCustom(NULL,0, "2MA CrossoverWithPrice",0,0,CLR_NONE);
e ho compilato l'EA e sembra che tutto sia ok dato che ottengo un avviso sul grafico quando lo collego (dice che l'indicatore personalizzato è allegato)
Quello che mi preoccupa è che non so cosa fare dopo, come dire all'EA di comprare e vendere perché l'indicatore crea 2 tipi di frecce.
Qualcuno può aiutarmi in qualche modo? consigli o altro per favore?![](https://c.mql5.com/forextsd/smiles/sad_smile.png)
Contesto commerciale occupato
Ciao, qualcuno conosce un modo per continuare a inviare una chiusura o un'apertura al vostro broker se continuate a ricevere il segnale di trade context busy?
aggiungere livelli di MA a un indicatore
Temo di non poter aiutare con le domande di cui sopra perché scommetto di essere il più recente programmatore wanabe qui![](https://c.mql5.com/forextsd/smiles/wink.png)
Ho fatto con successo (finalmente!) il mio primo semplice indicatore che mette semplicemente 4 EMA su un grafico - e possono essere regolati WOW! Sono davvero soddisfatto![](https://c.mql5.com/forextsd/smiles/wink.png)
Quello che vorrei fare ora è avere la possibilità di aggiungere livelli a una o più delle EMA. Qualcuno sa come farlo nel codice? Inoltre è possibile averli come variabile esterna - per essere in grado di variare i livelli - o per fare questo dovrebbe essere un altro parametro?
Una volta che riuscirò a decifrare questo, aggiungerò dei booleani in modo da poter disattivare ogni EMA - piccoli passi alla volta. La teoria è: trovare l'EMA che si adatta meglio e aggiungere i livelli che mostrano il range (forse 2 livelli in alto e due in basso).
Grazie in anticipo,
Dave
Ciao, qualcuno conosce un modo per continuare a inviare una chiusura o un'apertura al vostro broker se continuate a ricevere il segnale di trade context busy?
Dovresti mettere l'ordersend in un ciclo e controllare la risposta del tuo broker. Se la risposta è -1 invia di nuovo l'ordine. Potresti mettere un leggero ritardo prima di inviarlo di nuovo usando la funzione Sleep.
Buona fortuna
Lux
Ciao codificatori e colleghi trader, ho una domanda ma più sulla logica.
Sto cercando (senza successo) da un po' di tempo di fare un semplice EA e spero che mi aiuterete a fare un passo successivo.
Ho un indicatore personalizzato ( 2MA CrossoverWithPrice ) e vorrei fare un acquisto quando appaiono le frecce blu e vendere quando appare la freccia rossa.
Ho chiamato l'indicatore con la funzione iCustom in questo modo:
iCustom(NULL,0, "2MA CrossoverWithPrice",0,0,CLR_NONE);
e ho compilato l'EA e sembra che tutto sia ok dato che ottengo un avviso sul grafico quando lo collego (dice che l'indicatore personalizzato è allegato)
Quello che mi preoccupa è che non so cosa fare dopo, come dire all'EA di comprare e vendere perché l'indicatore crea 2 tipi di frecce.
Qualcuno può aiutarmi in qualche modo? consigli o altro per favore?Beh, per cominciare stai usando l'icustom in modo errato. L'ultima variabile dovrebbe essere la barra che vuoi controllare, di solito 0 o 1, o potrebbe essere una variabile. Non sei sicuro del perché stai inviando un colore?
La penultima variabile è il buffer che stai cercando di restituire. Se ha solo le due frecce, immagino i buffer 0 e 1. Quindi quello che dovresti fare è controllare se uno dei due è impostato su qualcosa di diverso da 0 o NULL, a seconda dell'indicatore. Dovresti guardare il codice dell'indicatore per capire quale buffer è collegato a quale freccia e poi usarli di conseguenza.
Leggi di nuovo la funzione icustom.
Buona fortuna
Lux
Tracciare l'incrocio delle MA del TF inferiore sul grafico del TF superiore?
Ciao,
Voglio sapere come faccio a tracciare un incrocio di una MA a timeframe inferiore su un grafico a timeframe superiore.
Ad esempio, voglio tracciare una freccia sul grafico H1 quando le MA5 e MA10 di M15 si incrociano.
Per favore fatemi sapere.
Grazie,
JForex.