Форум » Синтаксис языка » Определение Уровней программно!!! » Ответить

Определение Уровней программно!!!

voldemar227: Задался целью определить горизонтальные уровни поддержки и сопротивления. И честно сказать даже не знаю с чего начать... Данный код определяет зоны в которых ищу лини поддержки и сопротивления extern int Dis_prom = 700; extern int Delta = 300; int start() { double upup=NormalizeDouble(Ask+Dis_prom*Point+Delta/2*Point,Digits); double updw=NormalizeDouble(Ask+Dis_prom*Point-Delta/2*Point,Digits); double dwup=NormalizeDouble(Bid-Dis_prom*Point+Delta/2*Point,Digits); double dwdw=NormalizeDouble(Bid-Dis_prom*Point-Delta/2*Point,Digits); //------------------------------------------------------------------------------ ObjectCreate("Line1",OBJ_HLINE,0,0 ,upup); ObjectSet ("Line1",OBJPROP_COLOR ,Blue); ObjectSet ("Line1",OBJPROP_PRICE1,upup); ObjectCreate("Line2",OBJ_HLINE,0,0 ,updw); ObjectSet ("Line2",OBJPROP_COLOR ,Blue); ObjectSet ("Line2",OBJPROP_PRICE1,updw); ObjectCreate("Line3",OBJ_HLINE,0,0 ,dwup); ObjectSet ("Line3",OBJPROP_COLOR ,Blue); ObjectSet ("Line3",OBJPROP_PRICE1,dwup); ObjectCreate("Line4",OBJ_HLINE,0,0 ,dwdw); ObjectSet ("Line4",OBJPROP_COLOR ,Blue); ObjectSet ("Line4",OBJPROP_PRICE1,dwdw); return(0); } //---------------------------------------------------------------------------------------------- Но что делать дальше даже и не знаю ... Подскажите плиз......

Ответов - 5

Scriptong: voldemar227 пишет: Задался целью определить горизонтальные уровни поддержки и сопротивления. И честно сказать даже не знаю с чего начать... Для начала необходимо сформулировать критерии, по которым вы собираетесь определять уровни поддержки и сопротивления, т.к. стандартной методики их нахождения не существует. Каждый трейдер видит эти уровни по-своему. Если же исходить из представленного кода, то вы отсчитываете уровни в пунктах от текущей цены. Таким образом, эти уровни будут динамичными и станут изменяться с каждым тиком. Получится, что цена никогда не достигнет ни одного из определенных вами уровней. Если именно в этом, по-вашему, смысл уровней поддержки и сопротивления, то вы все сделали правильно.

voldemar227: я хочу посчитать сколько попадпет максимумов и минимумов между уровнями ... Если их больше при какихто ситуациях значит это зона уровня ...

Scriptong: voldemar227 пишет: я хочу посчитать сколько попадпет максимумов и минимумов между уровнями Да, я такой критерий тоже пытался применять, но застопорился на том, что понятие "экстремум" на рынке является субъективным. Есть экстремум среди трех свечей, есть среди пяти (фракталы Билла Вильямса), есть среди семи, а есть глобальные (их всего два - глобальный максимум и глобальный минимум), которые действуют на данный момент. Так вот - какой из них брать? Затем, если мы пришли к мнению, что необходимо использовать локальные экстремумы какого-то порядка, возникает следующий вопрос: за какой период считать эти экстремумы? Безусловно, решение этих вопросов можно отдать на решение пользователю программы, вынеся периоды экстремумов и период их подсчета в настроечные параметры. Чтобы создать такую программу, необходимо: 1. Найти все экстремумы за исследуемый период времени 2. Отсеять те, которые не попадают в необходимый диапазон цен 3. Из оставшихся экстремумов по какому-то критерию определить искомый уровень поддержки/сопротивления. При такой постановке задачи опираться на текущие Bid и Ask не нужно.


voldemar227: Ниже приведен код с критерием отбора Вообще что я хочу сделать ::: НА расстоянии Dis_prom от аск я ставлю два горизонтальных канала шириной Delta , один с верху а второй снизу . Затем я считаю сколько в этом промежутке в истории есть максимумов и минимумов . Нахожу самое большое значение и одновременно я возвращаю цены каналов ... Итог я получаю что максимумов+минимумов самое большое колличество up++ между 1,3697 и 1,3665 а это значит что в этом промежутке цена часто разворачивалась и отскакивала .... extern int Dis_prom = 700; extern int Delta = 300; int start() { double upup=NormalizeDouble(Ask+Dis_prom*Point+Delta/2*Point,Digits); double updw=NormalizeDouble(Ask+Dis_prom*Point-Delta/2*Point,Digits); double dwup=NormalizeDouble(Bid-Dis_prom*Point+Delta/2*Point,Digits); double dwdw=NormalizeDouble(Bid-Dis_prom*Point-Delta/2*Point,Digits); //------------------------------------------------------------------------------ //if (Time[0]==0) //{ ObjectCreate("Line1",OBJ_HLINE,0,0 ,upup); ObjectSet ("Line1",OBJPROP_COLOR ,Blue); ObjectSet ("Line1",OBJPROP_PRICE1,upup); ObjectCreate("Line2",OBJ_HLINE,0,0 ,updw); ObjectSet ("Line2",OBJPROP_COLOR ,Blue); ObjectSet ("Line2",OBJPROP_PRICE1,updw); ObjectCreate("Line3",OBJ_HLINE,0,0 ,dwup); ObjectSet ("Line3",OBJPROP_COLOR ,Blue); ObjectSet ("Line3",OBJPROP_PRICE1,dwup); ObjectCreate("Line4",OBJ_HLINE,0,0 ,dwdw); ObjectSet ("Line4",OBJPROP_COLOR ,Blue); ObjectSet ("Line4",OBJPROP_PRICE1,dwdw); //------------------------------------------------------------------------------------ int upp=0; double pamyats,pamyatb; int up=0, dw=0; int dww=0; for (int i=Bars; i>=0; i--) { double max=High; double min=Low ; if (max<upup&&max>updw&&min<upup&&min>updw) { up++; } if (up>upp) { upp=up; /// Наибольшее колличество максимумов и минимумов pamyats=upup; верхня часть канала принаибольшем upp ObjectCreate("Line11",OBJ_HLINE,0,0 ,pamyats); ObjectSet ("Line11",OBJPROP_COLOR ,Red); ObjectSet ("Line11",OBJPROP_PRICE1,pamyats); pamyatb=updw; //нижняя часть верхнего канала ObjectCreate("Line11",OBJ_HLINE,0,0 ,pamyats); ObjectSet ("Line11",OBJPROP_COLOR ,Red); ObjectSet ("Line11",OBJPROP_PRICE1,pamyats); } } Comment("========",pamyats,"=======",pamyatb,"======",upp); return(0); }

SK: voldemar227 пишет: НА расстоянии Dis_prom от аск я ставлю два горизонтальных канала шириной Delta , один с верху а второй снизу . Затем я считаю сколько в этом промежутке в истории есть максимумов и минимумов . Непонятно всё это. Это на каждом тике? Тогда аск покроет всю историю цен. Непонятно зачем тут аск. Вычислить наиболее вероятные горизонтальные уровни можно просто по истории. Программно - в Ините. И нужно задаться не только шириной канала по цене, но и ограничить длину исследуемого участка по времени. Мне кажется, это более важный показатель. Т.е. не так важно сколько всего за последние 10 лет цена разворачивалась на ценах в промежутке 1.33-1.34. Важно сколько времени подряд цена не могла пробиться через какой-то уровень. Если долго билась, как рыба в лёд, то это и примета. Наверное, так.



полная версия страницы