[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 472

 
StatBars >>:

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

Вот скрипт, проверил работает, всё нормально прочитал и в стороковом и в double.

 
В общем, я порядочный балбес, что тут сказать!
Специалист мне сразу говорил, смотреть на массивы, а не на приведение типов...

StatBars, Vinin, все кто откликнулись, спасибо вам большое.

Проблема заключалась в том, что у меня массивы были динамические. а там определенная специфика при приведении есть.
подстроился под массивы детерминированной длины, и приведение типов с StrToDouble заработало, как по маслу.

Спасибо большое всем еще раз.
Работа с файлами - вещь полезная. Стараюсь сейчас в ней разобраться.
 
Bicus >>:
Джентльмены, вопрос такой:

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

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

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

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

А?

 
Bicus писал(а) >>

А?


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

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

double nMAValue;

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

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

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

у меня все правильно работает, значение выдается в тестере, оно верное. вот код если что, у тебя вероятно ошибка в остальном коде где-то
Файлы:
001.mq4  1 kb
 

Vinin, Bicus
Спасибо, просветили на счет .csv
Что-то я совсем с утра того... языки перепутал)

 
Уважаемые господа, я столкнулся с проблемой, связанной с функцией 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 или нет?
Файлы:
 
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 или нет?


Все нормально работает. По крайней мере у меня
Файлы:
 
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 или нет?

Point не может равняться 0, у Вас скорее всего 5-й знак и поэтому когда принтишь(Алерт) получается 0(принт(Алерт) выводит до 4 цнаков, если не преобразовать в строку DoubleToStr...)
попробуйте TakeProfit и StopLoss умножить на 10

Причина обращения: