Автор |
Сообщение |
MrDzenLi
Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN
|
Всем привет!
Научите писать условие
Код: |
m1=IIf(x1>x2,y1,y2) ;
m2=IIf(x1>x2,z1,z2) ;
Buy=Cover=x1;
Short=Sell=x2; |
Вот только что бы расчеты велись лишь на последних "n" барах...
Т.е. мне нужно: x1 и x2 - ограничить в количестве оперируемых баров. |
_________________ Нам не дано знать всего. |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
AlexLan73
Зарегистрирован: 25.06.2012
Сообщения: 87
|
Добрый.
"Вот только что бы расчеты велись лишь на последних "n" барах... "
-в каких последних в конце дня, часа, ...?
если у тебя 5 мин то можно выделить так
nBar=(TimeNum()>=233500 AND TimeNum()<=235000); - выделяешь бары
m1=IIf(nBar and x1>x2,y1,y2) ;
m2=IIf(nBar and x1>x2,z1,z2) ;
Если "n" бара всей последовательности
for( i = BarCount - nBar; i < BarCount; i++ )
{
if(x1[i]>x2[i])
{
m1[i]=y1[i];
m2[i]=z1[i];
}
else
{
m1[i]=y2[i];
m2[i]=y2[i];
}
} |
|
|
Посмотреть профиль Отправить личное сообщение |
|
MrDzenLi
Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN
|
AlexLan73 писал(а): |
-в каких последних в конце дня, часа, ...?
если у тебя 5 мин то можно выделить так
nBar=(TimeNum()>=233500 AND TimeNum()<=235000); - выделяешь бары
m1=IIf(nBar and x1>x2,y1,y2) ;
m2=IIf(nBar and x1>x2,z1,z2) ;
|
Да, вычисления ведутся на 5 минутках. Я работал с массивом TimeNum, но до этого не додумался. Сейчас посмотрю. Это у нас значит расчеты будут начинаться с начала утренней сессии и до 23:50... Правильно я понимаю? |
_________________ Нам не дано знать всего. |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
AlexLan73
Зарегистрирован: 25.06.2012
Сообщения: 87
|
Да, условие с 23:35:00 до 23:50:00 будет истинным |
|
|
Посмотреть профиль Отправить личное сообщение |
|
MrDzenLi
Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN
|
AlexLan73 писал(а): |
Да, условие с 23:35:00 до 23:50:00 будет истинным |
Хороший вариант, но что то со временем не могу разобраться. Пока что поработаю с массивом, затем проработаю вариант циклами.
Спасибо Большое!!!
Всем желаю Высокой и Стабильной Доходности! |
_________________ Нам не дано знать всего. |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
AlexLan73
Зарегистрирован: 25.06.2012
Сообщения: 87
|
"но что то со временем не могу разобраться" - а в чем проблема? |
|
|
Посмотреть профиль Отправить личное сообщение |
|
MrDzenLi
Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN
|
AlexLan73 писал(а): |
а в чем проблема? |
Операция с массивом "TimeNum" работает верно, но моя проблема в том, что я не правильно описал условие. Я пытаюсь сделать, таким образом: есть индикатор "OBV" обозначенный как X1. Вся задача состоит в том, что этот индикатор к каждым баром увеличивает или уменьшает значение, а я хочу добиться того, что бы он оперировал только с последними "n" барами, а те значения которые есть на графике до последних "n" баров - мне не нужны. Или по другому можно так сказать, что есть на графике фиксированное количество баров "n" и с каждым появлением нового бара, удаляется самый старый бар. Тем самым работа ведется со значениями только последних "n" баров. (Но удалять ранее появившиеся чем "n" бары нельзя). |
_________________ Нам не дано знать всего. |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
Напиши как у тебя рассчитываются x1 и x2 |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
MrDzenLi
Зарегистрирован: 20.04.2015
Сообщения: 383
Откуда: VRN
|
000 писал(а): |
Напиши как у тебя рассчитываются x1 и x2 |
Код: |
a1=Cross(m1,m2);
a2=Cross(m2,m1);
Buy=Cover=a1;
Short=Sell=a2;
X1=Equity(1,0)-5000 ;
b1=Cross(m2,m1);
b2=Cross(m1,m2);
Buy=Cover=b1;
Short=Sell=b2;
X2=Equity(1,0)-5000 ;
E1=IIf(x1>x2,a1,a2) ;
E2=IIf(x1>x2,b1,b2) ;
Buy=Cover=E1;
Short=Sell=E2; |
|
_________________ Нам не дано знать всего. |
|
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number |
|
000
Site Admin
Зарегистрирован: 10.12.2007
Сообщения: 9106
|
ну вот и ответ на вопрос.
Цитата: |
equity( Flags = 0, RangeType = -1, From = 0, To = 0 )
RangeType - defines quotations range being used:
1 : n last quotes (n defined by 'From' parameter) |
Т.е. пиши типа
Код: |
X2=Equity(0, 1, 1000)-5000 ; |
И будет обсчитывать только последние 1000 баров. |
_________________ ceterum censeo carthaginem esse delendam
Удачи. Олег. |
|
Посмотреть профиль Отправить личное сообщение Посетить сайт автора |
|
|