[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 472
Tutto sommato, sono un discreto disastro, che posso dire! Lo specialista mi ha subito detto di guardare gli array, non le conversioni di tipo...
StatBars, Vinin, tutti quelli che hanno risposto, grazie mille.
Il problema era che i miei array erano dinamici. E lì c'è una certa specificità nella conversione dei tipi. adattato ad array di lunghezza deterministica, e la conversione dei tipi con StrToDouble ha funzionato come un orologio.
Grazie mille ancora. Lavorare con i file è una cosa utile. Sto cercando di capirlo ora.
Funziona correttamente per me, il valore nel tester è corretto. ecco il codice, semmai, probabilmente hai un errore nel resto del codice da qualche parte
Gentili signori, ho riscontrato un problema con la funzione OrderSend, cioè il mio ordine non si apre. Per esempio, se collego questo EA a un grafico - extern double StopLoss = 30; extern double TakeProfit = 30; extern double lot = 0.1; double SL,TP; string Symb; int start() { Symb=Symbol(); SL =Bid - (StopLoss*Point); TP =Bid + (TakeProfit*Point); OrderSend(Symb,OP_BUY,lot,Ask,3,SL,TP); if(OrdersTotal()>0) Alert("Ordine di acquisto aperto"); if(OrdersTotal()==0) Alert("Ordine di acquisto fallito perché.error #",GetLastError()); Alert("Point = ",Point); return; } il terminale mostrerà l'errore #130 (stop errato) e il valore di Point sarà 0. Penso che sia a causa del valore dei punti restituiti (anche se chi lo sa). In generale chi sa "dove è sepolto il cane" aiuta. A proposito, il valore di Point = 0 o no?
159753 писал(а)>> Gentili signori, ho riscontrato un problema con la funzione OrderSend, cioè il mio ordine non si apre. Per esempio, se attacco questo EA a un grafico - extern double StopLoss = 30; extern double TakeProfit = 30; extern double lot = 0,1; doppio SL,TP; stringa Symb; int start() { Symb=Symbol(); SL =Bid - (StopLoss*Point); TP =Bid + (TakeProfit*Point); OrderSend(Symb,OP_BUY,lot,Ask,3,SL,TP); if(OrdersTotal()>0) Alert("Ordine di acquisto aperto"); if(OrdersTotal()==0) Alert("The Buy order failed to open due to error #",GetLastError()); Alert("Punto = ",Punto); ritorno; } allora il terminale visualizzerà l'errore #130 (arresti sbagliati) e il valore del punto sarà =0. Penso che sia a causa del valore dei punti restituiti (anche se chi lo sa). In generale, chi sa "dove è sepolto il cane" aiuta. A proposito, il valore di Point = 0 o no?
159753>>: Уважаемые господа, я столкнулся с проблемой, связанной с функцией OrderSend, а именно у меня не открывается ордер. К примеру, если присоединить этот советник к графику - extern double StopLoss = 30; extern double TakeProfit = 30; extern double lot = 0.1; double SL,TP; string Symb; int start() { Symb=Symbol(); SL =Bid - (StopLoss*Point); TP =Bid + (TakeProfit*Point); OrderSend(Symb,OP_BUY,lot,Ask,3,SL,TP); if(OrdersTotal()>0) Alert("Ордер Buy открыт"); if(OrdersTotal()==0) Alert("Ордер Buy открыть не удалось т.к. возникла ошибка №",GetLastError()); Alert("Point = ",Point); return; } то терминал выдаст ошибку № 130 (неправильные стопы), а значение Point будет = 0. Я думаю, что всё из-за возвращаемого значения Point (хотя кто его знает). В общем кто знает "где собака зарыта " помогите. Кстати, значение Point должно = 0 или нет?
Il punto non può essere 0, probabilmente hai la quinta cifra, quindi quando stampi (Alert) ottieni 0 (print (Alert) produce fino a 4 tsnack, a meno che tu non lo converta in una stringa DoubleToStr...) prova TakeProfit e StopLoss moltiplicati per 10
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.
Вы не моглы бы весь скрипт выложить? Я имею ввиду вместе с объявлениями переменных массивов и т.д.
Ecco lo script, ho controllato che funzioni, si legge bene sia nella sidebar che nel doppio.
Lo specialista mi ha subito detto di guardare gli array, non le conversioni di tipo...
StatBars, Vinin, tutti quelli che hanno risposto, grazie mille.
Il problema era che i miei array erano dinamici. E lì c'è una certa specificità nella conversione dei tipi.
adattato ad array di lunghezza deterministica, e la conversione dei tipi con StrToDouble ha funzionato come un orologio.
Grazie mille ancora.
Lavorare con i file è una cosa utile. Sto cercando di capirlo ora.
Джентльмены, вопрос такой:
В тестере вот такая штука:
в журнале выдает "0.0000".
А в терминале в реал-тайме выдает правильные значения.
Как с этим бороться?
А?
А?
>> Metti fuori il codice e dammi tutti i dettagli.выкладывай код, и все подробней
Vinin, Bicus.
Grazie per l'aggiornamento sul .csv.
Sono stato un po'... ...confuso).
Per esempio, se collego questo EA a un grafico -
extern double StopLoss = 30;
extern double TakeProfit = 30;
extern double lot = 0.1;
double SL,TP;
string Symb;
int start()
{
Symb=Symbol();
SL =Bid - (StopLoss*Point);
TP =Bid + (TakeProfit*Point);
OrderSend(Symb,OP_BUY,lot,Ask,3,SL,TP);
if(OrdersTotal()>0) Alert("Ordine di acquisto aperto");
if(OrdersTotal()==0) Alert("Ordine di acquisto fallito perché.error #",GetLastError());
Alert("Point = ",Point);
return;
}
il terminale mostrerà l'errore #130 (stop errato) e il valore di Point sarà 0.
Penso che sia a causa del valore dei punti restituiti (anche se chi lo sa).
In generale chi sa "dove è sepolto il cane" aiuta.
A proposito, il valore di Point = 0 o no?
Gentili signori, ho riscontrato un problema con la funzione OrderSend, cioè il mio ordine non si apre.
Per esempio, se attacco questo EA a un grafico -
extern double StopLoss = 30;
extern double TakeProfit = 30;
extern double lot = 0,1;
doppio SL,TP;
stringa Symb;
int start()
{
Symb=Symbol();
SL =Bid - (StopLoss*Point);
TP =Bid + (TakeProfit*Point);
OrderSend(Symb,OP_BUY,lot,Ask,3,SL,TP);
if(OrdersTotal()>0) Alert("Ordine di acquisto aperto");
if(OrdersTotal()==0) Alert("The Buy order failed to open due to error #",GetLastError());
Alert("Punto = ",Punto);
ritorno;
}
allora il terminale visualizzerà l'errore #130 (arresti sbagliati) e il valore del punto sarà =0.
Penso che sia a causa del valore dei punti restituiti (anche se chi lo sa).
In generale, chi sa "dove è sepolto il cane" aiuta.
A proposito, il valore di Point = 0 o no?
Tutto funziona bene. Almeno per meУважаемые господа, я столкнулся с проблемой, связанной с функцией OrderSend, а именно у меня не открывается ордер.
К примеру, если присоединить этот советник к графику -
extern double StopLoss = 30;
extern double TakeProfit = 30;
extern double lot = 0.1;
double SL,TP;
string Symb;
int start()
{
Symb=Symbol();
SL =Bid - (StopLoss*Point);
TP =Bid + (TakeProfit*Point);
OrderSend(Symb,OP_BUY,lot,Ask,3,SL,TP);
if(OrdersTotal()>0) Alert("Ордер Buy открыт");
if(OrdersTotal()==0) Alert("Ордер Buy открыть не удалось т.к. возникла ошибка №",GetLastError());
Alert("Point = ",Point);
return;
}
то терминал выдаст ошибку № 130 (неправильные стопы), а значение Point будет = 0.
Я думаю, что всё из-за возвращаемого значения Point (хотя кто его знает).
В общем кто знает "где собака зарыта " помогите.
Кстати, значение Point должно = 0 или нет?
Il punto non può essere 0, probabilmente hai la quinta cifra, quindi quando stampi (Alert) ottieni 0 (print (Alert) produce fino a 4 tsnack, a meno che tu non lo converta in una stringa DoubleToStr...)
prova TakeProfit e StopLoss moltiplicati per 10