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

по

Опционы. Тесты продаж одиночных опционов

В моих планах провести тесты различных стратегий на нашем и американском рынках опционов. Прежде чем разобрать итоги работы опционных спредов, логично начать с самого простого. В данной статье я привожу результаты продаж одиночных опционов на индекс и доллар на нашем рынке с хеджем и без него.

Тесты основаны на теоретической стоимости опционов, рассчитанной Московской Биржей с июня 2010 г. по июнь 2018 г.
Понятно, что теоретическая стоимость иногда вылазит за границы спреда и не очень достоверно отражает текущий рынок.
Тем не менее, я полагаю, что это происходит не так часто, да и на дистанции ошибки сглаживаются и компенсируют друг друга. 
К тому же, в моей стратегии промежуточные цены опционов влияют на результат только через хеджирование. 

Как устроены тесты

Раз в месяц продаются сто опционов одного страйка и держатся до экспирации. 
Для каждого теста фиксируется удаленность страйка от центрального в шагах.
К примеру, стратегия «Strike -1» означает, что раз в месяц продаются опционы страйка, находящегося на 1 шаг слева от текущего центрального страйка.

( Читать дальше )

Как отправлять сообщения из Квика в Телеграм! И писать в файлик разную дребедень!


Все очень и  очень просто!
Достаточно создать бота в телеге,  написать примитивный  луа  скрипт и запустить его.

Про ботов в телеге здесь  https://core.telegram.org/bots
в гугле  куча инфы  и примеров, как чего куда и зачем.


--
--СКРИПТ Niki для smart-lab.ru 260321  ревизия
---------------------------------------

-- Флаг для поддержания работы функции main
is_run=true

fut_limit_old =0
fut_limit_max =0
kgo_old       =0.5


function main( ... )  -- чудотворная функция внутри  которой все  работает

		   
		    --"r": режим чтения (по умолчанию);
			--"w": режим записи;
			--"a": режим добавления;
			--"r+": режим обновления, все предыдущие данные сохраняются;
			--"w+": режим обновления, все предыдущие данные стираются;
			--"a+": режим добавления и обновления, предыдущие данные сохраняются, запись разрешена только в конец файла.     b бинарные файлы
		   
		   -- Пытается открыть файл в режиме "чтения/записи"
		   f = io.open(getScriptPath().."\\Limits.txt","a");
		   -- Если файл не существует
		   if f == nil then 
			  -- Создает файл в режиме "записи"
			  f = io.open(getScriptPath().."\\Limits.txt","w"); 
			  -- Закрывает файл
			  f:close();
			  -- Открывает уже существующий файл в режиме "чтения/записи"
			  f = io.open(getScriptPath().."\\Limits.txt","a");
		   end;

    while is_run do    
        sleep(1000)   -- 1000 = 1 секунда    --волшебная пауза в  работе  скрипта
		
		if getFuturesLimit("A111", "A111111", 0, "SUR") ~= nil then     -- защита от  пустых таблиц    -- впишите ваши данные из Квика
		
			-- %c   - дата и время (по-умолчанию) (пример, 03/22/15 22:28:11) 
			-- %x   - дата (пример, 09/16/98)
			-- %X   - время (пример, 23:48:10)
			
			seconds = os.time(); -- в seconds будет значение 1427052491
			date1 = os.date("%x",seconds);  --  %c   - дата (по-умолчанию) (пример, 03/22/15 22:28:11) 
			time1 = os.date("%X",seconds);  --  %c   - время (по-умолчанию) (пример, 03/22/15 22:28:11) 
			
			
			--[[
			liquidity_coef           --NUMBER  Коэффициент ликвидности  
			cbp_prev_limit           --NUMBER  Предыдущий лимит открытых позиций на спот-рынке» 
			cbplimit                 --NUMBER  Лимит открытых позиций  
			cbplused                 --NUMBER  Текущие чистые позиции  
			cbplplanned              --NUMBER  Плановые чистые позиции  
			varmargin                --NUMBER  Вариационная маржа  
			accruedint               --NUMBER  Накопленный доход   
			cbplused_for_orders      --NUMBER  Текущие чистые позиции (под заявки)  
			cbplused_for_positions   --NUMBER  Текущие чистые позиции (под открытые позиции)  
			options_premium          --NUMBER  Премия по опционам  
			ts_comission             --NUMBER  Биржевые сборы  
			kgo                      --NUMBER  Коэффициент клиентского гарантийного обеспечения  
			currcode                 --STRING   Валюта, в которой транслируется ограничение  
			real_varmargin           --NUMBER  Реально начисленная в ходе клиринга вариационная маржа. Отображается с точностью до 2 двух знаков. При этом в поле «varmargin» транслируется вариационная маржа, рассчитанная с учетом установленных границ изменения цены  
			--]]
			
			
			fut_limit    = getFuturesLimit("A111", "A111111", 0, "SUR").cbplused_for_positions    --  NUMBER  Текущие чистые позиции (под открытые позиции)     -- впишите ваши данные из Квика
			varmargin    = getFuturesLimit("A111", "A111111", 0, "SUR").varmargin                 -- впишите ваши данные из Квика
			accruedint   = getFuturesLimit("A111", "A111111", 0, "SUR").accruedint                -- впишите ваши данные из Квика
			ts_comission = getFuturesLimit("A111", "A111111", 0, "SUR").ts_comission              -- впишите ваши данные из Квика
			kgo          = getFuturesLimit("A111", "A111111", 0, "SUR").kgo                       -- впишите ваши данные из Квика
			
			profit = varmargin + accruedint;
	 
			--if  math.abs(fut_limit-fut_limit_old) > 10000 then       -- каждые 10000 рублей изменения ГО,   слишком частый файл печати 
			if  math.abs(fut_limit-fut_limit_old) > 100000 then       -- каждые 100000 рублей изменения ГО,   настраиваем под себя.
			
				open_lim     = getFuturesLimit("A111", "A111111", 0, "SUR").cbplimit                  --NUMBER  Лимит открытых позиций
				f:write( tostring(date1).."  "..tostring(time1).."  ".."ГО: "..tostring(fut_limit).."  ".."Профит: "..tostring(profit).."  ".."Комис: "..tostring(ts_comission).."  ".. "КГО: "..tostring(kgo).."  Lim: "..tostring(open_lim)..  "\n"); -- "\n" признак конца строки
				--f:write( tostring(date1).. "  " ..tostring(time1)..  "  " .. "BID: " .. tostring(res_trans) .. "  " .. "ASK: " ..  tostring(MXU8ask_vol) .. "\n"); -- "\n" признак конца строки
				   -- Сохраняет изменения в файле на диск
				f:flush();
				
				fut_limit_old = fut_limit;
			end
			
			if fut_limit_max == 0  then   								
				fut_limit_max = fut_limit;
			end	
				
			if ( math.abs(fut_limit-fut_limit_max) > 1000000 and fut_limit>0 ) then   	  -- настраиваем под себя							
				message( tostring(fut_limit) )   ----сообщение в Квик--
				--message( tostring(time1) )
				---------------------------------------- отправляем сообщение в  Телеграмм--
				pos_free     = getFuturesLimit("A111", "A111111", 0, "SUR").cbplplanned               --NUMBER  ГО свободных денег от позы без пониженного ГО 
				open_lim     = getFuturesLimit("A111", "A111111", 0, "SUR").cbplimit                  --NUMBER  Лимит открытых позиций
				tg_message = tostring(open_lim).."   ГО:"..tostring(fut_limit).."   Поза:"..tostring(open_lim-pos_free) 
				os.execute('curl  "https://api.telegram.org/botВашиДанныеИзТелеграмм&text= + '..tg_message..' " ')    -- отправляем в телегу, через винду. Вписать ваши данные из Телеграмм
				----------------------------------------
				-- Пример строки   https://api.telegram.org/bot365877050:AAE232342348HIqifnyGSsw89U_4TK3Y/sendMessage?chat_id=202560128&text=  + Привет Квик!
				----------------------------------------
				fut_limit_max = fut_limit;
			end	
			
			if  math.abs(kgo-kgo_old) > 0 then
				---------------------------------------- отправляем сообщение в  телеграмм
				tg_message = tostring(kgo).." Внимание! Изменился коэффициент КГО" 
				os.execute('curl  "https://api.telegram.org/botВашиДанныеИзТелеграмм&text= + '..tg_message..' " ')    -- отправляем в телегу, через винду. Вписать ваши данные из Телеграмм
				----------------------------------------
				-- Пример строки   https://api.telegram.org/bot365877050:AAE232342348HIqifnyGSsw89U_4TK3Y/sendMessage?chat_id=202560128&text=  + Привет Квик!
				----------------------------------------
				kgo_old = kgo;
			end
		end
		
		
		
    end
f:close();  -- закрываем файл печати.
end		
		

-- Остановка скрипта из Квика
function OnStop(stop_flag)

    is_run=false

end


( Читать дальше )
  • обсудить на форуме:
  • QUIK

⭐️ Как выбрать акции для покупки с помощью отчёта 8-K


Добрый день, друзья!


Мой пост об отчетах 10-K, 10-Q и 8-K американских эмитентов (
https://smart-lab.ru/blog/677043.php) вызвал достаточно большой отклик среди Смарт-Лабовцев (68 ⭐️ + 326 ❤️). Поэтому выполняю своё обещание и рассказываю о методике анализа отчетов 8-К, которая в прошлом году принесла мне 50% годовых в долларах США (https://smart-lab.ru/blog/668157.php).

Внимание: лонгрид. Если у Вас в данный момент нет возможности на 15 минут сосредоточиться на изучении достаточно сложной информации – лучше добавить пост в избранное и вернуться к его прочтению позже.

В прошлый раз мы пришли к выводу о том, что отчеты 10-K содержат только прошлые данные, в силу чего информация, отражённая в них, уже заложена в текущие котировки акций. А с учётом того, что изучение формы 10-K является достаточно трудоёмким процессом, то для частного инвестора эта форма теряет всякий смысл. 



( Читать дальше )

Бычья стратегия Slingshot - покупка акций Apple (AAPL) с хеджированием через ОПЦИОНЫ

Благодарю коллег за комментарии к моему предыдущему посту
Трейдер Ray Badman поделился очень любопытным видео с современным примером хеджирования позиции в акциях с нулевыми затратами на опционы.

Материал на английском, кто знает язык смотрите в оригинале.
Я постарался адаптировать перевод этой стратегии на русский язык.
Поддержите лайком.

Гость в студии управляющий Mark Phillips называет стратегию Slingshot .
Буквально на русском: РОГАТКА

slingshot [ˈslɪŋʃɒt] — (сущ.) рогатка

Построен практический пример на акциях Apple (AAPL)

Смотрим YouTube:


( Читать дальше )
  • обсудить на форуме:
  • Apple

Опционы. Торговля недельками на экспиру.

Сегодня вернемся к теме опционов и рассмотрим вопрос направленной торговли в день экспирации.

В одном из топиков на Смарт-Лабе ожидаемо возбудились опционные надмозги. Стоило только накинуть на график опциона индикаторы, как немедленно полыхнуло. Понятно, что мы оказались полными валенками. Ведь позволить сделать ТАКОЕ могут только тупорылые идиоты. Нормальные люди старательно изучают базовый актив, строят волшебные конструкции, старательно высчитывают, высунув кончик языка, греки.

Греки через секунду меняются, и надмозги снова, высунув язычок, высчитывают все повторно.

Но мы поступим как деревенские лапотники и будет просто покупать опционы. В день экспиры.

Какие у нас входные условия? Мы знаем, что опцион в конце своей жизни в подавляющем большинстве случаев превращается в ноль, поэтому мы выделяем на покупку определенную часть депо. Которую мы можем потерять. Какой там стандартный дневной стоп? 2%? Вот и мы выделим 2%.



( Читать дальше )

Робот на quik XoraX боковик на lua (обновление 0.1.140 )

    • 03 августа 2020, 23:36
    • |
    • XoraX
  • Еще
Веерная продажа и конфиг для фьючерса SI

Раньше робот умел торговать только в рамках определённого диапазона, купил и сразу же купленные контракты продал.
Мы продумали как сделать так чтобы увеличить профит
Веерная продажа:
Теперь робот понимает, что покупая 4 контракта по цене 40$ он выставит на продажу по цене 40$ + 0.05 центов с шагом 0.05(настраиваемое) на количество контрактов. 
Если робот продал один контракт и цена упала на 0.1$(до 40$), то робот не будет покупать 4 контракта, а купит 1 контракт и вернёт позицию на место. Это увеличивает профит и регулирует риски.
Робот на quik XoraX боковик на lua (обновление 0.1.140 )

Купить на хаях не кто не хочет. Робот понимает где хай и вычисляет его автоматически на графике, в зависимости от проанализированных свечей за время своей работы. Но можно так же установить хай через панель и понимать, что робот не купит выше установленной линии на графике.

Робот на quik XoraX боковик на lua (обновление 0.1.140 )

( Читать дальше )

Индикатор BullBearPower

Приветствую, коллеги!

Не думал, что будет такой интерес к моему посту https://smart-lab.ru/blog/634217.php , а точнее к индикатору, о котором в нем написано. Много сообщений в личку, не успеваю. Поэтому просто выкладываю код индикатора. Написан в QLua. Копируйте, вставляйте, запускайте и пользуйтесь! ВАЖНО: Для нормальной работы индикатора нужно, что бы была открыта таблица обезличенных сделок и шел поток данных по вашему инструменту!!!

p_CLASSCODE = «SPBFUT» --Код класса
p_SECCODE = «SiU0» --Код инструмента

function OnInit()

frame_60min = CreateDataSource (p_CLASSCODE, p_SECCODE, INTERVAL_H1)
frame_5min = CreateDataSource (p_CLASSCODE, p_SECCODE, INTERVAL_M5)

Index_60min = nil
Index_5min = nil

LastPrice = nil

IsRun = true

end

function main()

CreateTable()

while IsRun do

if Index_60min ~= frame_60min:Size() then

Index_60min = frame_60min:Size()

end

if Index_5min ~= frame_5min:Size() then

Index_5min = frame_5min:Size()

Transaq = 0
BuyWay = 0
SellWay = 0

end

if LastPrice ~= frame_60min:C(Index_60min) then

LastPrice = frame_60min:C(Index_60min)

BuySignal(frame_60min, Index_60min)
SellSignal(frame_60min, Index_60min)

if BuySpeed ~= nil and SellSpeed ~= nil then

if LastPrice < BuyPrice and BuySpeed > SellSpeed then

SetCell(t_id, 1, 4, «Buy»)

elseif LastPrice > SellPrice and SellSpeed > BuySpeed then

SetCell(t_id, 1, 4, «Sell»)

else

SetCell(t_id, 1, 4, «None»)

end

end

end

sleep(10)

end



( Читать дальше )

Опционная стратегия THE WHEEL STRATEGY

                На просторах смартлаба есть статьи, упоминающие стратегию The Wheel Strategy. Но сильного отклика и интереса эта стратегия к сожалению, не получила. Постараюсь в данной заметке раскрыть эту тему более подробно и с конкретными примерами.

                The Wheel Strategy достаточно интересная и мощная опционная стратегия.  Широко используется на западных рынках. Вход в стратегию начинается с продажи пута. Далее пут экспирируется во фьючерс, либо нет. Если пут не экспирировался, то начинаем снова с продажи пута. В любом случае мы получаем премию пута. Если получили фьючерс, то продаём стреддл, то есть мы имеем покрытый колл и проданный пут. Все операции по продажи путов и колов в данном примере для простоты приведены на одном страйке. Если рынок пойдет вверх мы получаем в результате три премии и можем начать стратегию заново. Если вниз, то получаем два фьючерса, и три премии, но мы сейчас либо в нуле либо в минусе. Соответственно далее продаем ещё 2кола. Если рынок пойдет вверх, получем пять премий, если рынок пошел вниз, то опять продаем два кола.



( Читать дальше )

Python-->Lua-->Квик. Управление заявками в Квике из Питона.

Всем привет!
То о чем так долго мечтали большевики — свершилось!
Представляю QLua-сервер для управления заявками в Квике Квиком. Как обычно, в несколько строк кода.


( Читать дальше )

КВИК-->Lua-->Python. Трансляция данных из КВИКа в Питон в реальном времени

Всех с пятницей — самоизолятницей!
Представляю общественности Python-сервер (в 9 строк кода) для получения данных из КВИКа в Питон через луа-скрипт в режиме реального времени.
Для примера приведу получение тиковых данных по SIM0.
Нам понадобятся следующие ингредиенты.
1. Понятное дело КВИК, версии ниже 8 или 8.5.2 и выше.
2. Питон Jupyter Notebook (Anaconda 3)
3. Луа-скрипт, взятый из Jatotrader (в нем буквально изменено пару строк)
Как работает сервер можно посмотреть в этом видео (1 мин. 38 сек.) Ну и по правилам хорошего тона, естественно сам текст ниже.


( Читать дальше )
  • обсудить на форуме:
  • Quik Lua

....все тэги
UPDONW
Новый дизайн