Автор |
Сообщение |
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
Коллеги, не сможет ли кто-либо, знающий язык, перевести один небольшой индюк с Метастока в Амиброкер.
Текст, собственно:
PB := Input("Период", 1, 1000, 12);
Signal := C - Ref(C, -PB);
Noise := Sum(Abs(ROC(C, 1, $)), PB);
ER := Abs(Signal/Noise);
ER / Highest(ER) * 100;
Ну и чтобы рисовал линии: 23%, 55%, 90%
Заранее благодарю! |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
В хелпере Ами он есть
Код: |
fast = 2/(2+1);
slow = 2/(30+1);
dir=abs(close-ref(close,-10));
vol=sum(abs(close-ref(close,-1)),10);
ER=dir/vol;
sc =( ER*(fast-slow)+slow)^2;
graph0 = ama( close, sc );
|
Правда очень старый код, еще используется для вывода graph0, но работает. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
000 писал(а): |
В хелпере Ами он есть
Правда очень старый код, еще используется для вывода graph0, но работает. |
Да нет, это совсем не то. Этот код просто рисует цену, только линией.
Чуть позже кину картинку.
P.S. А, понял. Он рисует среднюю по индюку. Подшаманю чутка. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
Итак.
В Ами прописан индюк следующим образом:
Код: |
P = Param ("Period", 12, 0, 144, 1);
dir = C-Ref(C,-P);
vol = Sum(abs(Close-Ref(Close,-1)),P);
ER = abs(dir/vol)*100;
Graph0 = ER; |
В Метасе:
Код: |
PB:=Input("Период",1,1000,12);
Signal:=C-Ref(C,-PB);
Noise:=Sum(Abs(ROC(C,1,$)),PB);
ER:=Abs(Signal/Noise);
iDED:=ER/Highest(ER)*100;
niz:= 23;
sered:=55;
verh:=95; |
Все движения сходятся, но остался один важный момент - не идентичны по абсолютным значениям (см. картинку). В Метасе он полноценно доходит до 100 и там показания верны. Как привести значения Ами к значениям в Метасе. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
P = Param ("Period", 12, 0, 144, 1);
sig = C-Ref(C,-P);
noi = Sum(abs(Close-Ref(Close,-1)),P);
ER = abs(sig/noi);
iDED = ER/Highest(ER)*100;
Plot(iDED, "iDED", colorBlack);
Plot(23, "Niz", colorRed);
Plot(55, "Sered", colorRed);
Plot(95, "Verh", colorRed);
|
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
Спасибо. Все так.
Но никак не могу понять, отчего значения не сходятся... |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Опять не сходятся?
Попробуй в начало добавить строку
Код: |
SETBARSREQUIRED(SbrAll, SbrAll); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
000 писал(а): |
Опять не сходятся?
Попробуй в начало добавить строку
Код: |
SETBARSREQUIRED(SbrAll, SbrAll); |
|
Неа Не выходит каменный цветок.
Видимо, придется высчитывать уровни для Ами и по ним работать. В принципе, ведь сам индюк идет идентично. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
Подсчитал. Получилось следующее:
Вместо стандартных уровней индюка, по которым он и ходит в Метасе - 23, 55,95, получились следующие уровни в Ами - 18, 41, 62. Чёрт его знает, отчего так расчет происходит. По одним и тем же значениям вроде считает.
Вот такой значок стоит в формуле в метасе - $. Может он на что влияет? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
На сколько я помню это значит изменение цены в деньгах (ROC может быть и в %). Все правильно. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
AntColonel
Зарегистрирован: 03.05.2011
Сообщения: 213
Откуда: Новосибирск
|
000 писал(а): |
На сколько я помню это значит изменение цены в деньгах (ROC может быть и в %). Все правильно. |
Ага. Тогда как в Ами поменять эти параметры? Может в этом и есть загвоздка? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
А
Close-Ref(Close,-1)
это и есть
ROC(C,1,$) |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|