[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 885
Inaspettatamente si è verificato il seguente problema:
Ho scritto un EA, una delle cui funzioni è quella di aprire ordini pendenti. Ma prima di aprire un altro ordine in sospeso, il programma esamina gli ordini già piazzati (prezzo) e ne apre uno nuovo solo se non c'è un ordine già piazzato con lo stesso prezzo. Sto lavorando su EURUSD.
for (Price=Max_Price-Step*Point; Price>Ask+10*Point; Price=Price-Step*Point) // passa dal prezzo massimo al prezzo corrente { int N=0; //contatore ordini for (int i=1; i<=OrdersTotal(); i++) //ciclo degli ordini { if(OrderSelect(i-1,SELECT_BY_POS)==true) //seleziona l'ordine { //analizza l'ordine aperto if (Price==OrderOpenPrice()) //se il prezzo è lo stesso { N=N+1; } } //selezionare il prossimo ordine aperto } if(N==0) //se non viene trovato nessun ordine con lo stesso prezzo { //aprire un ordine Alert("New BUYSTOP ", Price); int Ticket=OrderSend(Symb, OP_BUYSTOP, Lot, Price, 0, 0, Price+TP*Point); if (GetLastError()>0) Alert("Error ", GetLastError()); } } //Vieni al mercato
Tutto va bene finché il massimo è 1,3980, ma appena imposto 1,4000 il programma smette di vedere gli ordini con lo stesso prezzo (il contatore N rimane nullo) e genera gli stessi ordini.
È interessante che se impostiamo il prezzo massimo 1.5000, allora fino a 1.4000 tutto è normale e da 1.3980 inizia a duplicare gli ordini con lo stesso prezzo
COSA POTREBBE ESSERE????????
E la situazione si ripete sulla piattaforma di un altro centro commerciale
Sto correndo nel tester, non riesco a capire perché può apparire questo errore: OrderModify error 1 (Nessun errore, ma il risultato è sconosciuto).
Uso la funzione trawl, non c'è altro, controllo sia il livello min stop che la dimensione del punto e tutto ciò che è richiesto, l'errore non appare sempre.
È un errore grossolano o è tollerabile da eseguire su un conto reale?
Gente, dove devo scrivere per far sì che MT5 faccia una traduzione decente in tedesco? È un peccato... Si rompe per "salvare" (save) file in formato CSV, per selezionare suoni per diversi "eventi" (events) e per terminare i programmi cliccando su "Exit" (dall'edificio, non dal programma)
Gente, dove devo scrivere per far sì che MT5 faccia una traduzione decente in tedesco? È un peccato... Si rompe per "salvare" (save) file in formato CSV, per scegliere suoni per diversi "eventi" (events) e per terminare i programmi premendo "Exit" (dall'edificio, non dal programma)
Se non puoi scrivere nel forum di mql5.com, c'è solo una via d'uscita: scrivere all'ONU.
PS. Stiamo già sistemando l'interfaccia tedesca scrivendo sul forum di mql5.com. Grazie per il messaggio.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Nessuno è stato in grado di darmi una risposta... Qualcuno ha un indizio?
Forse devi controllare i tipi PARASTEP e PARAMAX e i loro valori.
È l'unica opzione?
1) scrivere su un file
2) cercare l'ordine richiesto e leggere il biglietto
Inaspettatamente si è verificato il seguente problema:
Ho scritto un EA, una delle cui funzioni è quella di aprire ordini pendenti. Ma prima di aprire un altro ordine in sospeso, il programma esamina gli ordini già piazzati (prezzo) e ne apre uno nuovo solo se non c'è un ordine già piazzato con lo stesso prezzo. Sto lavorando su EURUSD.
for (Price=Max_Price-Step*Point; Price>Ask+10*Point; Price=Price-Step*Point) // passa dal prezzo massimo al prezzo corrente
{
int N=0; //contatore ordini
for (int i=1; i<=OrdersTotal(); i++) //ciclo degli ordini
{
if(OrderSelect(i-1,SELECT_BY_POS)==true) //seleziona l'ordine
{ //analizza l'ordine aperto
if (Price==OrderOpenPrice()) //se il prezzo è lo stesso
{
N=N+1;
}
} //selezionare il prossimo ordine aperto
}
if(N==0) //se non viene trovato nessun ordine con lo stesso prezzo
{ //aprire un ordine
Alert("New BUYSTOP ", Price);
int Ticket=OrderSend(Symb, OP_BUYSTOP, Lot, Price, 0, 0, Price+TP*Point);
if (GetLastError()>0)
Alert("Error ", GetLastError());
}
} //Vieni al mercato
Tutto va bene finché il massimo è 1,3980, ma appena imposto 1,4000 il programma smette di vedere gli ordini con lo stesso prezzo (il contatore N rimane nullo) e genera gli stessi ordini.
È interessante che se impostiamo il prezzo massimo 1.5000, allora fino a 1.4000 tutto è normale e da 1.3980 inizia a duplicare gli ordini con lo stesso prezzo
COSA POTREBBE ESSERE????????
E la situazione si ripete sulla piattaforma di un altro centro commerciale
Sto correndo nel tester, non riesco a capire perché può apparire questo errore: OrderModify error 1 (Nessun errore, ma il risultato è sconosciuto).
Uso la funzione trawl, non c'è altro, controllo sia il livello min stop che la dimensione del punto e tutto ciò che è richiesto, l'errore non appare sempre.
È un errore grossolano o è tollerabile da eseguire su un conto reale?
L'ho provato nel tester, non so dove può causare l'errore OrderModify error 1 (Nessun errore, ma il risultato è sconosciuto).
Uso la funzione trawl, non c'è altro, controllo il livello min stop e la dimensione del punto e tutto ciò che è richiesto, l'errore non appare sempre.
Ho provato nel tester, non riesco a capire che tipo di errore sia.
https://docs.mql4.com/ru/trading/OrderModify dice qui di questo errore
Ecco la funzione :
double ObFindObjectsByPrefix(string Prefix)
{
stringa OBJECT_PREFIX="LEVELS";
double price_max;
int L = StringLen(Prefix);
int i = 0;
int time_min=TimeCurrent();
while(i < ObjectsTotal()-1)
{
string ObjName = ObjectName(i);
if(StringSubstr(ObjName, 0, L) != Prefix)
{
i++;
continue;
}
double price=ObjectGet(ObjName,OBJPROP_PRICE1);
if (MathAbs(price-Bid)/Point<m)
{
int time1=ObjectGet(ObjName,OBJPROP_TIME1);
if (time1<time_min)
{
time_min=time1; price_max=price;
}
}
}
return(price);
}
cosa c'è che non va, perché non funziona?
cerca il segmento più lungo con un prefisso e restituisce il valore del prezzo.
Gente, dove devo scrivere per far sì che MT5 faccia una traduzione decente in tedesco? È un peccato... Si rompe per "salvare" (save) file in formato CSV, per selezionare suoni per diversi "eventi" (events) e per terminare i programmi cliccando su "Exit" (dall'edificio, non dal programma)
Potrebbe essere necessario controllare i tipi PARASTEP e PARAMAX e i loro valori.
Gente, dove devo scrivere per far sì che MT5 faccia una traduzione decente in tedesco? È un peccato... Si rompe per "salvare" (save) file in formato CSV, per scegliere suoni per diversi "eventi" (events) e per terminare i programmi premendo "Exit" (dall'edificio, non dal programma)
Se non puoi scrivere nel forum di mql5.com, c'è solo una via d'uscita: scrivere all'ONU.
PS. Stiamo già sistemando l'interfaccia tedesca scrivendo sul forum di mql5.com. Grazie per il messaggio.