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

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

Посмотри этот вариант. http://vinin.ucoz.ru/forum/10-38-1

Последний пост

 

Граждане! Кто соединял МТ4 с Матлабом по ДДЕ, подскажите, почему не инициализируется соединение? 

Пишу  channel = ddeinit('MT4','BID');

в ответ -     channel = 0

метатрадер запущен если что.

 

Добрый день.

Подскажите мне пожалуйста.

Что нужно изменить в индикаторе МА, чтобы линия рисовалась с другой стороны цены ? Например, если цена идет вниз, то линия индикатора отображается как бы справа, а если вверх, то слева.

Как сделать наоборот ?

 
smogsam писал(а) >>

Добрый день.

Подскажите мне пожалуйста.

Что нужно изменить в индикаторе МА, чтобы линия рисовалась с другой стороны цены ? Например, если цена идет вниз, то линия индикатора отображается как бы справа, а если вверх, то слева.

Как сделать наоборот ?

Наверно нужно сдвинуть индикатор на период назад, в прошлое, хотя насколько сдвигать зависит от периода задержки индикатора. У SMA полпериода.

Так что сдвигая SMA на период назад, то можно будет видеть на истории то что вы хотите

 
Chemist >>:

Граждане! Кто соединял МТ4 с Матлабом по ДДЕ, подскажите, почему не инициализируется соединение?

Пишу channel = ddeinit('MT4','BID');

в ответ - channel = 0

метатрадер запущен если что.

А вы включили в Сервис-Настройки-Сервер-Разрешить DEE Сервер ?

а то вообще надобы.

 
Urain >>:

А вы включили в Сервис-Настройки-Сервер-Разрешить DEE Сервер ?

а то вообще надобы.


все, эту проблемму поборол. channel принял нужное значение. теперь пытаюсь получить данные

rc = ddeadv(channel, 'EURUSD','disp(x)','x',[1 1]);  -  пытаюсь вывести на консоль значение приходящего тика,

но не работает, хотя rc=1. что не так, подскажите?

 


Здравствуйте. Который день бьюсь над кодом создания пользовательского индикатора, основанного на теории ДеМарка. Суть индикатора - путь пройденный ценой (Close[i]-Open[i])/(High[i]-Low[i]) за единицу времени, например, день умножается на объем того же периода. Если цена повышается, то величина этого значения умнож. на объем, прибавляется к предыдущему значению. Если, цена понижается - величина этого дня вычитается из предыдущего дня. Т.е., положительные величины складываются с предыдущем днем, а отрицательные - вычитаются. Отношение положительных и отрицательных величин одного периода -есть процентное выражение величины давления покупателей/продавцов, иначе, накопление/распределение данного фин. инструмента.

Привожу код только специальной функции start, т.к. с инициализацией переменных нет проблем. При запуске кода происходит - при нулевой i итерации кривая индикатора "уходит" в потолок/пол окна индикатора.

Что неправильно делаю? Как надо? Спасибо за помощь.


int start()
{
int i,j,nCountedBars;
double V,X,Y,Z;

if(Bars<=Fi) return(0);

nCountedBars=IndicatorCounted();
//----
i=Bars-Fi-1;
if(nCountedBars>Fi)
i=Bars-nCountedBars-1;
while(i>=0)
{
V=(Close[i]-Open[i])/(High[i]-Low[i]);
if(V>0)
X+=V*Volume[i];
else
Y+=V*Volume[i];



Alert("V=",V," X=",X," Y=",Y," i=",i);


ExtDMFiBuffer[i]=100-100/(1+MathAbs(X/Y));


i--;
}
return(0);
Файлы:
demarkrf.mq4  2 kb
 
Laven писал(а) >>

Здравствуйте. Который день бьюсь над кодом создания пользовательского индикатора, основанного на теории ДеМарка. Суть индикатора - путь пройденный ценой (Close[i]-Open[i])/(High[i]-Low[i]) за единицу времени, например, день умножается на объем того же периода. Если цена повышается, то величина этого значения умнож. на объем, прибавляется к предыдущему значению. Если, цена понижается - величина этого дня вычитается из предыдущего дня. Т.е., положительные величины складываются с предыдущем днем, а отрицательные - вычитаются. Отношение положительных и отрицательных величин одного периода -есть процентное выражение величины давления покупателей/продавцов, иначе, накопление/распределение данного фин. инструмента.

Деление на ноль получается.

Если перед любым делением добавить контроль на ноль, то рисовать начинает.

Но надо было бы логику индикатора переделать. При каждом новом тике переменные X и Y принимают значение равное нулю. Работает корректно на истории

Файлы:
 
Laven писал(а) >>

Спасибо. Осмыслю ВАШУ редакцию. Но

Все равно в "пол" кривая графика уходит. Попробуйте у себя.

Я пост поправил предыдущий. Файл то же поменял.

Переделать индикатор можно. Но нужны будут дополнительные буферы для промежуточных вычислений.

 
Vinin >>:

Деление на ноль получается.

Если перед любым делением добавить контроль на ноль, то рисовать начинает.

Но надо было бы логику индикатора переделать. При каждом новом тике переменные X и Y принимают значение равное нулю. Работает корректно на истории

На истории?. Т.е., получается, что сегодняшний день надо исключить из расчетов? Отсчет начинаем с вчерашнего дня и i-- ?