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
macerina
Solo la prima parte (il resto è solo una variazione di questo):
se ema(7) < ema(21) e precedente ema(7) < precedente ema(21) allora se ema(di rsi(14),9) < rsi(14) segnale per comprare
si può dire anche in questo modo :
se macd(7,12) < e precedente macd(7,12) < 0 allora se ema(di rsi(14),9) < rsi(14) segnale per acquistoGrazie per la risposta mladen è possibile codificare un indicatore mt4 con questo criterio
Grazie in anticipo
Grazie per la risposta mladen è possibile codificare un indicatore mt4 con questo criterio Grazie in anticipo
macerina
Questo è un semplice sistema macd + rsi. Credo che esista già. Se non c'è, è facile fare un indicatore e poi sarà fatto
Si prega di postare la parte di codice in cui si sta cercando di ottenere ciò che hai descritto qui: https: //www.mql5.com/en/forum/174385/page162 (non i 3 take profit che piazzano gli ordini e i 3 trailing stop di gestione, ma la parte che sta cercando di fare esattamente ciò che hai descritto) e poi, forse qualcuno può aiutarti con la tua codifica.
//conta gli ordini di acquisto aperti.
iOpenOrders_Buy = CntOrd(iOrderType_Buy,MagicNumber,Symbol());
//conta gli ordini di vendita aperti.
iOpenOrders_Sell = CntOrd(iOrderType_Sell,MagicNumber,Symbol());
se (iOpenOrders_Buy==3 || iOpenOrders_Sell==3)
{
if(TrailingStop>0 && TrailingStart > 0) TrailOrder (TrailingStart, TrailingStop);}
se (iOpenOrders_Buy==1 || iOpenOrders_Sell==1)
{
if(TrailingStop_2>0 && TrailingStart_2 > 0) TrailOrder_3 (TrailingStart_2, TrailingStop_2);
}
//////////////////////////////////////////////////////////////////////////////////////////////
Questa è la parte in cui l'EA cerca il numero di ordini aperti per la coppia collegata.
Se trova 3 ordini, seguirà la solita funzione Trailing Stop. E se trova che c'è solo un trade in esecuzione, allora seguirà la seconda funzione Trailing Stop.
Questo funziona 'OK' per una singola coppia, ma quando collego questo EA a più grafici (coppie), non funziona perché recupera tutti gli ordini aperti tramite la funzione 'OrdersTotal()'.
/Fine - Chiudere le posizioni di vendita aperte------------------------------------------
double OpenPrice=Ask;
int count=3;
if (count==3)
{
BuyOrder_1=OrderSend(Symbol(), iOrderType_Buy, LotSize,OpenPrice,Slippage,dStopLossPrice,dTakeProfitPrice_1, "Buy Order",MagicNumber, 0,Blue);
if (BuyOrder_1>0) //Controllo se l'ordine è stato aperto o meno
{
sLog_CheckBuyConditions = sLog_CheckBuyConditions + sNL + " Ordine di acquisto 1 inviato con successo. Ticket=" + BuyOrder_1;
count = count - 1;
//////////////////////////////////////////////////////////////
Quindi il conteggio sta diminuendo e gli ordini di apertura fino a count=1. Quindi 3 ordini si stanno aprendo come count=3 inizialmente.
//conta gli ordini di acquisto aperti.
iOpenOrders_Buy = CntOrd(iOrderType_Buy,MagicNumber,Symbol());
//conta gli ordini di vendita aperti.
iOpenOrders_Sell = CntOrd(iOrderType_Sell,MagicNumber,Symbol());
se (iOpenOrders_Buy==3 || iOpenOrders_Sell==3)
{
if(TrailingStop>0 && TrailingStart > 0) TrailOrder (TrailingStart, TrailingStop);}
se (iOpenOrders_Buy==1 || iOpenOrders_Sell==1)
{
if(TrailingStop_2>0 && TrailingStart_2 > 0) TrailOrder_3 (TrailingStart_2, TrailingStop_2);
}
//////////////////////////////////////////////////////////////////////////////////////////////
Questa è la parte in cui l'EA cerca il numero di ordini aperti per la coppia collegata.
Se trova 3 ordini, seguirà la solita funzione Trailing Stop. E se trova che c'è solo un trade in esecuzione, allora seguirà la seconda funzione Trailing Stop.
Questo funziona 'OK' per una singola coppia, ma quando collego questo EA a più grafici (coppie), non funziona perché recupera tutti gli ordini aperti tramite la funzione 'OrdersTotal()'.
/Fine - Chiudere le posizioni di vendita aperte------------------------------------------
double OpenPrice=Ask;
int count=3;
se (count==3)
{
BuyOrder_1=OrderSend(Symbol(), iOrderType_Buy, LotSize,OpenPrice,Slippage,dStopLossPrice,dTakeProfitPrice_1, "Buy Order",MagicNumber, 0,Blue);
if (BuyOrder_1>0) //Controllo se l'ordine è stato aperto o meno
{
sLog_CheckBuyConditions = sLog_CheckBuyConditions + sNL + " Ordine di acquisto 1 inviato con successo. Ticket=" + BuyOrder_1;
count = count - 1;
//////////////////////////////////////////////////////////////
Così il conteggio sta diminuendo e gli ordini di apertura fino al conteggio=1. Quindi 3 ordini si stanno aprendo perché inizialmente il conteggio è uguale a 3.La domanda era la seguente: come fa a sapere che una volta c'erano 3 ordini aperti e poi ne rimane solo uno? Il fatto che sia rimasto un solo ordine aperto non mostra nulla. Bisogna controllare la lista degli ordini chiusi per gli altri 2 ordini che facevano parte di una tripletta, e dato che i broker possono cambiare il campo dei commenti, non c'è modo di sapere che alcuni ordini facevano parte di una stessa tripletta (nessun campo nella lista degli ordini che possa essere usato per marcare che alcuni ordini appartengono a uno stesso gruppo di ordini).
Si potrebbe provare a utilizzare dei file per salvare i numeri di ticket che appartengono a terzine, ma, nel caso in cui si cerchi di utilizzare lo stesso EA da un altro terminale, si possono ottenere errori terribili. La stessa cosa può accadere quando si reinstalla Metatrader. Usare le variabili globali è sempre peggio (sono quasi la stessa cosa che usare i file - ma peggio), quindi non c'è un modo significativo per tracciare correttamente le terzine di ordini
Quindi come fai a scoprire che 1 ordine aperto è l'ultimo ordine aperto dei 3 o è il primo ordine aperto di una nuova terzina di ordini?
La domanda era la seguente: come fa a sapere che una volta c'erano 3 ordini aperti e poi ne rimane solo uno? Il fatto che sia rimasto un solo ordine aperto non mostra nulla. Bisogna controllare la lista degli ordini chiusi per gli altri 2 ordini che facevano parte di una tripletta, e dato che i broker possono cambiare il campo dei commenti, non c'è modo di sapere che alcuni ordini facevano parte di una stessa tripletta (nessun campo nella lista degli ordini che può essere utilizzato per marcare che alcuni ordini appartengono a uno stesso gruppo di ordini). Quindi come si fa a sapere che 1 ordine aperto è l'ultimo ordine aperto dei 3 o è un primo ordine aperto di una nuova tripletta di ordini?
Mladen,
Ckeck you pm, bisogno di un codificatore
Sogno una GRANDE icona per PM !
Quindi come fate a sapere che 1 ordine aperto è l'ultimo ordine aperto dei 3 o è il primo ordine aperto di una nuova terzina di ordini?
C'è una condizione:
if (MA_Difference_1>=Value_Diff && iOpenOrders_Buy ==0)
Quindi con questo mi sto assicurando che se c'è un ordine di acquisto esistente, non aprirà un nuovo ordine di acquisto nonostante le condizioni siano soddisfatte. Aprirà un nuovo ordine solo quando non ci sarà nessun ordine di acquisto/vendita esistente.
E siccome sta aprendo 3 ordini alla volta dello stesso tipo (acquisto/vendita) e se due di essi sono già chiusi, allora quello rimasto è sicuramente dello stesso tipo.
L'ho testato. Quindi non c'è confusione.
C'è una condizione:
if (MA_Difference_1>=Value_Diff && iOpenOrders_Buy ==0)
Quindi con questo mi sto assicurando che se c'è un ordine di acquisto esistente, non aprirà un nuovo ordine di acquisto nonostante le condizioni siano soddisfatte. Aprirà un nuovo ordine solo quando non ci sarà nessun ordine di acquisto/vendita esistente.
E siccome sta aprendo 3 ordini alla volta dello stesso tipo (acquisto/vendita) e se due di essi sono già chiusi, allora quello rimasto è sicuramente dello stesso tipo.
L'ho testato. Quindi non c'è confusione.Ci sono molte supposizioni in tutto questo. La prima è che quando si cerca di aprire 3 ordini, si apriranno effettivamente 3 ordini. E se ne apre solo 1? . E così via ...
Mi dispiace. Ma sembra che stiamo parlando sempre di cose diverse. Spero che qualcuno possa aiutarvi, visto che io non posso
Commercio felice
Ci sono molte supposizioni in tutta la faccenda. La prima è che quando provi ad aprire 3 ordini, aprirà effettivamente 3 ordini. E se ne apre solo 1? . E così via ...
Mi dispiace. Ma sembra che stiamo parlando di cose diverse tutto il tempo. Spero che qualcuno possa aiutarvi, visto che io non posso
Buon tradingSe non puoi, va bene.
L'ho testato per un po' con diversi broker e finora non ha "fallito" nell'aprire 3 ordini.
Comunque, penso che potresti dire almeno quale punto/logica rende un EA in grado di distinguere tra diverse coppie mentre sto chiamando 'OrdersTotal()'?
Qualsiasi piccolo esempio di EA andrà bene.
Grazie per la risposta mladen è possibile codificare un indicatore mt4 con questo criterio Grazie in anticipo
macerina
Controlla l'indicatore a questo post : https://www.mql5.com/en/forum/173574/page432. E' quasi esattamente uguale a quello descritto da aspen graphic code
Grazie Mladen per il codice ... Questo ha il doppio confronto macd e 50 crossover come hai spiegato nella logica precedente.
Grazie in anticipo