[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 497
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
incorporare il codice nell'EA, avevo qualcosa di simile fino a quando non l'ho cancellato, stavo usando il timeframe orario
orderelect - seleziona l'ultimo ordine nella storia
prendere il tempo della sua chiusura e tirare fuori l'ora di chiusura
e prima di aprire l'ordine, impostare una condizione che l'ora corrente NON sia uguale all'ora di chiusura dell'ordine dalla storia
Per favore aiutatemi con questo problema, la mia variabile TP è azz erata dopo il secondo aggiornamento del prezzo, cioè, l'advisor apre un ordine, e TP e Bid non sono entrambi uguali a zero, poi il prezzo viene aggiornato di nuovo e TP è zero, anche se non c'è un tale comando nel codice, ho avuto un problema con il tirare su SL, ma ora risulta che il problema è nella definizione di TP
int start()
{
//----
double TP;
double SL;
if (OrdersTotal()==0)
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,0,Bid+4*Point);
OrderSelect(OrdersTotal()-1,SELECT_BY_POS);
TP=OrderTakeProfit();
}
Alert ("TP=" + TP);
Alert ("Bid=" + Bid);
if (OrdersTotal()>0)
{
if (TP-Bid<3*Point)
{
Alert ("Approaching TP by 1 or 2");
Alert ("TP=" + TP);
Alert ("Bid=" + Bid);
}
}
//----
return(0);
}
Per favore aiutatemi con questo problema, la mia variabile TP è azzerata dopo il secondo aggiornamento del prezzo, cioè, l'EA apre un ordine e visualizza i valori di TP e Bid, entrambi non sono uguali a zero, poi il prezzo viene aggiornato di nuovo e TP è zero, anche se nel codice, nessun comando del genere, ho avuto un problema con il tirare SL in alto, ma ora si scopre che il problema è nella definizione di TP
double TP, SL;
int start()
{
//----
if (OrdersTotal()==0)
{
OrderSend(Symbol(),OP_BUY,0.01,Ask,3,0,Bid+4*Point);
OrderSelect(OrdersTotal()-1,SELECT_BY_POS);
TP=OrderTakeProfit();
}
Alert ("TP=" + TP);
Alert ("Bid=" + Bid);
if (OrdersTotal()>0)
{
if (TP-Bid<3*Point)
{
Alert ("Приблизился к ТП на 1 или 2");
Alert ("TP=" + TP);
Alert ("Bid=" + Bid);
}
}
//----
return(0);
}
Si prega di consigliare come aprire un ordine su una nuova barra solo una volta ????
Leggi qui: https://www.mql5.com/ru/forum/134437
Ciao a tutti!
Ci sono due segnali nella strategia: uno primario e uno secondario. Un trade si apre quando il secondo segnale appare non più tardi di 12 ore dopo. Domanda: Come posso insegnare al mio Expert Advisor a non reagire al segnale, se appare dopo 12 ore? Per favore, se potete dare un esempio concreto di codice
Ciao a tutti!
Ci sono due segnali nella strategia: uno primario e uno secondario. Un trade viene aperto quando il secondo segnale appare non più tardi di 12 ore dopo. Domanda: Come posso insegnare al mio Expert Advisor a non reagire al segnale, se appare dopo 12 ore? Per favore, se potete darmi un esempio del codice
Ciao Dmitry. Da parte mia sono pronto ad offrirvi la seguente variante. Per analogia, vedi l'attivazione dei criteri di trading di questo articolo - ci sono anche due segnali - cioè - vedi dopo la seconda figura "La prima cosa da aspettare sul grafico DeMarker è quando il DeMarker incrocia la linea MA veloce e lenta intorno a 0,7 per una posizione short. Questo è il primo segnale preliminare. Poi aspettiamo l'attraversamento delle linee MA stesse. Questo è il segnale principale, dopo il quale si possono prendere le letture dell'indicatore Taichi. Se le linee MA non sono attraversate, è considerato un falso segnale e il movimento del prezzo continuerà. Ecco come è implementato nel mio codice - nell'inclusione inclusa dei gufi che sono responsabili dell'attivazione dei criteri di trading.
Il trucco principale è quello di lavorare attraverso i due sotto (alla fine) l'inclusione impostando e resettando le bandiere quando l'uno o l'altro criterio di commercio è innescato.
Salverete inoltre l'ora attuale quando il criterio principale viene attivato usando TimeCurrent, cioè specificherete un'espressione di tipo x = TimeCurrent prima direturn(OP_BUY); oreturn(OP_SELL); dove x è una variabile globale di tipo datetime per analogia nella prima funzioneint_op_DeMarker. Poi fate lo stesso con la seconda funzioneint type_op_MA... - lì si memorizza la variabile y = TimeCurrent;
Poi si confronta il valore di queste due variabili con il segno più nel blocco di calcolo dei criteri di trading (si scopre che non è necessario l'analogo di lavorare con i valori UTC - invece si prende un confronto del tempo di ricezione dei vostri due segnali commerciali):
P.S. In più vi invio una funzione per la possibilità di ottimizzare il valore del TF di lavoro.
P.P.S. Ecco come questa struttura di codice è organizzata nel mio codice. Non escludo che ci siano varianti di codice molto migliori per soddisfare tali condizioni dell'EA. :-)))
Come faccio a calcolare un profitto su una coppia di valute nel mio EA?
Per esempio, ho sette ordini di acquisto aperti su euro a prezzi diversi. Come posso calcolare un profitto su euro senza influenzare altri ordini su altre coppie? ????
utilizzare SelectOrder per analizzare tutti gli ordini aperti
controlla la coppia richiesta (OrderSymbol)
poi aggiungere il profitto a qualsiasi variabile se è l'OrderProfit richiesto
Ecco un link con funzioni utili https://docs.mql4.com/ru/trading/OrderSelect
sulla sinistra c'è un menu con le operazioni, tutte sono descritte lì