Сообщество Экспертописателей - страница 5

 

понятно, что можно люфт сделать, но это же не серьёзно.... а если придётся люфт 10-20 пипсов делать, "для надёжности", да на М30, сказка просто =)


При чем здесь? "+Point" решает проблему с округлением последнего значимого знака цены. Не о 2, 3, а тем более 10-20 пунктах речи не идет.
сейчас не идёт, а на реале? если скажут, что надо "подстраховаться" =)
если бы хоть точно знать, что проблема в этом, ладно... а так понатыкаешь везде +поинт, и получится по сделке +5-10 поинтов (цена открытия, СЛ, ТП...). Понятно, что плохого эксперта не спасёшь, но хорошему поможешь...
 
... а так понатыкаешь везде +поинт, и получится по сделке +5-10 поинтов (цена открытия, СЛ, ТП...). Понятно, что плохого эксперта не спасёшь, но хорошему поможешь...

ИМХО, 5-10 пипсов погоду не делают.
Если система критична к таким проскальзываниям, то работать в реале она не будет.
Если котировать будет человек, то ответа можно ждать и десятки секунд,
там может и больше набежать.

Кроме того (опять ИМХО),
на минутных тамфреймах вряд ли получится сделать систему,
если на стороне брокера не автомат.
И даже с автоматом это очень сомнительно.

Реальный таймфрейм от часа и выше,
а там 5 пипсов большой роли не играют, особенно для трейлинга.
 
... а так понатыкаешь везде +поинт, и получится по сделке +5-10 поинтов (цена открытия, СЛ, ТП...). Понятно, что плохого эксперта не спасёшь, но хорошему поможешь...

ИМХО, 5-10 пипсов погоду не делают.
Если система критична к таким проскальзываниям, то работать в реале она не будет.
Если котировать будет человек, то ответа можно ждать и десятки секунд,
там может и больше набежать.

Кроме того (опять ИМХО),
на минутных тамфреймах вряд ли получится сделать систему,
если на стороне брокера не автомат.
И даже с автоматом это очень сомнительно.

Реальный таймфрейм от часа и выше,
а там 5 пипсов большой роли не играют, особенно для трейлинга.
Mak, согласен... Полностью...
А вот с тем, что не работает, не согласен. Надо найти ошибку.
 
В MQL4 зазработчиками указана такая опция:

"Возможна также организация доступа к историческим данным по другим временным интервалам и даже по другим
валютным парам. Чтобы получить такие данные необходимо предварительно определить одномерный массив и
выполнить операцию копирования с помощью функции "ArrayCopySeries". Причем при вызове функции можно
передавать меньшее количество параметров и не указывать параметры по умолчанию."

double eur_close_m1[];
int number_copied = ArrayCopySeries(eur_close_m1, MODE_CLOSE, "EURUSD", PERIOD_M1);



Мы пытались эту опцию реализовать, но столкнулись с проблемой: в массив

 eur_close_m1[] 


почему то не поступают данные. Помогите разобраться в чем проблема.










 
double eur_close_m1[];
int number_copied = ArrayCopySeries(eur_close_m1, MODE_CLOSE, "EURUSD", PERIOD_M1);



Мы пытались эту опцию реализовать, но столкнулись с проблемой: в массив eur_close_m1[]
почему то не поступают данные. Помогите разобраться в чем проблема.


а что говорит GetLastError?
если это ошибка 4066, то просто ещё не подкачались данные. Вам необходимо выждать некоторое время и повторить попытку заново.
 
double eur_close_m1[];
int number_copied = ArrayCopySeries(eur_close_m1, MODE_CLOSE, "EURUSD", PERIOD_M1);



Мы пытались эту опцию реализовать, но столкнулись с проблемой: в массив eur_close_m1[]
почему то не поступают данные. Помогите разобраться в чем проблема.


а что говорит GetLastError?
если это ошибка 4066, то просто ещё не подкачались данные. Вам необходимо выждать некоторое время и повторить попытку заново.


Нет, до "Requested history data in updating state" дело не доходит. Эксперт построенный на импорте данных
просто мертвый. Возникли сомнения что эта функция поддерживается. Интерсено, история уже знает прецеденты, чтобы у кого то получилось оживить эксперта через импорт данных, есть живой свидетель?
 
re Private:
есть преценденты =)
у меня эксперт (работающий) использует ArrayCopySeries:
	double high[];
	ArrayCopySeries ( high, MODE_HIGH, _Symbol, Trade_TimeFrame );

	double open_price = NormalizeDouble ( MathMax( high[0], high[1] ), digits );


эксперт работает по 8-ми парам и 4-м таймфреймам одновременно - всё корректно отрабатывается...

надо всё-таки посмотреть, _что_ говорит GetLastError...


зы(на всяк случай): в обзоре рынка есть нужные пары? может, это как-то влияет... (догадка:)

 
Вот здесь фрагмент нашего кода с импортом данных.
Может кто знает, почему не считает разность?


double ma_6O=iMAOnArray( ma_O, ArrayCopySeries(ma_O, MODE_OPEN, "EURUSD", PERIOD_H1), 3*MA_period,0,MODE_SMA,1);

double ma_6C=iMAOnArray( ma_C, ArrayCopySeries(ma_C, MODE_CLOSE, "EURUSD", PERIOD_H1), 3*MA_period,0,MODE_SMA,1 );

double diff_OP = ma_6O - ma_6C;

Comment("O-С = "+diff_OP);

 


Вот здесь фрагмент нашего кода с импортом данных.
Может кто знает, почему не считает разность?


double ma_6O=iMAOnArray( ma_O, ArrayCopySeries(ma_O, MODE_OPEN, "EURUSD", PERIOD_H1), 3*MA_period,0,MODE_SMA,1);

double ma_6C=iMAOnArray( ma_C, ArrayCopySeries(ma_C, MODE_CLOSE, "EURUSD", PERIOD_H1), 3*MA_period,0,MODE_SMA,1 );

double diff_OP = ma_6O - ma_6C;

Comment("O-С = "+diff_OP);


конечно ничего считать не будет. ибо функция ArrayCopySeries возвращает не массив, а количество скопированных элементов, целое число.
Посмотрите в журнале экспертов - должно быть сообщение об отстутсвии массива в качестве аргумента
 
Вот переделали код, но почему то все равно не работет...


double ma_O[];
double ma_C[];

ArrayCopySeries(ma_O, MODE_OPEN, "EURUSD", PERIOD_H1);
double ma_6O=iMAOnArray( ma_O, 0, 3,0,MODE_SMA,1);

ArrayCopySeries(ma_C, MODE_CLOSE, "EURUSD", PERIOD_H1);
double ma_6C=iMAOnArray( ma_C, 0, 3,0,MODE_SMA,1 );

double diff_OP = ma_6O - ma_6C;

Comment("O-C = "+diff_OP);
Причина обращения: