Блог им. andrey_koltsov
В свое время у меня была задумка — посмотреть какой в реальности (включая комиссии) спред между спотом и фьючерсом и стОит ли его торговать. Так как, ни С#, ни Lua я, пока, не изучил, то пришлось писАть на Qpile…
Торговый функционал в скрипте не прописывал, поэтому его можно использовать только, как анализатор.
Кому надо – забирайте, так как я решил для себя дальше эту тему не развивать (по крайней мере пока)…
Выглядит интерфейс вот так:
Особенности:
— текущий фьючерс определяется автоматически, в день экспирации автоматически переключается на новый;
— перед использованием надо указать папку в настройках пользователя для расчетов;
— в скобках отражается средний процент за последние 500 замеров для объективности расчетов (цифру можно менять в настройках пользователя);
— также в настройках можно указать при каком проценте информация об этом запишется в файл в следующем виде:
PORTFOLIO_EX Koltsov-Spred-all-4.0; DESCRIPTION Koltsov-Spred-all-4.0; CLIENTS_LIST ALL_CLIENTS; FIRMS_LIST FIRMID; USE_CASE_SENSITIVE_CONSTANTS; PROGRAM '________________________________________________________________________________ '------- НАСТРОЙКИ ПОЛЬЗОВАТЕЛЯ -------- papka = "C:/Quik_Open/Info/raschet/spred_all/" 'Папка дря осуществления расчетов procent_nado = 8 'Отсечка процента (для записи информации в файл) procent_period = 500 'За сколько циклов засчитываем средний процент komissiy_broker_fr= 0.057 'Брокерская комиссия (Фондовый рынок в процентах) komissiy_broker_sr= 0.47 'Брокерская комиссия (срочный рынок в рублях) '_______________________________________________________________________________ DELETE_ALL_ITEMS() spred_kolichestvo = 8 'Сколько спредов анализируем (цикл программы) '--- Classcode11 = "SPBFUT" 'Индексы Seccode11 = "SR" 'фьючерс Classcode21 = "TQBR" 'Индексы Seccode21 = "SBER" 'акция nazvanie21 = "Сбербанк" '--- Classcode12 = "SPBFUT" 'Индексы Seccode12 = "VB" 'фьючерс Classcode22 = "TQBR" 'Индексы Seccode22 = "VTBR" 'акция nazvanie22 = "ВТБ" '--- Classcode13 = "SPBFUT" 'Индексы Seccode13 = "GZ" 'фьючерс Classcode23 = "TQBR" 'Индексы Seccode23 = "GAZP" 'акция nazvanie23 = "Газпром" '--- Classcode14 = "SPBFUT" 'Индексы Seccode14 = "LK" 'фьючерс Classcode24 = "TQBR" 'Индексы Seccode24 = "LKOH" 'акция nazvanie24 = "Лукойл" '--- Classcode15 = "SPBFUT" 'Индексы Seccode15 = "RN" 'фьючерс Classcode25 = "TQBR" 'Индексы Seccode25 = "ROSN" 'акция nazvanie25 = "Роснефть" '--- Classcode16 = "SPBFUT" 'Индексы Seccode16 = "GM" 'фьючерс Classcode26 = "TQBR" 'Индексы Seccode26 = "GMKN" 'акция nazvanie26 = "Нор.Никель" '--- Classcode17 = "SPBFUT" 'Индексы Seccode17 = "SN" 'фьючерс Classcode27 = "TQBR" 'Индексы Seccode27 = "SNGS" 'акция nazvanie27 = "Сургутнефт" '--- Classcode18 = "SPBFUT" 'Индексы Seccode18 = "TN" 'фьючерс Classcode28 = "TQBR" 'Индексы Seccode28 = "TRNFP" 'акция nazvanie28 = "Транснефть" '--------- Lot = 1 'Для расчета ГО (формальность) procent = papka&"procent.log" '------------------ 'Задаем время онлайн Vrema = GET_INFO_PARAM ("SERVERTIME") 'определяем время Hour0="" & (0 + substr(Vrema,0,2)) Min0 =floor (substr(Vrema,3,2)) Sec0 =floor (substr(Vrema,6,2)) if len(Sec0) == 1 Sec0= "0" & Sec0 end if if len(Min0) == 1 Min0= "0" & Min0 end if if len(Hour0) == 1 Hour0= "0" & Hour0 end if Time0=Hour0 & Min0 & Sec0 'Время on-line Time0=Time0+0 Time=Hour0 & Min0 & 0 & 0 'Время с округлением до минуты '------------------ 'Задаем дату dats = GET_INFO_PARAM ("TRADEDATE") Year="" & (0 + substr(dats,6,4)) Month="" & (0 + substr(dats,3,2)) if len(Month) == 1 Month= "0" & Month end if Day="" & (0 + substr(dats,0,2)) if len(Day) == 1 Day= "0" & Day end if Date = Year & Month & Day 'переводим в нужный формат Date0= Date Date = Date+0 '=============================================================================================================================== '=============================================================================================================================== 'Начало основного цикла for cikl from 1 to spred_kolichestvo '=============================================================================================================================== Classcode1 = "нет" Seccode1 = "нет" nazvanie1 = "нет" Classcode2 = "нет" Seccode2 = "нет" nazvanie2 = "нет" shag_strike = 9999999999999 if cikl=1 Classcode1 = Classcode11 Seccode1 = Seccode11 Classcode2 = Classcode21 Seccode2 = Seccode21 nazvanie2 = nazvanie21 end if if cikl=2 Classcode1 = Classcode12 Seccode1 = Seccode12 Classcode2 = Classcode22 Seccode2 = Seccode22 nazvanie2 = nazvanie22 end if if cikl=3 Classcode1 = Classcode13 Seccode1 = Seccode13 Classcode2 = Classcode23 Seccode2 = Seccode23 nazvanie2 = nazvanie23 end if if cikl=4 Classcode1 = Classcode14 Seccode1 = Seccode14 Classcode2 = Classcode24 Seccode2 = Seccode24 nazvanie2 = nazvanie24 end if if cikl=5 Classcode1 = Classcode15 Seccode1 = Seccode15 Classcode2 = Classcode25 Seccode2 = Seccode25 nazvanie2 = nazvanie25 end if if cikl=6 Classcode1 = Classcode16 Seccode1 = Seccode16 Classcode2 = Classcode26 Seccode2 = Seccode26 nazvanie2 = nazvanie26 end if if cikl=7 Classcode1 = Classcode17 Seccode1 = Seccode17 Classcode2 = Classcode27 Seccode2 = Seccode27 nazvanie2 = nazvanie27 end if if cikl=8 Classcode1 = Classcode18 Seccode1 = Seccode18 Classcode2 = Classcode28 Seccode2 = Seccode28 nazvanie2 = nazvanie28 end if if cikl=9 Classcode1 = Classcode19 Seccode1 = Seccode19 Classcode2 = Classcode29 Seccode2 = Seccode29 nazvanie2 = nazvanie29 end if if cikl=10 Classcode1 = Classcode110 Seccode1 = Seccode110 Classcode2 = Classcode210 Seccode2 = Seccode210 nazvanie2 = nazvanie210 end if if cikl=11 Classcode1 = Classcode111 Seccode1 = Seccode111 Classcode2 = Classcode211 Seccode2 = Seccode211 nazvanie2 = nazvanie211 end if if cikl=12 Classcode1 = Classcode112 Seccode1 = Seccode112 Classcode2 = Classcode212 Seccode2 = Seccode212 nazvanie2 = nazvanie212 end if if cikl=13 Classcode1 = Classcode113 Seccode1 = Seccode113 Classcode2 = Classcode213 Seccode2 = Seccode213 nazvanie2 = nazvanie213 end if procent_sredniy = papka & "procent_" & nazvanie2 & ".log" '------------------ 'Задаем параметры ближнего фьючерса Mesyac = "A" Mesyac0 = Month+0 God = 0 + substr(dats,9,1) 'Январь - F 'Февраль - G 'Март - H 'Апрель - J 'Май - K 'Июнь - M 'Июль - N 'Август - Q 'Сентябрь- U 'Октябрь - V 'Ноябрь - X 'Декабрь - Z '------------------ for m from 1 to 4 Seccode11 = Seccode1 if Mesyac0 = 1 Mesyac = "F" end if if Mesyac0 = 2 Mesyac = "G" end if if Mesyac0 = 3 Mesyac = "H" end if if Mesyac0 = 4 Mesyac = "J" end if if Mesyac0 = 5 Mesyac = "K" end if if Mesyac0 = 6 Mesyac = "M" end if if Mesyac0 = 7 Mesyac = "N" end if if Mesyac0 = 8 Mesyac = "Q" end if if Mesyac0 = 9 Mesyac = "U" end if if Mesyac0 = 10 Mesyac = "V" end if if Mesyac0 = 11 Mesyac = "X" end if if Mesyac0 = 12 Mesyac = "Z" end if '------------------ Seccode11 = Seccode1 & Mesyac & God nazvanie1 = Seccode1 'Получение значения количества дней до погашения из Таблицы текущих значений параметров DAYS_TO_MAT_DATE_Seccode1 = GET_PARAM_EX (Classcode1, Seccode11, "DAYS_TO_MAT_DATE") DAYS_TO_MAT_DATE_Seccode1 = GET_VALUE(DAYS_TO_MAT_DATE_Seccode1,"PARAM_VALUE")+0 if DAYS_TO_MAT_DATE_Seccode1<=0 and Mesyac0<12 Mesyac0 = Mesyac0+1 else if DAYS_TO_MAT_DATE_Seccode1<=0 and Mesyac0=12 and God<9 Mesyac0 = 1 God = God +1 else if DAYS_TO_MAT_DATE_Seccode1<=0 and Mesyac0=12 and God=9 Mesyac0 = 1 God = 0 end if end if end if end for 'for m from 1 to 4 Seccode1 = Seccode1 & Mesyac & God nazvanie1 = Seccode1 '------------------ '------------------ 'Получение значения лучшей цены предложения из Таблицы текущих значений параметров Seccode1_BUY = GET_PARAM_EX (Classcode1, Seccode1, "OFFER") Seccode1_BUY = GET_VALUE(Seccode1_BUY,"PARAM_VALUE")+0 Seccode2_BUY = GET_PARAM_EX (Classcode2, Seccode2, "OFFER") Seccode2_BUY = GET_VALUE(Seccode2_BUY,"PARAM_VALUE")+0 'Получение значения лучшей цены спроса из Таблицы текущих значений параметров Seccode1_SELL = GET_PARAM_EX (Classcode1, Seccode1, "BID") Seccode1_SELL = GET_VALUE(Seccode1_SELL,"PARAM_VALUE")+0 Seccode2_SELL = GET_PARAM_EX (Classcode2, Seccode2, "BID") Seccode2_SELL = GET_VALUE(Seccode2_SELL,"PARAM_VALUE")+0 'Получение размера лота из Таблицы текущих значений параметров Seccode1_LOT_SHT = GET_PARAM_EX (Classcode1, Seccode1, "LOTSIZE") Seccode1_LOT_SHT = GET_VALUE(Seccode1_LOT_SHT,"PARAM_VALUE")+0 Seccode2_LOT_SHT = GET_PARAM_EX (Classcode2, Seccode2, "LOTSIZE") Seccode2_LOT_SHT = GET_VALUE(Seccode2_LOT_SHT,"PARAM_VALUE")+0 'Получение значения количества дней до погашения из Таблицы текущих значений параметров DAYS_TO_MAT_DATE_Seccode1 = GET_PARAM_EX (Classcode1, Seccode1, "DAYS_TO_MAT_DATE") DAYS_TO_MAT_DATE_Seccode1 = GET_VALUE(DAYS_TO_MAT_DATE_Seccode1,"PARAM_VALUE")+0 'Получение значения Гарантийного обеспечения покупателя из Таблицы текущих значений параметров GO_Seccode1 = GET_PARAM_EX (Classcode1, Seccode1, "BUYDEPO") GO_Seccode1 = GET_VALUE(GO_Seccode1,"PARAM_VALUE")+0 'Получение Минимального шага цены из Таблицы текущих значений параметров Seccode1_STEPPRICE = GET_PARAM_EX (Classcode1, Seccode1, "SEC_PRICE_STEP") Seccode1_STEPPRICE = GET_VALUE(Seccode1_STEPPRICE,"PARAM_VALUE")+0 shag_cena1 = Seccode1_STEPPRICE*100 Seccode2_STEPPRICE = GET_PARAM_EX (Classcode2, Seccode2, "SEC_PRICE_STEP") Seccode2_STEPPRICE = GET_VALUE(Seccode2_STEPPRICE,"PARAM_VALUE")+0 shag_cena2 = Seccode2_STEPPRICE*100 '---------- 'Расчет спрэда в стаканах spred1 = Seccode1_BUY - Seccode1_SELL spred2 = Seccode2_BUY - Seccode2_SELL '---------- 'Получение Стоимости шага цены БА из Таблицы текущих значений параметров SHAG_PRICE_RUB = 0 SHAG_PRICE_RUB = GET_PARAM_EX (Classcode1, Seccode1, "STEPPRICET") SHAG_PRICE_RUB = GET_VALUE(SHAG_PRICE_RUB,"PARAM_VALUE")+0 '--------------- 'Биржевой сбор BaseFutFee=0.6 'Для акций 0.6 'Расчет значения Биржевого сбора за контракт СР FutPrice = GET_PARAM_EX (Classcode1, Seccode1, "PREVSETTLEPRICE") 'Предыдущая расчетная цена из Таблицы текущих значений параметров FutPrice = GET_VALUE(FutPrice,"PARAM_VALUE")+0 Sbor_birzhi_Seccode1 = 0 if Seccode1_STEPPRICE<>0 Sbor_birzhi_Seccode1 = APPLY_SCALE((APPLY_SCALE(FutPrice*APPLY_SCALE((SHAG_PRICE_RUB/Seccode1_STEPPRICE),5),2)*BaseFutFee*0.0001),2)+0 end if if Sbor_birzhi_Seccode1<0.01 Sbor_birzhi_Seccode1=0.01 end if 'Расчет размера Биржевого сбора ФР Sbor_birzhi_Seccode2 = 0 Sbor_birzhi_Seccode2 = ((Seccode2_BUY*Seccode1_LOT_SHT)/100*komissiy_broker_fr) 'Расчет общего размера Биржевого сбора Sbor_birzhi_ALL = 0 Sbor_birzhi_ALL = Sbor_birzhi_Seccode1*2 + Sbor_birzhi_Seccode2*2 + komissiy_broker_sr*2 '--------------- 'Расчет спрэда для входа и выхода из сделки spred_on_raschet = Seccode1_SELL - (Seccode2_BUY*Seccode1_LOT_SHT) - Sbor_birzhi_ALL spred_off_raschet = Seccode1_BUY - (Seccode2_SELL*Seccode1_LOT_SHT) spred_raznica = 0 spred_raznica = spred_on_raschet-spred_off_raschet spred_on_raschet_procent = 0 if Seccode2_BUY>0 and Seccode1_LOT_SHT>0 and GO_Seccode1>0 and DAYS_TO_MAT_DATE_Seccode1>0 spred_on_raschet_procent = (spred_on_raschet/((Seccode2_BUY*Seccode1_LOT_SHT)+GO_Seccode1))*100/DAYS_TO_MAT_DATE_Seccode1*365 end if '--------------- 'Расчет среднего спрэда в % за период str = GET_FILE_LEN(procent_sredniy)+0 'Сколько строк в файле if str<procent_period nachalo=1 else nachalo=str-procent_period+1 end if a=0 procent=CREATE_MAP () FOR i FROM nachalo TO str dannye = READ_LINE(procent_sredniy,i,"error")+0 a=a+1 procent=SET_VALUE(procent, "key" & a, dannye) 'Добавляем в массив предыдущие значения END FOR a=a+1 procent=SET_VALUE(procent, "key" & a, spred_on_raschet_procent) 'Добавляем в массив текущее значение '--- b=0 if spred_on_raschet_procent<>0 and ((Time0>100000 and Time0<140000) or (Time0>140500 and Time0<184000)) if a<=procent_period b=a CLEAR_FILE(procent_sredniy) FOR i FROM 1 TO b s = GET_VALUE(procent,"key" & i) WRITELN (procent_sredniy, s) 'Запись в файл из массива END FOR else b=a CLEAR_FILE(procent_sredniy) FOR i FROM 2 TO b s = GET_VALUE(procent,"key" & i) WRITELN (procent_sredniy, s) 'Запись в файл из массива со смещением на 1 END FOR end if end if '--- procent_za_period = 0 str = GET_FILE_LEN(procent_sredniy)+0 'Сколько строк в файле FOR i FROM 1 TO str dannye = READ_LINE(procent_sredniy,i,"error")+0 procent_za_period = procent_za_period + dannye END FOR if str>0 procent_za_period = procent_za_period/str end if '--- 'Для визуализации procent_za_period_vizion = APPLY_SCALE(procent_za_period,2) spred_on_raschet_procent_vision = APPLY_SCALE(spred_on_raschet_procent,2) & " (" & procent_za_period_vizion & ") %" '--------------- 'Для визуализации BUY и SELL Price_ON_1 = Seccode1_SELL Price_ON_2 = Seccode2_BUY*Seccode1_LOT_SHT Price_OFF_1 = Seccode1_BUY Price_OFF_2 = Seccode2_SELL*Seccode1_LOT_SHT '----- 'Расчет необходимых инвестиций investicii = 0 GO_Seccode2= 0 investicii = ((Seccode2_BUY*Seccode1_LOT_SHT)+GO_Seccode1)*lot GO_Seccode2= (Seccode2_BUY*Seccode1_LOT_SHT) '----- 'Информируем, если значение достигло нужного уровня if spred_on_raschet_procent>=procent_nado and ((Time0>100000 and Time0<140000) or (Time0>140500 and Time0<184000)) MESSAGE (nazvanie2 & "-" & spred_on_raschet_procent_vision,1) WRITELN (procent,Date & "-" & Time0 & "-" & nazvanie2 & "-" & spred_on_raschet_procent_vision) end if '============================================================================== stroka_3 = cikl*3 stroka_2 = stroka_3-1 stroka_1 = stroka_2-1 output=CREATE_MAP() output=SET_VALUE(output,"1",cikl) output=SET_VALUE(output,"2",nazvanie1) output=SET_VALUE(output,"3",Seccode1_LOT_SHT) output=SET_VALUE(output,"4",Seccode1_STEPPRICE) output=SET_VALUE(output,"5",GO_Seccode1) output=SET_VALUE(output,"7",DAYS_TO_MAT_DATE_Seccode1) output=SET_VALUE(output,"9","sell:") output=SET_VALUE(output,"10",Price_ON_1) output=SET_VALUE(output,"11","buy:") output=SET_VALUE(output,"12",Price_OFF_1) output=SET_VALUE(output,"26",Sbor_birzhi_Seccode1) ADD_ITEM(stroka_1,Output) output=CREATE_MAP() output=SET_VALUE(output,"1",cikl) output=SET_VALUE(output,"2",nazvanie2) output=SET_VALUE(output,"3",Seccode2_LOT_SHT) output=SET_VALUE(output,"4",Seccode2_STEPPRICE) output=SET_VALUE(output,"5",GO_Seccode2) output=SET_VALUE(output,"9","buy:") output=SET_VALUE(output,"10",Price_ON_2) output=SET_VALUE(output,"11","sell:") output=SET_VALUE(output,"12",Price_OFF_2) output=SET_VALUE(output,"26",Sbor_birzhi_Seccode2) ADD_ITEM(stroka_2,Output) output=CREATE_MAP() output=SET_VALUE(output,"2","==========") output=SET_VALUE(output,"5",investicii) 'output=SET_VALUE(output,"6",spred_raznica) 'output=SET_VALUE(output,"8",dohod_raschet) output=SET_VALUE(output,"9","спред:") output=SET_VALUE(output,"10",spred_on_raschet) output=SET_VALUE(output,"11",spred_on_raschet_procent_vision) output=SET_VALUE(output,"26",Sbor_birzhi_ALL) ADD_ITEM(stroka_3,Output) '============================================================================== '============================================================================== SET_ROW_COLOR_EX (stroka_3, "RGB(240,240,240)", "DEFAULT_COLOR", "RGB(0,0,255)", "RGB(0,0,255)") 'легкая серая заливка и синий шрифт 'Конец основного цикла end for '============================================================================== '============================================================================== END_PROGRAM PARAMETER 1; PARAMETER_TITLE №; PARAMETER_DESCRIPTION №; PARAMETER_TYPE NUMERIC(10,0); END PARAMETER 2; PARAMETER_TITLE Пара; PARAMETER_DESCRIPTION Пара; PARAMETER_TYPE STRING(32); END PARAMETER 3; PARAMETER_TITLE Лот (шт); PARAMETER_DESCRIPTION Лот (шт); PARAMETER_TYPE NUMERIC(10,0); END PARAMETER 4; PARAMETER_TITLE Шаг; PARAMETER_DESCRIPTION Шаг цены; PARAMETER_TYPE STRING(32); END PARAMETER 5; PARAMETER_TITLE ГО; PARAMETER_DESCRIPTION ГО; PARAMETER_TYPE NUMERIC(10,0); END PARAMETER 7; PARAMETER_TITLE Day; PARAMETER_DESCRIPTION End day; PARAMETER_TYPE NUMERIC(10,0); END PARAMETER 9; PARAMETER_TITLE -; PARAMETER_DESCRIPTION -; PARAMETER_TYPE STRING(32); END PARAMETER 10; PARAMETER_TITLE ON; PARAMETER_DESCRIPTION Цена; PARAMETER_TYPE NUMERIC(10,0); END PARAMETER 11; PARAMETER_TITLE -; PARAMETER_DESCRIPTION -; PARAMETER_TYPE STRING(32); END PARAMETER 12; PARAMETER_TITLE OFF; PARAMETER_DESCRIPTION Цена; PARAMETER_TYPE NUMERIC(10,0); END PARAMETER 26; PARAMETER_TITLE Сбор (руб); PARAMETER_DESCRIPTION Биржевой сбор (руб); PARAMETER_TYPE NUMERIC(10,2); END END_PORTFOLIO_EX
Если торговать «в чистом виде», то доходность маленькая получается — 7%… ОФЗ, пока, еще выгоднее. Данную стратегию надо торговать для торговли акций в short, чтобы не платить за маржинальное кредитование (сначала делаете нейтральную позицию: short фьючерс + long акции + доходность 7% годовых, а если нужен short по акции, продаете ее и получаете доходность от short фьючерса)… Но у меня все стратегии торгуют акции в long…
Может быть потом что-нибудь придумаю…
А ликвидных фьючах большая конкуренция много ботов.
Пробовал руками — результат меня не удовлетворил.
В том-то и дело, что торговать руками здесь не реально… Даже на Qpile сложно из-за минимального времени расчета скрипта в 1 сек… Хотя, можно… Доработать скрипт — когда уровень спрэда превысит расчетный, то сразу отправляются встречные заявки… Ведь, в моем скрипте отображается информация не по последней сделке, а по реальным BID и ASK… Остается только отправить заявки… Но сделать это надо ОЧЕНЬ быстро… :) А сделать это может только робот… :)
Андрей Кольцов, в Qpile расчёты только раз в 1 сек.? это такое ограничение именно Qpile?
цены берёте из стакана? для этого не нужно что б стакан был открыт?
BID и ASK берется из Текущей таблицы параметров. Стакан и график открывать не надо...
Да, только для Qpile: минимум 1 сек., «по-умолчанию» стоит 10 сек.:
Но… Внутри цикла он все делает относительно быстро (если внутренними циклами сильно не нагружать)… Просто, следующий цикл расчета начнется только через 1 секунду...
Разумеется, для HFT он не подойдет, но если торговать средне-срок или даже внутри дня, то вполне хватает…
Андрей Кольцов, в луа расчёт минимум вроде как 0,001 секунды, может и меньше можно
но от момента отправки заявки до получения результата по ней проходит около 0,3 сек
ну просто к сведению)
Хотя, если Вы не ловите резких аномалий, то можно успеть и ручками… Думаю, что 7% поймать можно… Ведь, сделать это надо всего-лишь один раз в квартал… :)
И вы прекрасно это понимаете, как и многие другие которые разбирались с арбитражом.
Согласен… Отвечал аналогично выше....
Продублирую:
«Если торговать «в чистом виде», то доходность маленькая получается — 7%… ОФЗ, пока, еще выгоднее. Данную стратегию надо торговать для торговли акций в short, чтобы не платить за маржинальное кредитование (сначала делаете нейтральную позицию: short фьючерс + long акции + доходность 7% годовых, а если нужен short по акции, продаете ее и получаете доходность от short фьючерса)…»
Совершенно верно...
А если нужен будет long по акциям, то, просто, докупаете акции еще...
Так многие торгуют… И доход 7% идет, и за маржиналку платить не надо…
Андрей Кольцов, хорошо для такого иметь единый счёт
а не легче держать офз?
и плечо стоит то больше 7%, если всё депо во фьюче и акции то следующая покупка акции это плечо, а оно дорогое, легче наверное фьючи откупить
не знаю есть ли в этом смысл, держишь пару по сберу, а тут надо газпром взять, надо всё закрывать и покупать газпром, по комисии возможно офз легче держать, особенно если пол года сидеть в не позы, экономия на комиссии
торговать «на всю котлету», да еще и только по одному инструменту крайне нежелательно с точки зрения манименеджмента...
У каждого свои стратегии… На такие случаи надо и кэш держать…
Да, доработать и желательно чтобы скрипт был написан на Си Шарп лежал на сервере в здании мос. биржи и отправлял заявки через Plaza2.
И тогда с доработанным скриптом есть все шансы получить прибыль
:)
З.Ы. В любом случае то, что вы написали очень полезно. Опыт не пропьешь)
в период выплаты дивидендов по фьючерсам будет наблюдаться бэквордация, то есть акции будут стоит дороже фьючерсов, так как в стоимости акций будет заложена дивидендная составляющая. Разумеется, если дивиденды выше безрисковой процентной ставки… После отсечки все нормализуется…
Андрей Кольцов, после отсечки в любом случаи нормализуется, правда по моему не сразу
ну получается дивы не учитываете