[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 116
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
Ragazzi, potete dirmi perché potrebbe esserci un errore sul fatto di non poter aprire un indicatore in un EA?
Questa condizione è soddisfatta:
-Elenco dei parametri (se necessario). I parametri trasmessi devono corrispondere all'ordine di dichiarazione e al tipo di variabili esterne (extern) dell'indicatore personalizzato.
Dovreste controllare il nome dell'indicatore. Potrebbe essere
Dovrei controllare il nome dell'indicatore. Non so cosa possa essere.
Ho controllato il nome. È tutto a posto. Capire...
P.S. Ho impostato un terminale DC a cinque cifre, ho spostato tutto lì, ho ricontrollato tutto di nuovo, molte modifiche al codice, questo errore non si verifica più.
1. Aprire un ordine e assegnare il valore del prezzo di apertura alla variabile PriceBuy e visualizzare un messaggio al riguardo.
2. Aprire un nuovo ordine con le stesse condizioni quando viene raggiunto il TakeProfit.
Ecco il codice del programma:
extern double PriceBuy = 0;
extern bool Buy = true;
extern bool number = false;
int start()
{
if(Buy)
{
int ticket=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Bid-100*Point,Bid+100*Point);
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)
PriceBuy=OrderOpenPrice();
Alert("Buy Price = ",PriceBuy);
Buy = false;
number = true;}
if (Bid+100*Point<=PriceBuy && number)
{PriceBuy = 0;
number = false;
Buy=true;}
return;
}
Grazie in anticipo
O guru della programmazione MQL, aiutate un nuovo arrivato a risolvere un problema. Il programma non funziona correttamente, non fa quello che dovrebbe fare. Potresti per favore dirmi qual è il mio errore? Il programma ha bisogno di:
1. aprire un ordine e assegnare il valore del prezzo aperto alla variabile PriceBuy e visualizzare un messaggio al riguardo.
Per aprire un nuovo ordine con le stesse condizioni quando viene raggiunto il TakeProfit.
Ecco il codice del programma:
extern double PriceBuy = 0;
extern bool Buy = true;
extern bool number = false;
int start()
{
se(Acquista)
{
int ticket=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Ask-100*Point,Ask+100*Point);
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
PriceBuy=OrderOpenPrice();
Alert("Buy Price = ",PriceBuy);
Comprare = falso;
numero = vero;}
se(Bid+100*Point<=PriceBuy && numero)
{PriceBuy = 0;
numero = falso;
Buy=true;}
ritorno;
}
Grazie in anticipo
Bid>=PriceBuy+100*Point
Voglio collegare la funzione CreateNamedPipe() da kernel32.dll. Ho bisogno di prescrivere bandiere di tipo Dword.
Lo faccio in questo modo:
#define ACCESS_SYSTEM_SECURITY 0x01000000L
Naturalmente, il compilatore giura sulla L alla fine. Mi diresti cosa fare?
Devo controllare il nome dell'indicatore. Può essere.
Sì, davvero, Victor, il mio errore è stato che ho cercato di affrontarlo automaticamente... :-))) all'indicatore tramite
... Di conseguenza, i nomi "breve" e "normale" non corrispondono quando ci si rivolge ai valori dell'indicatore attraverso iCustom(), cioè quando non coincidono, l'indicatore dovrebbe essere indirizzato solo dal suo nome "normale".
Grazie.
Salve.
Per favore aiutatemi a trovare un errore.
Il codice è progettato per chiudere tutte le posizioni quando il prezzo attraversa la linea disegnata sul grafico. Il più delle volte è così. Ma periodicamente ci sono 2 inconvenienti: 1. Il prezzo attraversa la linea, ma le posizioni non vengono chiuse. 2. La linea interseca il livello di prezzo corrente (ad angolo), ma non coincide con esso (non influenza la candela corrente), mentre tutte le posizioni sono chiuse (cosa che non dovrebbe accadere).
Vi ringrazio in anticipo.
Per favore aiutatemi a trovare l'errore.
Ritirando la domanda, ho capito.
Voglio collegare la funzione CreateNamedPipe() da kernel32.dll. Ho bisogno di prescrivere bandiere di tipo Dword.
Lo faccio in questo modo:
#define ACCESS_SYSTEM_SECURITY 0x01000000L
Naturalmente, il compilatore giura sulla L alla fine. Qualche consiglio su cosa fare?
Rimuovere la cifra. Ci possono essere solo 8 bit. MQL4 non funziona con quelli grandi.
È necessario rimuovere uno zero in più. Prova così: 0x1000000L
Non funziona così. Il compilatore dà errore '0x1000000L' - numero non valido
Non funziona così. Il compilatore genera l'errore '0x1000000L' - numero non valido
Non pensare affatto di notte... :-)) Non esiste un numero simile nel sistema a 16 bit. È un identificatore di tipo costante.
L dovrebbe essere rimosso:0x01000000