[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 472

 
StatBars >>:

Вы не моглы бы весь скрипт выложить? Я имею ввиду вместе с объявлениями переменных массивов и т.д.

Ecco lo script, ho controllato che funzioni, si legge bene sia nella sidebar che nel doppio.

 
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.
 
Bicus >>:
Джентльмены, вопрос такой:

В тестере вот такая штука:

в журнале выдает "0.0000".

А в терминале в реал-тайме выдает правильные значения.

Как с этим бороться?

А?

 
Bicus писал(а) >>

А?


>> Metti fuori il codice e dammi tutti i dettagli.
 
Techno >>:

выкладывай код, и все подробней

double nMAValue;

... парам-парам ...

nMAValue = iMA (Symbol (), PERIOD_H1, 100, 0, MODE_SMA, PRICE_MEDIAN, 0); 
Print ("MA value: ", DoubleToStr (nMAValue, 4));

... парам-парам ...
 
Bicus писал(а) >>

Funziona correttamente per me, il valore nel tester è corretto. ecco il codice, semmai, probabilmente hai un errore nel resto del codice da qualche parte
File:
001.mq4  1 kb
 

Vinin, Bicus.
Grazie per l'aggiornamento sul .csv.
Sono stato un po'... ...confuso).

 
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?
File:
 
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?


Tutto funziona bene. Almeno per me
File:
 
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