Ошибки, баги, вопросы - страница 1141
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Всем салют !
Такая проблема.
Успешно получаю значение индикаторов Bands и MA.
Bands_handle=iBands(NULL,0,BP_var_s,0,BDev_var_s,PRICE_CLOSE);CopyBuffer(Bands_handle,0,0,1,Base);
CopyBuffer(Bands_handle,1,0,1,Upper);
CopyBuffer(Bands_handle,2,0,1,Lower);
B_med_s=Base[0];
B_up_s=Upper[0];
B_low_s=Lower[0];
MA_handle=iMA(NULL,0,MA_var_b,0,MODE_SMA,PRICE_TYPICAL);
CopyBuffer(MA_handle,0,0,1,MAv);
M_av_s=MAv[0];
Далее вывожу принтом : B_up_s=1.264249475876921 M_av_s=1.2595
Далее пытаюсь совершить мат. операцию B_up_s-M_av_s и получаю в результате 0.00000000.
Что за чудеса ???
Всем салют !
Такая проблема.
Успешно получаю значение индикаторов Bands и MA.
CopyBuffer(Bands_handle,0,0,1,Base);
CopyBuffer(Bands_handle,1,0,1,Upper);
CopyBuffer(Bands_handle,2,0,1,Lower);
B_med_s=Base[0];
B_up_s=Upper[0];
B_low_s=Lower[0];
MA_handle=iMA(NULL,0,MA_var_b,0,MODE_SMA,PRICE_TYPICAL);
CopyBuffer(MA_handle,0,0,1,MAv);
M_av_s=MAv[0];
Далее вывожу принтом : B_up_s=1.264249475876921 M_av_s=1.2595
Далее пытаюсь совершить мат. операцию B_up_s-M_av_s и получаю в результате 0.00000000.
Что за чудеса ???
1) Как вставлять код.
2) В переменной какого типа Вы храните результат операции? А лучше приведите ту часть кода где производится вывод.
1) Как вставлять код.
2) В переменной какого типа Вы храните результат операции? А лучше приведите ту часть кода где производится вывод.
Все переменные типа double.
Не понятно почему у Bands много знаков а у MA только 4 после запятой. А нулевой результат вообще не должен быть. Из за этого алгоритм не работает.
Как все просто в MQL4 было. А теперь нужна скорость оптимизации и мультвалютная проверка. Приходится переносить все на MQL5 тудыть его ))
Все переменные типа double.
Не понятно почему у Bands много знаков а у MA только 4 после запятой. А нулевой результат вообще не должен быть. Из за этого алгоритм не работает.
Как все просто в MQL4 было. А теперь нужна скорость оптимизации и мультвалютная проверка. Приходится переносить все на MQL5 тудыть его ))
Должно работать. Ниже скрипт по Вашему коду и его результат:
Все переменные типа double.
Не понятно почему у Bands много знаков а у MA только 4 после запятой. А нулевой результат вообще не должен быть. Из за этого алгоритм не работает.
Как все просто в MQL4 было. А теперь нужна скорость оптимизации и мультвалютная проверка. Приходится переносить все на MQL5 тудыть его ))
Должно работать. Ниже скрипт по Вашему коду и его результат:
Да скрипт работает.
Даже советник с этим примером работает.
А вот мой советник выдает ноль упорно. Будем искать ошибку ......
Всем привет!
Вопрос такой, как сделать чтобы суммировались значения переменной, обновляемой на каждом тике в течении минуты, а потом эта сумма записывалась в отдельное значение, по истечению закрытия следующей минуты значение сумму заменялось новым?
int t = TimeSeconds();
while (t !=0)
double b - переменная, которая обновляется в течение минуты на каждом тике.
double b1 - значение переменной b на предыдущем тике.
double s - сумма на всех тиках в течение минуты.
double s1 - сумма на всех тиках в течение прошедшей минуты.
b1=b;
s=b1+b;
if (t=0) s1=s;
Как сделать чтобы данные суммировались на каждом тике и как вообще всё это правильно записать?
Да скрипт работает.
Даже советник с этим примером работает.
А вот мой советник выдает ноль упорно. Будем искать ошибку ......
Вот что обнаружилось.
Если просто запустить советник то он работает нормально а вот в тестере он выдает нули в самом начале. А уже при выполнении следующей строки нули волшебным образом становятся нормальными данными индикаторов. Не пойму в чем дело.....
Ниже код.
Вот что выдает тестер
CJ 0 19:40:47.022 Core 1 EURUSD,M15 (Alpari-Ltd-Demo): OHLC bar states generating. OnTick executed on the bar begin only
IJ 0 19:40:47.022 Core 1 EURUSD,M15: testing of Experts\tmp.ex5 from 2004.01.07 00:00 to 2004.02.02 00:00 started
LK 0 19:40:47.022 Core 1 2004.01.07 00:00:00 B_up_s=0.0 M_av_s=0.0
IM 0 19:40:47.022 Core 1 2004.01.07 00:00:00 sbl_top=true B_up_s=0.0 M_av_s=0.0 B_up_s-M_av_s=0.00000000
OQ 0 19:40:47.022 Core 1 2004.01.07 00:15:00 B_up_s=1.279208140152992 M_av_s=1.2718
OI 0 19:40:47.022 Core 1 2004.01.07 00:15:00 sel=true B_up_s=1.279208140152992 M_av_s=1.2718 B_up_s-M_av_s=0.00740814
CJ 0 19:40:47.022 Core 1 2004.01.07 00:30:00 B_up_s=1.279239651523307 M_av_s=1.2721
LN 0 19:40:47.022 Core 1 2004.01.07 00:45:00 B_up_s=1.279382808470771 M_av_s=1.2714
DS 0 19:40:47.022 Core 1 2004.01.07 01:00:00 B_up_s=1.279407737043184 M_av_s=1.2719
OD 0 19:40:47.022 Core 1 2004.01.07 01:15:00 B_up_s=1.279398917431485 M_av_s=1.2727
NI 0 19:40:47.022 Core 1 2004.01.07 01:30:00 B_up_s=1.279380702214008 M_av_s=1.2731
IM 0 19:40:47.022 Core 1 2004.01.07 01:45:00 B_up_s=1.279440208228416 M_av_s=1.2723
LE 0 19:40:47.022 Core 1 2004.01.07 02:00:00 B_up_s=1.279473515350084 M_av_s=1.272
DK 0 19:40:47.022 Core 1 2004.01.07 02:15:00 B_up_s=1.279515146590278 M_av_s=1.2715
FL 0 19:40:47.022 Core 1 2004.01.07 02:30:00 B_up_s=1.279601656250741 M_av_s=1.2709
IQ 0 19:40:47.022 Core 1 2004.01.07 02:45:00 B_up_s=1.279656914787522 M_av_s=1.2709
CE 0 19:40:47.022 Core 1 2004.01.07 03:00:00 B_up_s=1.279579626541548 M_av_s=1.2707
Вот что обнаружилось.
1) Не надо создавать индикаторы на каждом тике!
2) Нужно проверять - создался индикатор или нет, прежде чем обращяться к его значениям.
3) Нужно проверять - скопировались ли запрашиваемые значения из индикатора.
4) Всегда удаляйте расчетную часть индикатора после завершения эксперта, а то может в какой-то момент и оперативы не хватить.
Косяк был из-за того что Вы пытались скопировать значения из ещё не создавшегося индикатора. Возьмите за правило - проверять результат вызываемых функций.
Подскажите пожалуйста где ошибка.
Екперт работает на демо, 3 пары. Вот Лог:
Вот код
Експерт пытается произвести OrderDelete(), дает ошибку, SendTradeRequest() находится в цикле while, експерт соответствено зацикливает. Может цена поменялась в момент отправки заявки? Нужен ли RefreshRates() и как с ним правильно работать, искал в форуме но не нашел нигде примера..
Спасибо заранее всем