
Settings=
{
Name = "Zigzag5", -- название индикатора
delta=2, -- параметр индикатора
deltaY=1, -- параметр индикатора
linedeltaY=0.75, -- параметр индикатора
line=
{
{
Name = "zigzagline3",
Type =TYPE_LINE,
Width = 2,
Color = RGB(0,255, 0)
},
{
Name = "upline",
Type =TYPE_LINE,
Width = 2,
Color = RGB(255,0, 0)
},
{
Name = "lowline",
Type =TYPE_LINE,
Width = 2,
Color = RGB(0,0, 255)
},
{
Name = "declineline",
Type =TYPE_LINE,
Width = 2,
Color = RGB(255,0, 0)
},
{
Name = "upline2",
Type =TYPE_LINE,
Width = 1,
Color = RGB(255,0, 0)
},
{
Name = "lowline2",
Type =TYPE_LINE,
Width = 1,
Color = RGB(0,0, 255)
},
{
Name = "declineline2",
Type =TYPE_LINE,
Width = 1,
Color = RGB(255,0, 0)
}
}
}
function getradius(x, y)
return math.sqrt(Settings.deltaY*y*y+x*x)
end
function koef(val)
return 1 - 1/(1-1/val)
end
function Init()
vMin = 0
vMax = 0
vMinindex = 0
vMaxindex = 0
voldMinindex = 0
voldMaxindex = 0
upval = 0
lowval = 0
upindex = 1
lowindex = 1
veu = nil
vel = nil
curfrom = 1
curto = 1
return 7
end
function OnCalculate(index)
local printz = 0
vsize = Size()
ve = nil
veu = nil
vel = nil
curv = nil
veu2 = nil
vel2 = nil
curv2 = nil
if index == 1 then
vMin = C(index)
vMax = C(index)
vMinindex = index
vMaxindex = index
voldMinindex = index
voldMaxindex = index
ve = C(index)
else
if voldMaxindex >= voldMinindex then
if C(index) > (1 + Settings.delta/100)*vMin then
vMin = C(index)
vMax = C(index)
vMaxindex = index
voldMinindex = vMinindex
vFrom = voldMaxindex
vTo = vMinindex
printz = 1
if (C(vMinindex) > C(vsize)) and (upval > koef(getradius(vsize - vMinindex, C(vMinindex) - C(vsize)))) then
upval = koef(getradius(vsize - vMinindex, C(vMinindex) - C(vsize)))
upindex = vMinindex
end
if (C(vMinindex) < C(vsize)) and (lowval > koef(getradius(vsize - vMinindex, C(vMinindex) - C(vsize)))) then
lowval = koef(getradius(vsize - vMinindex, C(vMinindex) - C(vsize)))
lowindex = vMinindex
end
curfrom = voldMaxindex
curto = voldMinindex
else
if vMin > C(index) then
vMin = C(index)
vMinindex = index
vFrom = voldMaxindex
vTo = index
printz = 0
curto = index
else
vFrom = vMinindex
vTo = index
printz = 0
end
curfrom = voldMaxindex
end
else
if voldMaxindex <= voldMinindex then
if C(index) < (1 - Settings.delta/100)*vMax then
vMax = C(index)
vMin = C(index)
vMinindex = index
voldMaxindex = vMaxindex
vFrom = voldMinindex
vTo = vMaxindex
printz = 1
if (C(vMaxindex) > C(vsize)) and (upval > koef(getradius(vsize - vMaxindex, C(vMaxindex) - C(vsize)))) then
upval = koef(getradius(vsize - vMaxindex, C(vMaxindex) - C(vsize)))
upindex = vMaxindex
end
if (C(vMaxindex) < C(vsize)) and (lowval > koef(getradius(vsize - vMaxindex, C(vMaxindex) - C(vsize)))) then
lowval = koef(getradius(vsize - vMaxindex, C(vMaxindex) - C(vsize)))
lowindex = vMaxindex
end
curfrom = voldMinindex
curto = voldMaxindex
else
if vMax < C(index) then
vMax = C(index)
vMaxindex = index
vFrom = voldMinindex
vTo = index
printz = 0
curto = index
else
vFrom = vMaxindex
vTo = index
printz = 0
end
curfrom = voldMinindex
end
end
end
if (printz == 1) or (Size() == index) then
for i = vFrom, vTo do
k = (C(vTo)- C(vFrom))/(vTo- vFrom)
v = i*k + C(vTo) - vTo*k
SetValue(i, 1, v)
ve = v
end
if (Size() == index) then
ve = C(index)
if voldMaxindex >= voldMinindex then
vFrom = voldMaxindex
vTo = vMinindex
end
if voldMaxindex <= voldMinindex then
vFrom = voldMinindex
vTo = vMaxindex
end
for i = vFrom, vTo do
k = (C(vTo)- C(vFrom))/(vTo- vFrom)
v = i*k + C(vTo) - vTo*k
SetValue(i, 1, v)
end
-- up level line
if upindex ~= nil then
if C(upindex) > C(index) then
for i = upindex, index do
SetValue(i, 2, C(upindex))
SetValue(i, 5, C(upindex)-Settings.linedeltaY*C(vsize)/100)
end
veu = C(upindex)
end
end
-- low level line
if lowindex ~= nil then
if C(lowindex) < C(index) then
for i = lowindex, index do
SetValue(i, 3, C(lowindex))
SetValue(i, 6, C(lowindex)+Settings.linedeltaY*C(vsize)/100)
end
vel = C(lowindex)
end
end
if voldMaxindex >= voldMinindex then
vsign = -1
if curfrom == voldMinindex then
vsign = -1
end
if curfrom == voldMaxindex then
vsign = 1
end
-- inclined line
if curto- curfrom > 0 then
maxcurv = 0
k = (C(curto)- C(curfrom))/(curto- curfrom)
for i = curfrom, curto do
curv = i*k + C(curto) - curto*k
if vsign == -1 then
if L(i) < curv then
if maxcurv < curv - L(i) then
maxcurv = curv - L(i)
end
end
else
if H(i) > curv then
if maxcurv < H(i) - curv then
maxcurv = H(i) - curv
end
end
end
end
for i = curfrom, index do
curv = i*k + C(curto) - curto*k + vsign*maxcurv
SetValue(i, 4,curv)
curv2 = curv+ vsign*Settings.linedeltaY*C(vsize)/100
SetValue(i, 7,curv2)
end
end
curv = nil
end
if voldMaxindex <= voldMinindex then
vsign = -1
if curfrom == voldMaxindex then
vsign = 1
end
if curfrom == voldMinindex then
vsign = -1
end
-- inclined line
if curto- curfrom > 0 then
maxcurv = 0
k = (C(curto)- C(curfrom))/(curto- curfrom)
for i = curfrom, curto do
curv = i*k + C(curto) - curto*k
if vsign == -1 then
if L(i) < curv then
if maxcurv < curv - L(i) then
maxcurv = curv - L(i)
end
end
else
if H(i) > curv then
if maxcurv < H(i) - curv then
maxcurv = H(i) - curv
end
end
end
end
for i = curfrom, index do
k = (C(curto)- C(curfrom))/(curto- curfrom)
curv = i*k + C(curto) - curto*k + vsign*maxcurv
SetValue(i, 4,curv)
curv2 = curv+ vsign*Settings.linedeltaY*C(vsize)/100
SetValue(i, 7,curv2)
end
end
curv = nil
end
end
end
end
return ve, veu, vel, curv, veu2, vel2, curv2
end
Новостные заголовки вечно пестрят громкими заявлениями: «Конец бычьего цикла!», «Доллар больше никогда не будет сильной валютой!», «Крах фондового рынка!». Как не запутаться во всех этих восклицаниях?
Не надо читать новости
Чтобы понять, что делать дальше, трейдеры читают новости. Когда ФРС США поднимет ставки? Что там с активностью на рынке недвижимости? Вырос ли уровень безработицы?
Возможно, для успешной торговли надо просто перестать об этом беспокоиться. Инвесторы слишком сильно переживают по поводу пустяков и напрасно тратят на это время. Как решить, какие новости важны, а на какие не стоит обращать внимание?
Рынки довольно точно отражают и оценивают информацию о том, что случится в период от трех до 30 месяцев с текущего момента. И, наоборот, они не заинтересованы в том, что случится на следующей неделе или через 10−15 лет.
Такие темы, как возможное банкротство системы социального страхования, влияние глобального потепления на окружающую среду или особенности характера поколения нулевых, их попросту не интересуют — рынки не могут как-либо на них отреагировать. Это слишком далеко в будущем. То же самое относится и ко всему, что случится буквально сейчас — эти события так быстро пролетят мимо, что реакция на них будет довольно слабой.
Чтобы приучить себя реагировать подобным образом, надо думать так: «Раз все о чем-то беспокоятся, то сам я могу расслабиться — пусть они беспокоятся за меня. А я займусь чем-нибудь более важным».
Все готовы бесконечно обсуждать, что случится, когда ФРС поднимет краткосрочные ставки. Большинство людей приходит к каким-то выводам — неважно, каким. Но стоит обратить внимание на то, поднимала ли ФРС краткосрочные ставки в начале бизнес-цикла до этого. Как на это реагировали рынки?
Факты таковы: ФРС уже поднимала краткосрочные ставки в начале цикла — и делала так довольно часто. Можно проследить каждый из этих эпизодов, а также то, что произошло 3, 6, 12, 36 и 60 месяцев спустя. И вывод будет таков: первое повышение ставок в бизнес-цикле никогда нельзя было предсказать. Люди каждый раз беспокоятся по поводу одних и тех же вещей. А история учит нас, что переживать из-за них бесполезно.
Что должен знать молодой инвестор
В первую очередь молодым людям следует запомнить: всегда проще определить «что», а не «почему». Даже в таких областях, как медицина, можно найти то, что решает проблему, но непонятно, почему это работает.
У молодых нет опыта: с одной стороны, это позволяет им быть непредвзятыми, но с другой — они и в целом не знают, как поступить. Именно поэтому им необходимо много читать: так они извлекут уроки из прошлого.
Если ты — молодой инвестор, лучше всего вкладываться в себя. Создай свой капитал. Пойми, что ты умеешь и какие у тебя способности.
Люди по природе своей склонны приписывать себе заслуги и перекладывать неудачи на других. Они говорят либо «Я купил эти акции, я такой умный», либо «Я купил эти акции, они упали в цене, я потерял деньги, это не моя вина».
А надо думать с точностью до наоборот. Успех тех или иных ваших операций — это отчасти и просто удача. А неудачи — это ваша ответственность, и необходимо разобраться в том, что вы сделали неправильно. Именно так вы сможете уменьшить количество ошибок в будущем. Если ты раз за разом перекладываешь вину за свои неудачи на других, ни к чему хорошему это обычно не приводит.
Секрет инвестирования
Самое важное в инвестировании — не инвестиции. Самое важное — познать себя. Если ты понимаешь, кто ты, на что способен, что тебя интересует, что тебе нужно, — то не будешь совершать ошибку за ошибкой
Ты изучил все аспекты торговли? Или идешь на необдуманный риск, потому что все друзья настойчиво советуют это сделать? Такому давлению необходимо уметь противостоять.
Уоррен Баффетт когда-то удачно сравнил инвестирование с бейсболом. Не надо постоянно широко замахиваться. Надо просто знать себя, знать, что ты способен делать с битой и какой мяч сможешь отбить, а какой точно нет.