Скачать MetaTrader 5

MQL II & Metastock

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Forex Trader
114280
Forex Trader  
Спецы подскажите как можно реализовать на языке MQL II строку из кода Metastocka:

unit:=100*(Mov(Mov((CLOSE - Ref(CLOSE,-1)),25,E),13,E))/(Mov(Mov(Abs(CLOSE - Ref(CLOSE,-1)),25,E),13,E));
Cross(unit-1.25,Ref(Mov(unit,12,E),-3))

т.е. как можно описать пересечение этих двух линий, если можно, то пожалуйста с конкретными выдержками?
Forex Trader
114280
Forex Trader  
Mov - это мувинг
Abs - понятно, Close тоже, а что такое Ref и unit?
Forex Trader
114280
Forex Trader  
Ref(xxx, -n) - сдвиг на n свечек назад, unit - пользовательская переменная, Е - экспоненциальная скользящая средняя.
Forex Trader
114280
Forex Trader  
CLOSE - Ref(CLOSE,-1) - это текущее закрытие минус закрытие предыдущего бара?
Close[shift]-Close[shift+1] тогда = X

дальше
MOV(X,25,E) - это экспоненциальная средняя от X с периодом 25?
Тогда iMAonBuffer(Null,0,....25,... shift) = Y

дальше этот игрек сглаживанем экспонентой с периодом 13?

В знаменател проделываем все то же самое, только от абсолютных значений.
Делим числитель на знаменатель, и получаем переменную Z ?

А далее ищем персечение этой переменной unit - 1.25 (Z-1.25) c ее же мувином/экспонентой с периодом 12 и значение берется 3 бара назад.
Я все правильно понял?
Forex Trader
114280
Forex Trader  
Попытался представить одну из кривых в данном виде:

unit=100*(iMAEx(13,MODE_EMA,0,(iMAEx(25,MODE_EMA,0,(close[shift]-close[shift+1]),shift)),shift))/
(iMAEx(13,MODE_EMA,0,(iMAEx(25,MODE_EMA,0,ABS(close[shift]-close[shift+1]),shift)),shift));
SetIndexValue(shift,unit-1.25);

Но в реале рисует прямую линию... Почему? И что это за функция iMAonBuffer? Я ее не смог у себя найти... Подскажите в чем может быть дело? Что можно попробовать?
Forex Trader
114280
Forex Trader  
CLOSE - Ref(CLOSE,-1) - это текущее закрытие минус закрытие предыдущего бара?
Close[shift]-Close[shift+1] тогда = X

дальше
MOV(X,25,E) - это экспоненциальная средняя от X с периодом 25?
Тогда iMAonBuffer(Null,0,....25,... shift) = Y

дальше этот игрек сглаживанем экспонентой с периодом 13?

В знаменател проделываем все то же самое, только от абсолютных значений.
Делим числитель на знаменатель, и получаем переменную Z ?

А далее ищем персечение этой переменной unit - 1.25 (Z-1.25) c ее же мувином/экспонентой с периодом 12 и значение берется 3 бара назад.
Я все правильно понял?




Попытался представить одну из кривых в данном виде:

unit=100*(iMAEx(13,MODE_EMA,0,(iMAEx(25,MODE_EMA,0,(close[shift]-close[shift+1]),shift)),shift))/
(iMAEx(13,MODE_EMA,0,(iMAEx(25,MODE_EMA,0,ABS(close[shift]-close[shift+1]),shift)),shift));
SetIndexValue(shift,unit-1.25);

Но в реале рисует прямую линию... Почему? И что это за функция iMAonBuffer? Я ее не смог у себя найти... Подскажите в чем может быть дело? Что можно попробовать?
Forex Trader
114280
Forex Trader  
Я ориентировался на МТ4 , а у тебя МТ3.83. В МТ3 это очень геморройно будет. В том виде, как ты написал - это не пройдет, надо сделать кучу приготовлений. В МТ4 тоже не сходу будет, но алгоритмически просто.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий