Избранное трейдера Bat



С мая месяца не торгую на срочном рынке. Option-Lab отобрали, возвращать для работы с сертифицированным российским брокером, похоже, не собираются. А набирать вручную по сотне контрактов несколько ног позиции как-то не серьезно.
За рынком наблюдаю, как там несчастная Алроса поживает вместе с менее несчастным Сургутом.
В общем, скучно. Решил немного размяться внутридневной торговлей RI. День торгую, два, копеечки собираю.
А тут раз и неудача. Купил 14 августа контракт на RIU9 по цене 129350, поставил близкий тейк и ушел. А оно как полетит вниз. Прихожу, уже 126000, убыток больше 4000 руб., и что делать? Фиксировать убыток жалко. Пирамидиться не хочется. Подумал не долго, посчитал, да и продал 4 колла RIU9 страйка 130000, экспирация 19.09.2019. Средняя цена получилась 1830 за контракт.
На следующий день RI пошел ниже 125000, купил еще контракт фьючерса по цене 124870 и продал контракт колла 125000 страйка той же датой экспирации по цене 3440. Получилась синтетика, проданный пут 125000 страйка. Рынок уходил еще ниже, планировал повторить операцию, если уйдет ниже 122500, но не ушло.
привет!
у меня в квике стояла камарилла аж с 2014 года, когда вы выложили здесь этот индикатор.
квик обновился до 8 и камарилла пропала.
это не исправить?
-- Camarilla.lua
Settings={
Name = "Camarilla",
period = 'D',
line =
{
{Name = "S5", Color = RGB(255, 0, 0), Type = 1, Width = 2},
{Name = "S4", Color = RGB(255, 165, 0), Type = 1, Width = 2},
{Name = "S3", Color = RGB(255, 255, 0), Type = 1, Width = 2},
{Name = "PP", Color = RGB(0, 255, 0), Type = 1, Width = 2},
{Name = "R3", Color = RGB(0, 191, 255), Type = 1, Width = 2},
{Name = "R4", Color = RGB(0, 0, 255), Type = 1, Width = 2},
{Name = "R5", Color = RGB(139, 0, 255), Type = 1, Width = 2},
}
}
local math_floor = math.floor
local levels = 0
local ydH, ydL, ydC, ydO = {},{},{},{}
local PP, R3, R4, R5 = 0,0,0,0
local S3, S4, S5 = 0,0,0
local delta = 0
local cl = 0
local predThisDay=0
local function dTs(t) return 100*(100*t.year+t.month)+t.day; end
local OldDay = '' -- для выделения начала торгового дня
function Init ()
local t=getDataSourceInfo()
local tt = t.interval
if tt == -3 then
message('Месячный график не обрабатывается.',1)
return
end
return 7
end
function OnCalculate (index)
local time tt=T(index); ---время из свечи
--local ThisDay=dTs(tt) -- дата в формате yyyyMMdd
local tDay=dTs(tt) -- дата в формате yyyyMMdd
local ThisDay = tDay
if Settings.period == 'W' then
ThisDay=tt.week_day -- номер недели
end
if index == 1 then
--message('First ThisDay = '..tostring(ThisDay),1)
local t=getDataSourceInfo()
--7.2.5 Функция предназначена для получения информации об источнике данных для индикатора.
local scale = getSecurityInfo(t.class_code, t.sec_code).scale -- NUMBER, Количество значащих цифр после запятой
mul = 10^scale -- возведение в степень
local tt = t.interval
if tt == -3 then tt = 'месяц'
elseif tt == -2 then tt = 'неделя'
elseif tt == -1 then tt = 'день'
else
tt = tt..' мин.'
end
--message(t.sec_code..'('..t.class_code..'), цифр после запятой: '..scale..', mul = '..mul..', дата = '..ThisDay,1)
levels = levels + 1
if ThisDay ~= OldDay then
OldDay = ThisDay
end
predThisDay = ThisDay
--
delta = H(index) - L(index)
cl = C(index)
R5 = (H(index) / L(index))*cl
calcLevels(index)
local per = 'daily'
if Settings.period == 'W' then
per = 'weekly'
end
message('Camarilla '..per..', Т = '..tt..', © xsharp.ru 20.06.2015', 1)
return
end
if Settings.period == 'W' then
if ThisDay < OldDay then -- для неделек
OldDay = OldDay + 1
if OldDay ~= ThisDay then
OldDay = ThisDay
end
levels = levels + 1
delta = ydH[levels-1] - ydL[levels-1]
cl = ydC[levels-1]
R5 = (ydH[levels-1] / ydL[levels-1])*cl
calcLevels(index)
--if index<120 then
--message('index= '..tostring(index)..', Смена недели: '..tostring(ThisDay)..', OldDay: '..tostring(OldDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
--end
predThisDay = ThisDay
else
if ThisDay ~=predThisDay then
--message('index= '..tostring(index)..', ThisDay= '..tostring(ThisDay)..', predThisDay: '..tostring(predThisDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
predThisDay = ThisDay
OldDay = OldDay + 1
end
ThisDayF(index)
end
elseif Settings.period == 'D' then
if ThisDay ~= OldDay then -- для дневок
OldDay = OldDay + 1
if OldDay ~= ThisDay then
OldDay = ThisDay
end
levels = levels + 1
delta = ydH[levels-1] - ydL[levels-1]
cl = ydC[levels-1]
R5 = (ydH[levels-1] / ydL[levels-1])*cl
calcLevels(index)
--if index<120 then
--message('index= '..tostring(index)..', Смена недели: '..tostring(ThisDay)..', OldDay: '..tostring(OldDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
--end
predThisDay = ThisDay
else
if ThisDay ~=predThisDay then
--message('index= '..tostring(index)..', ThisDay= '..tostring(ThisDay)..', predThisDay: '..tostring(predThisDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
predThisDay = ThisDay
OldDay = OldDay + 1
end
ThisDayF(index)
end
elseif Settings.period == 'H4' then
if ThisDay ~= OldDay then -- для дневок
OldDay = OldDay + 1
if OldDay ~= ThisDay then
OldDay = ThisDay
end
levels = levels + 1
delta = ydH[levels-1] - ydL[levels-1]
cl = ydC[levels-1]
R5 = (ydH[levels-1] / ydL[levels-1])*cl
calcLevels(index)
--if index<120 then
--message('index= '..tostring(index)..', Смена недели: '..tostring(ThisDay)..', OldDay: '..tostring(OldDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
--end
predThisDay = ThisDay
else
if ThisDay ~=predThisDay then
--message('index= '..tostring(index)..', ThisDay= '..tostring(ThisDay)..', predThisDay: '..tostring(predThisDay)..', d='..tDay..', R3= '..R3..', PP= '..cl..', S3= '..S3,1)
predThisDay = ThisDay
OldDay = OldDay + 1
end
ThisDayF(index)
end
end
return S5, S4, S3, cl, R3, R4, R5
end
function round(value)
return math_floor(value*mul + 0.5) / mul
end
function ThisDayF(index)
ydC[levels] = C(index)
if H(index) > ydH[levels] then
ydH[levels] = H(index)
end
if L(index) < ydL[levels] then
ydL[levels] = L(index)
end
end
function calcLevels(index)
ydO[levels] = O(index)
ydH[levels] = H(index)
ydL[levels] = L(index)
ydC[levels] = C(index)
--
R3 = cl + delta * 1.1/4
R4 = cl + delta * 1.1/2
--
S3 = cl - delta * 1.1/4
S4 = cl - delta * 1.1/2
S5 = cl - (R5-cl)
--
R5 = round(R5)
R4 = round(R4)
R3 = round(R3)
S3 = round(S3)
S4 = round(S4)
S5 = round(S5)
end


![Робот Пробойный, [копия] Робот Пробойный, [копия]](/uploads/images/06/19/64/2019/07/02/7511fc.jpg)
![Робот Пробойный, [копия] Робот Пробойный, [копия]](/uploads/images/06/19/64/2019/07/02/c882e3.jpg)