![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
Altezza della barra precedente
Salve,
Puoi per favore dare il codice per la barra precedente.
Questo può essere usato nell'EA per limitare il piazzamento degli ordini quando la barra precedente è più di una certa altezza.
Cordiali saluti,
SIDDESH
Plz correggere il mio codice (EMA di base, STOC ecc.)
ciao... im nuovo qui n nuovo alla codifica mql4... ho costruire alcuni codici basati su condizioni specifiche... spero che voi ragazzi mi può aiutare a correggere se c'è qualche errore...
ok... cominciamo
1) INCROCIO EMA
COMPRARE se:
- EMA 5 > EMA 18
- entrambe le linee sono al rialzo
- differenza tra il prezzo attuale e quello precedente per EMA5 >= 10pips
Attualmente sto usando questo:
double EMA5 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, 0);
double EMA5_prev = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, 1);
double EMA18 = iMA(NULL, 0, 18, 0, MODE_EMA, PRICE_CLOSE, 0);
double EMA18_prev = iMA(NULL, 0, 18, 0, MODE_EMA, PRICE_CLOSE, 1);
if (EMA5 > EMA18) {
if ( EMA5 - EMA5_prev >= 10 && EMA18 > EMA_prev) {
Order = BUY;
}
}
[/CODE]
2) RSI
double RSI = iRSI(NULL, 0, 18, PRICE_CLOSE, Current + 0);
double RSI_prev = iRSI(NULL, 0, 18, PRICE_CLOSE, Current + 1);
if (RSI > 50 && RSI > RSI_prev) {
Order = BUY;
}
[/CODE]
3) STOCH
Buy when the Oscillator (either %K or %D) falls below a specific level (e.g., 20) and then rises above that level. Sell when the Oscillator rises above a specific level (e.g., 80) and then falls below that level
[code]
double STOCH_K = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, 0);
double STOCH_D = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 0);
if (STOCH_K < 20 || STOCH_D < 20) {
Order = BUY;
}
* i think i've skipped the red one.. dont know how to do that part..
Buy when the %K line rises above the %D line and sell when the %K line falls below the %D line
[code]
double STOCH_K = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_MAIN, 0);
double STOCH_D = iStochastic(NULL, 0, 5, 3, 3, MODE_SMA, 0, MODE_SIGNAL, 0);
if (STOCH_K > STOCH_D) {
Order BUY;
} else
if {STOCH_K < STOCH_D) {
Order SELL;
}
4) Nella codifica Stoc, MODE_MAIN indica per cosa? MODE_SIGNAL indica per cosa?
5) come mettere l'auto close e l'auto on timer per l'EA?
es: impostare l'apertura alle 8 del mattino e la chiusura alle 5 del pomeriggio
6) come mettere l'EA disabilitato su un altro grafico quando si apre una posizione?
per esempio usare un EA su 2 coppie (GU e EJ) quando viene aperto un post su GU poi disabilitare EA su EJ..
scusate se questa domanda è piuttosto elementare... spero che voi ragazzi possiate insegnarmi... thx![](https://c.mql5.com/forextsd/smiles/regular_smile.png)
Uno stoploss difficile - potete aiutarmi con questo?
Ho messo insieme un EA a cavallo del trend. Quando il profitto raggiunge un certo livello, voglio spostare lo stoploss per una parte dei lotti aperti, a quel livello di profitto. Lascerei stare il resto dei lotti (o sposterei lo stoploss per il resto fino al break even).
Non sto usando un Take Profit.
Come faccio a codificare questo?
Grazie,
Grande essere
... Quando il profitto raggiunge un certo livello, voglio spostare lo stoploss per una PARTE dei lotti aperti, a quel livello di profitto. ..
Come faccio a codificare questo?
Grazie,
Grande essereNon puoi farlo a meno che tu non abbia posizioni multiple: ci può essere un solo SP/TP per posizione. Ma puoi chiudere una parte di una posizione: basta mettere il numero di lotti che vuoi chiudere nella funzione OrderClose(..).
Quello che puoi anche fare (dipende dal tuo broker) è di mettere uno stop pendente (hedge) per la parte che vuoi: poi più tardi dovrai fare un comando o una funzione "CloseBy".
#domanda sull'importazione
Ciao a tutti
ho bisogno di calare questa funzione API in MT4
int GetMouseMovePoints(
UINT cbSize // dimensione della struttura MOUSEMOVEPOINT
LPMOUSEMOVEPOINT lppt, // puntatore al punto di spostamento del mouse corrente
LPMOUSEMOVEPOINT lpptBuf, // buffer per memorizzare i punti
int nBufPoints, // quanti punti può contenere il buffer
DWORD resolution // risoluzione dei punti
);
per favore ditemi la clausola #import
grazie
ciao a tutti
Ho bisogno di calare questa funzione API in MT4
int GetMouseMovePoints(
UINT cbSize // dimensione della struttura MOUSEMOVEPOINT
LPMOUSEMOVEPOINT lppt, // puntatore al punto di spostamento corrente del mouse
LPMOUSEMOVEPOINT lpptBuf, // buffer per memorizzare i punti
int nBufPoints, // quanti punti può contenere il buffer
DWORD resolution // risoluzione dei punti
);
per favore dimmi la clausola #import
grazieSpostato la tua domanda in questo thread.
Un trade per barra?
So che questo è stato trattato prima, ma qualcuno può mostrarmi del codice per permettere solo 1 trade per barra?
Grazie.![](https://c.mql5.com/forextsd/smiles/regular_smile.png)
Michel,
grazie.
Avevo paura di questo.
Ora devo imparare il "divertimento con i numeri magici".
Grande essere
Domanda!!!
Come faccio a codificare questo?
Se i precedenti 6 trade erano in perdita, ho provato questo, e non funziona!!!
int MTL;
extern MaxTradeLoss=6;
int start()
{
for(int b=0;b<MaxTradeLoss;b++)
{
if(OrderSelect(b,SELECT_BY_POS,MODE_HISTORY)==true)
{
if(OrderSymbol()==Symbol() && OrderProfit()<0)
{
MTL++;
}
}
}
MTL=0;
return(0);
}
Come faccio a codificare questo?
Se i precedenti 6 trade erano in perdita, ho provato questo, e non funziona!!!
int MTL;
extern MaxTradeLoss=6;
int start()
{
for(int b=0;b<MaxTradeLoss;b++)
{
if(OrderSelect(b,SELECT_BY_POS,MODE_HISTORY)==true)
{
if(OrderSymbol()==Symbol() && OrderProfit()<0)
{
MTL++;
}
}
}
MTL=0;
return(0);
}
la tua affermazione MTL=0; imposta praticamente MTL a zero, indipendentemente da ciò che ha contato nel ciclo "for". Quella linea dovrebbe essere prima del ciclo "for" e non dopo.