Автор |
Сообщение |
MrDzenLi
Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN
|
Simple as ass moving average
Спасибо! |
_________________ Нам не дано знать всего. |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
MrDzenLi
Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN
|
M0=Param("Pm",10,1,100,1);
M1=C>O;
M2=(C+M1)/M0;
M3=Sum(M2,M0);
Не могу понять, почему в данном случае мы тоже получаем SMA? |
_________________ Нам не дано знать всего. |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Не получаем. Получается массив близкий к простой машке если цена бумаги достаточно большая. Если цена невысокая, то от машки будет заметно отличаться.
Сделай вот так
Код: |
M0=Param("Pm",10,1,100,1);
M1=0;
M2=(C+M1)/M0;
M3=Sum(M2,M0);
|
и получится голимая SMA. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
MrDzenLi
Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN
|
Очень хорошее исследование. Спасибо! |
_________________ Нам не дано знать всего. |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
MrDzenLi
Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN
|
Только добрался до терминала...
Ну я так сказать заметил разницу в один пункт, а по твоим словам целый анализ перекупленности-перепроданности.
Олег, помоги написать формулу, ты хозяин цифр!
Имеем простую скользящую (к стати не понимаю за что ты её так не любишь и обзываешь, на ней создано более половины теханализа)...
но суть не в этом, имеем скользящую среднюю SMA(C,10);
складываем 10 цен закрытия и делим на десять.
меня интересуют только бары C>O, соответственно если все десять растущих, то так и делаем - суммируем и делим на десять.
А если к примеру 11й бар с права на лево - растущий а остальные 10 падающие, то все десять баров заменяем ценой закрытия последнего растущего бара.
Еще пример, считаем с лева на право:
1,2,3,4- растущие; 5,6,- падающие; 7,8- растущие; 9 - падающий, 10 - еще не известен.
В данном случае суммирование должно происходить следующим образом:
1,2,3,4, - цены закрытия оставляем настоящими; 5,6 - заменяем ценой закрытия 4го бара; 7,8 - оставляем настоящими; 9 - заменяем ценой закрытия 8го бара; и 10й соответственно если растущий, то оставляем настоящую цену закрытия, если падающий, то заменяем 8м.
Короче все растущие бары оставляем какие есть а падающие заменяем ценой закрытия последнего растущего бара, суммируем и делим на определенное количество. |
_________________ Нам не дано знать всего. |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Код: |
MyMA = MA(ValueWhen(C>O, C), 10); |
|
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
MrDzenLi
Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN
|
Мне стыдно!
Спасибо, Олег. |
_________________ Нам не дано знать всего. |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
trashfx
Зарегистрирован: 27.06.2015
Сообщения: 90
|
|
Посмотреть профиль Отправить личное сообщение |
|
trashfx
Зарегистрирован: 27.06.2015
Сообщения: 90
|
Код: |
Version( 5.91 );
Periods =10;
only_when = C>O;
x = SparseCompress( only_when, Close ); // compact sparse data
y = MA( x, Periods ); // regular calculation
y = SparseExpand( only_when, y ); // expand sparse data
Plot( ValueWhen( only_when, y), "Sparse MA from C>O", colorRed ); |
|
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
If the bar is falling, its price is replaced by the growing price of the previous bar. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
trashfx
Зарегистрирован: 27.06.2015
Сообщения: 90
|
Yeah, I know. But what's the purpose of calculating MA on fictional/repeated prices?
On the other hand with SparseCompress calculation is done only on prices of actual true condition but not on repeated ones where condition is false. |
|
|
Посмотреть профиль Отправить личное сообщение |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
And what is the purpose of the calculation of MA not all bars in a row? |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
trashfx
Зарегистрирован: 27.06.2015
Сообщения: 90
|
000 писал(а): |
And what is the purpose of the calculation of MA not all bars in a row? |
Are you serious?
For example the results of the calculations leading to this chart in post #6 http://amisite.ru/phpBB2/viewtopic.php?t=2184&sid=847e6a72a838b61bd4a18be3493abba4
would be totally off-base if using your way of doing it i.e. mean calculations via Valuewhen. The outcome would be total nonsense.
Or what if you want to calculate on data of specific timenum only? You have to use Sparse too but not Valuewhen. |
Последний раз редактировалось: trashfx (Ср Ноя 18, 2015 4:13 pm), всего редактировалось 1 раз |
|
Посмотреть профиль Отправить личное сообщение |
|
trashfx
Зарегистрирован: 27.06.2015
Сообщения: 90
|
|
Посмотреть профиль Отправить личное сообщение |
|
MrDzenLi
Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN
|
Спорить не буду, я в школе Французский учил.
хорошая формула, вот как её заставить работать на IIF
IIf ( ValueWhen( only_when, y)>Ref( ValueWhen( only_when, y),-1),
при неизменной величине данной "скользящей",
возвращает значение FALSE_PART.
Но по факту, линия не больше и не меньше...
в чем причина? |
_________________ Нам не дано знать всего. |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
|