Ответить
13.06.2009, 15:50
Аватар для Serewka
Serewka Serewka вне форума Активный участник
Регистрация: 13.06.2009 / Сообщений: 4
Поблагодарили 0 раз(а) / Репутация: 0

По умолчанию Помогите исправить код в советнике на JMA

Всем привет! Подскажите советом или поправьте, что Я делаю не так. Ситуация такая: есть индикатор JMA с разными периодами (14 и 21 (индикатор прилагаю)). Захотел попробовать сделать эксперт на его основе который при пересечении линий (см скрин) покупает 14 идет снизу вверх и закрывает прошлый ордер, и наоборот если сверху вниз продает. График USD-JPU 30min. Но при запуске он неправильно срабатывает-т.е при покупка и продажа поздно срабатывают а иногда и просто неработает. Грешу на неправильный вызов индикатора. Хочется сделать, чтобы при пересечении он в течении 1-2 мин срабатывал. (jma- индикатор, JMA_S-советник)
Заранее спасибо всем кто откликнется.

Фото





Советник и индикатор прилагаю

Последний раз редактировалось Ирина К; 29.05.2014 в 17:51.
13.06.2009, 16:08
Аватар для FXgorets
FXgorets FXgorets вне форума Местный житель
Регистрация: 11.05.2009 / Адрес: Украина / Сообщений: 929
Поблагодарили 202 раз(а) / Репутация: 195
  • Отправить сообщение для FXgorets с помощью ICQ
А что это вы точками и линиями на нижней фотографии позначили ?
13.06.2009, 17:53
Регистрация: 13.03.2009 / Сообщений: 2,406
Поблагодарили 1,980 раз(а) / Репутация: 2057
Конечно не правильно.
Если задаёшь праметры индюку то задавай все, в том поряжке как у индюка.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
13.06.2009, 17:59
Аватар для Serewka
Serewka Serewka вне форума Активный участник
Регистрация: 13.06.2009 / Сообщений: 4
Поблагодарили 0 раз(а) / Репутация: 0
А что это вы точками и линиями на нижней фотографии позначили ?
Это при тестировании показано покупка и продажа позначена.


Конечно не правильно.
Если задаёшь праметры индюку то задавай все, в том поряжке как у индюка.


Можна более подробней пожалуйста-я начинающий и полность код не писал - лишь чуть менял
13.06.2009, 18:07
Регистрация: 13.03.2009 / Сообщений: 2,406
Поблагодарили 1,980 раз(а) / Репутация: 2057
double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift)

Расчет указанного пользовательского индикатора. Пользовательский индикатор должен быть скомпилирован (файл с расширением EX4) и находиться в директории каталог_терминала\experts\indicato rs.
Параметры:symbol - Символьное имя инструмента, на данных которого будет вычисляться индикатор. NULL означает текущий символ.
timeframe - Период. Может быть одним из периодов графика. 0 означает период текущего графика.
name - Имя пользовательского индикатора.
... - Список параметров (при необходимости). Передаваемые параметры должны соответствовать порядку объявления и типу внешних (extern) переменных пользовательского индикатора.
mode - Индекс линии индикатора. Может быть от 0 до 7 и должен соответствовать индексу, используемому одной из функций SetIndexBuffer.
shift - Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад).

Пример:
double iCustom(NULL,30,"JMA",Length,0,0,0);
После имени 2 параметра индюка, а потом номер буфера и же потом индекс смещения.

Дальше не проверял, может ещё есть ошибки.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
13.06.2009, 20:09
Аватар для Serewka
Serewka Serewka вне форума Активный участник
Регистрация: 13.06.2009 / Сообщений: 4
Поблагодарили 0 раз(а) / Репутация: 0
double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift)

Пример:
double iCustom(NULL,30,"JMA",Length,0,0,0);
После имени 2 параметра индюка, а потом номер буфера и же потом индекс смещения.

Дальше не проверял, может ещё есть ошибки.
Я так понимаю, что в усех случаях нужно передавать все параметры индикатора.

Сейчас отредактировал так:
int Length=14;

double SEma0 = iCustom(NULL,30,"JMA",Length,0,0,0);
double SEma1 = iCustom(NULL,30,"JMA",Length,0,0,1);

Length=21;
double LEma0 = iCustom(NULL,30,"JMA",Length,0,0,0);
double LEma1 = iCustom(NULL,30,"JMA",Length,0,0,1);

Но проблемка осталась - не точно происходит покупка и продажа.



Условия:
Покупка: if(SEma0-LEma0>0 && SEma1-LEma1<0)
Продажа: if(SEma0<LEma0 && SEma1>LEma1)

Или нужно еще подбирать параметры в ф-ции iCustom "mode" и "shift" ?
14.06.2009, 05:17
Регистрация: 13.03.2009 / Сообщений: 2,406
Поблагодарили 1,980 раз(а) / Репутация: 2057
Я так понимаю, что в усех случаях нужно передавать все параметры индикатора.

Сейчас отредактировал так:
int Length=14;

double SEma0 = iCustom(NULL,30,"JMA",Length,0,0,0);
double SEma1 = iCustom(NULL,30,"JMA",Length,0,0,1);

Length=21;
double LEma0 = iCustom(NULL,30,"JMA",Length,0,0,0);
double LEma1 = iCustom(NULL,30,"JMA",Length,0,0,1);

Но проблемка осталась - не точно происходит покупка и продажа.



Условия:
Покупка: if(SEma0-LEma0>0 && SEma1-LEma1<0)
Продажа: if(SEma0<LEma0 && SEma1>LEma1)

Или нужно еще подбирать параметры в ф-ции iCustom "mode" и "shift" ?
"mode" - это номер буфера индюка. То есть из какого буфера брать данные. Если берёшь с линии его трогать не надо.

"shift" - под\над какой свечкой с индюка брать показания.
0 - последняя, ещё не закрытая свеча.
1 - предпоследняя свеча, или последняя из закрытых свечей.

Условия описаны по разному, но аналогично.
Продажа: if - если
SEma0<LEma0 - на последней свече быстрая ниже медленной
&& - и
SEma1>LEma1 - на предпоследней свече быстрая выше медленной.
Получается что пересечение по этому условию происходит между 0 и 1 свечёй.
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
14.06.2009, 13:59
Аватар для Serewka
Serewka Serewka вне форума Активный участник
Регистрация: 13.06.2009 / Сообщений: 4
Поблагодарили 0 раз(а) / Репутация: 0
"mode" - это номер буфера индюка. То есть из...

SEma0<LEma0 - на последней свече быстрая ниже медленной
&& - и
SEma1>LEma1 - на предпоследней свече быстрая выше медленной.
Получается что пересечение по этому условию происходит между 0 и 1 свечёй.
Интересно, то ли это язык программирования еще тот то ли Я что-то не понимаю, потому как используя обращение к JMA и условия пересечения советник нормально не работает - т.е. открывает и закрывает позиции где угодно см.скрин

int Length1=14;
int Length2=21;


double SEma0 = iCustom(NULL,30,"JMA",Length1,0,0,0);
double SEma1 = iCustom(NULL,30,"JMA",Length1,0,0,1);

Print("SEma0", SEma0);
Print("SEma1", SEma1);


double LEma0 = iCustom(NULL,30,"JMA",Length2,0,0,0);
double LEma1 = iCustom(NULL,30,"JMA",Length2,0,0,1);

Print("LEma0", LEma0);
Print("LEma1", LEma1);


if(SEma0>LEma0 && SEma1<=LEma1)
ticket=OrderSend(Symbol(),OP_BUY,LotsOptimized(),A sk,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,"EMA BUY",MAGIC,0,CLR_NONE);

if(SEma0<LEma0 && SEma1>=LEma1)
ticket=OrderSend(Symbol(),OP_SELL,LotsOptimized(), Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,"EMA SELL",MAGIC,0,CLR_NONE);


01.04.2013, 04:04
Аватар для forwasp
forwasp forwasp вне форума Активный участник
Регистрация: 14.08.2009 / Сообщений: 1
Поблагодарили 0 раз(а) / Репутация: 0
Я сам долго мучился с этим JMA. Этот индюк в советниках работает некорректно.
Ответить


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите советом начинающему трейдеру NYSE prokurator Всё о фондовых рынках и инвесторах 29 28.08.2013 12:55
Профи, помогите советом!!!!!!! Алексей Что обсуждают на других форумах 0 01.04.2010 20:00
Помогите ценным советом Алексей Что обсуждают на других форумах 0 19.01.2010 14:00


Текущее время: 01:11. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO