Избранное трейдера GoodBargains
Всех хочу поздравить с Новым годом! И пожелать Вам и вашим близким, чтобы всё плохое (плохие мысли, эмоции, плохие сны, кризисы, болезни) обходило стороной и никогда не возвращалось, а всё хорошее, доброе,(здоровье, хорошие люди, успех, достаток) пришло вашу жизнь и всегда сопровождало вас до конца жизни .
Я понимаю, что ОЧЕНЬ редко публикую на смартлабе… и сейчас сожалею, о том, что попросил Тимофея удалить свой пост «путь к миллиону». Человек такое импульсивное существо…. мы ведём себя так, как чувствуем на тот момент времени и только после мы осознаем свои ошибки, которые, к сожалению, невозможно исправить.
Точно не помню… примерно с 2007 -2008 года для меня вместо смарталба было общение на сайте plan.ru (это не реклама Тимофей) и он мне дал толчок для развития…Там я познакомился с Бланшем (старая школа J). Я ему до сих пор благодарен и часто его советы вспоминаю ( это не из за меня икота ). Он мне посоветовал акцентировать внимание на втором эшелоне ( я до сих пор ему бутылку виски торчу J). Этот сайт был для меня первой школой и там я общался под ником татарин, и обучался даже у Сухова. Хороший человек и профессионал своего дела, хотя он когда расследовал мои сделки то у него закрались сомнения в правдивости… ну тут у каждого закрадется )).

--[[
индикатор отрисовки наклонных уровней
Параметры:
delta - чувствиельность индикатора на волатильность в %
rep - количество повторений поиска конечного уровня
shif - сдвиг влево конечного бара
wt - признак наличия весового коэффициента =0 - без весового =1,2.. - свосовыми коф. чем ближе к концу тем больше
show=1,
--]]
Settings=
{
Name = "AT-obl_can", -- название индикатора
delta=2.0, -- параметр индикатора
rep=10,
shif=0,
wt=1,
--hl=1,
show=1,
line=
{
{
Name = "ln1",
Type =TYPE_LINE,
Width = 2,
Color = RGB(255, 0, 0)
},
{
Name = "ln2",
Type =TYPE_LINE,
Width = 2,
Color = RGB(255, 0, 0)
}
}
}
function Init()
vMin = 0
vMax = 0
vMinindex = 0
vMaxindex = 0
voldMinindex = 0
voldMaxindex = 0
return 2
end
function OnCalculate(index)
rep = Settings.rep
shif = Settings.shif
wt = Settings.wt
--hl = Settings.hl
sz = Size()-shif
if Settings.show == 1 then
if index <= sz then
if index <= 1 then
vMin = C(index)
vMax = C(index)
vMinindex = index
vMaxindex = index
voldMinindex = index
voldMaxindex = index
v = C(index)
else
if voldMaxindex >= voldMinindex then
if vMin~=nil and C(index)~=nil then
if C(index) > (1 + Settings.delta/100)*vMin then
vMin = C(index)
vMax = C(index)
vMaxindex = index
voldMinindex = vMinindex
vFrom = vMinindex
else
if vMin > C(index) then
vMin = C(index)
vMinindex = index
vFrom = voldMaxindex
else
vFrom = vMinindex
end
end
end
else
if voldMaxindex <= voldMinindex then
if vMax~=nil and C(index)~=nil then
if C(index) < (1 - Settings.delta/100)*vMax then
vMax = C(index)
vMin = C(index)
vMinindex = index
voldMaxindex = vMaxindex
vFrom = vMaxindex
else
if vMax < C(index) then
vMax = C(index)
vMaxindex = index
vFrom = voldMinindex
else
vFrom = vMaxindex
end
end
end
end
end
--if vFrom~=nil then
--[[
for i = vFrom, index do
k = (C(index)- C(vFrom))/(index- vFrom);
v = i*k + C(index) - index*k
SetValue(i, 1, v)
end --]]
--end
if index == sz then
for k = 1, 2 do
vf = 1
vs = 0
if k == 1 then
if vMinindex < vMaxindex then
vf = vMinindex
vs = vMaxindex
up = 0
elseif vMinindex > vMaxindex then
vs = vMinindex
vf = vMaxindex
up = 1
end
elseif k == 2 then
if voldMinindex < voldMaxindex then
vf = voldMinindex
vs = voldMaxindex
up = 0
elseif voldMinindex > voldMaxindex then
vs = voldMinindex
vf = voldMaxindex
up = 1
end
end
n = 0
xy = 0
x = 0
y = 0
xx = 0
m = 0
for i = vf, vs do
if C(i) ~= nil then
m = m +1
n = n + 1*(1+wt*m)
xy = xy + i*C(i)*(1+wt*m)
x = x + i*(1+wt*m)
y = y + C(i)*(1+wt*m)
xx = xx + i*i*(1+wt*m)
end
end
if (n*xx - x*x) ~= 0 and n ~= 0 then
a = (n*xy - x*y)/(n*xx - x*x)
b = (y - a*x)/n
for j = 1, rep do
n = 0
xy = 0
x = 0
y = 0
xx = 0
m = 0
for i = vf, vs do
if C(i) ~= nil then
v = a*i + b
clc = 0
if up == 1 and C(i) >= v then
clc = 1
end
if up == 0 and C(i) <= v then
clc = 1
end
if clc == 1 then
m = m + 1
n = n + 1*(1+wt*m)
--[[
if up == 1 and hl == 1 then
xy = xy + i*H(i)*(1+wt*m)
elseif up == 0 and hl == 1 then
xy = xy + i*L(i)*(1+wt*m)
else --]]
xy = xy + i*C(i)*(1+wt*m)
-- end
x = x + i*(1+wt*m)
--[[
if up == 1 and hl == 1 then
y = y + H(i)*(1+wt*m)
elseif up == 0 and hl == 1 then
y = y + L(i)*(1+wt*m)
else --]]
y = y + C(i)*(1+wt*m)
-- end
xx = xx + i*i*(1+wt*m)
end
end
end --[[--]]
if (n*xx - x*x) ~= 0 and n ~= 0 and n >= 2 then
a = (n*xy - x*y)/(n*xx - x*x)
b = (y - a*x)/n --[[ --]]
end
end
for i = vf, sz do
v = a*i + b
if up == 1 and v >= C(vs) or up == 0 and v <= C(vs) then
SetValue(i, k, v)
end
end
end
end
end
end
end
end
end
--[[
параметры:
Procent - процент зигзага
--]]
Settings={
Name="ZIGZAGLEVELS",
Procent=5.0,
levels=6,
delta=0.2,
line=
{
{
Name = "cur1",
Type =TYPE_LINE,
Width = 2,
Color = RGB(0,0, 255)
},
{
Name = "cur2",
Type =TYPE_LINE,
Width = 2,
Color = RGB(0,0, 255)
},
{
Name = "cur3",
Type =TYPE_LINE,
Width = 2,
Color = RGB(0,0, 255)
},
{
Name = "cur4",
Type =TYPE_LINE,
Width = 2,
Color = RGB(0,0, 255)
},
{
Name = "cur5",
Type =TYPE_LINE,
Width = 2,
Color = RGB(0,0, 255)
},
{
Name = "cur6",
Type =TYPE_LINE,
Width = 2,
Color = RGB(0,0, 255)
}
}
}
function Init()
y1 = nil
y2 = nil
x1 = 1
x2 = 1
levelsy={}
levelsx={}
cntlevels=0
return 6
end
function OnCalculate(index)
de = Settings.Procent
levels = Settings.levels
delta = Settings.delta
sz = Size()
vl = C(index)
if index <= 1 then
y1 = vl
y2 = vl
cntlevels=0
else
if C(index) > y1*(1+de/100) and y1 < y2 then
x2 = x1
y2 = y1
x1 = index
y1 = C(index)
cntlevels = cntlevels + 1
levelsx[cntlevels]=x2
levelsy[cntlevels]=y2
end
if C(index) > y1 and C(index) > y2 then
x1 = index
y1 = C(index)
end
if C(index) < y1*(1-de/100) and y1 > y2 then
x2 = x1
y2 = y1
x1 = index
y1 = C(index)
cntlevels = cntlevels + 1
levelsx[cntlevels]=x2
levelsy[cntlevels]=y2
end
if C(index) < y1 and C(index) < y2 then
x1 = index
y1 = C(index)
end
end
if x1 ~= index then
curfrom = x1
curto = index
else
curfrom = x2
curto = x1
end
if sz == index then
cnt = levels
for k = 1, cnt do
for i = 1, index do
SetValue(i, k, nil)
end
end
-- cnt = 3
k = 0
for j = cntlevels, 1, -1 do
d = 0
if levelsy[j] > C(index) then
d = levelsy[j] - C(index)
end
if levelsy[j] < C(index) then
d = C(index) - levelsy[j]
end
if d < delta*C(index) and d > 0 then
k = k + 1
if k <= cnt then
y = levelsy[j]
for i = levelsx[j], index do
SetValue(i, k, y)
end
end
end
end
--[[
k = 0
for j = cntlevels, 1, -1 do
d = 0
if levelsy[j] < C(index) then
d = C(index) - levelsy[j]
end
if d < 0.2*C(index) and d > 0 then
if k <= cnt then
k = k + 1
y = levelsy[j]
for i = levelsx[j], index do
SetValue(i, k+3, y)
end
end
end
end
--]]
end
end
Опять курю график :-)
Рассмотрю SP500 с точки зрения:
1. графика
2. экономических показателей
3. спредов
ГРАФИЧЕСКИ
Долгосрочный тренд с 1872 года. 150 лет тренда.
Простая спекуляция (если можно говорит о спекуляции в периодах 10 лет).
Закрытие лонгов у верхней границы, покупка от нижней.
Потолок по SP видится в районе 5000-5400… и то не факт.
Посмотрим чисто графически что было с SP когда подходили к верхней границе:
1. Март 2000. Началась коррекция длинной в 9 лет. Доходность индекса составила -57,5%
2. Октябрь 1929. Индекс не добрался до верхней границы и рухнул к июню 1932 на -85%. И только коснувшись в июне 1932 года нижней границы канала начал трудный рост.
3. Март 1872. Прежде чем перейти в стадию роста индекс пилил боковик до мая 1925 (53 года), дав на выходе доходность всего 107%.
Вывод: у верхней границы тренда надо искать другие активы для инвестирования (не SP ). Покупать надо у нижней границы.

Хорошей практикой диверсификации ваших инвестиций является покупка иностранных акций за валюту. Инвестировать в акции зарубежных компаний можно просто и выгодно через Санкт-Петербургскую биржу (https://spbexchange.ru/). Преимущества очевидны:
Низкие комиссии за малые объемы инвестиций. Можно покупать акции хоть по одной штуке, тогда как на биржевых площадках в США минимальный торговый лот = 100 акций.
Торговый терминал QUIK с возможностью создавать торговых роботов на языке lua. Пример скрипта в этом посте.
Автоматизированные расчеты и удержание НДФЛ на сделки купли-продажи
Про покупку американских акций в свой частный инвестиционный портфель я создал уже несколько постов на смарт-лабе. Вот они:


Привет, милая.
Сейчас рождество, и у меня обычная проблема — какой подарок тебе выбрать. Я знаю, что тебя радует — книжки, игры, платья. Но я очень себялюбив. Я хочу подарить тебе что-то такое, что останется с тобой дольше, чем на несколько дней или даже лет. Я хочу подарить тебе нечто, что будет напоминать тебе обо мне каждое рождество. И, знаешь, мне кажется я выбрал подарок. Я подарю тебе одну простую правду, которую мне пришлось усваивать много лет. Если ты поймешь ее сейчас, ты обогатишь свою жизнь сотнями разных способов и это оградит тебя от массы проблем в будущем.
Так вот: тебе никто ничего не должен.
Это значит, что никто не живет для тебя, дитя мое. Потому что никто не является тобой. Каждый человек живет для себя самого. Единственное, что он может почувствовать — это свое собственное счастье. Если ты поймешь, что никто не должен организовывать тебе счастье, ты освободишься от ожидания невозможного.