Избранное трейдера Ajax
Табличка по S&P500, которую я сделал однажды для себя, но потом оказалось, что она интересна многим, стала сегодня гораздо более обширной и юзабельной.
Что нового?
1. Появилась вкладка S&P100. Индекс S&P100 — это сто крупнейших по капитализации компаний от того же агентства Standart&Poor. Очень интересный индекс, кстати говоря. На следующей неделе сравню его с S&P500 в плане диверсификации по секторам и компаниям.
Очень и очень часто приходится слышать жалобы со стороны трейдеров на нелогичное поведение цен на торгуемые инструменты. Некоторые возражают, что ничего нелогичного нет, некоторые настаивают на своем, приводя массу примеров и, наконец, аппелируя к теории случайных блужданий, как последней инстанции в поддержку нелогичности и непредсказуемости рынка. В лучшем случае, рассказывают о ценовом шуме младших тайм-фреймов.
Томас Гоббс, английский философ, политолог, написал в середине 17 в. работу под названием «Левиафан или Материя, форма и власть государства церковного и гражданского». В этом труде осмыслены причины возникновения и функции государства, как орудия урегулирования отношений между людьми с изначально антагонистическими по своей природе интересами в условиях их объединения.
Идею природной враждебности людей друг к другу описал в своей комедии «Ослы» римский комедиограф Тит Макций Плавт. Оттуда пошло известное выражение:
Как вы видите из позиции, я рассчитывал на небольшую коррекцию, либо на боковик. Но рынок пошел выше. В голове начали возникать мысли закрыть позу и открыть новую, но с центральным страйком 130000. Потом собственно пришло долгожданное снижение, и я перестроил свою позицию в безубыточную. Я продал 130-ые колы и купил 127500 колы. Позиция стала выглядеть так:
Целью открытия счета было добавить 2-й брокерский счет в дополнение к Saxo-bank с возможностью работать с опционами. Обоснование выбора именно этого брокера делал на своем канале в этом посте.
Сегодняшняя статья будет интересна тем, кто задумывается об открытии брокерского счета за пределами юрисдикции РФ. В ней подробный рассказ о всех сложностях на этом пути и о сложившихся впечатлениях о выбранном сервисе.
Изначально, согласно информации на сайте, подготовил следующие сканы документов:
— паспорта с данными прописки (я открыл Joint-Account на меня и супругу, поэтом было необходимо 2 комплекта документов);
— для подтверждения своего адреса – выписку из банка с указанием моего имени и адреса;
— для подтверждения адреса супруги – чек платежа за коммунальные услуги с отметкой адреса;
— для подтверждения наличия средств – выписку из банка с оборотом по счету;
— для подтверждения происхождения средств – справку с места работы (Employment Reference).
Добрый вечер, на сон грядущий!
Продажа 68 100
Цель 67 006
Стоп лосс 68 300 или меньше, смотреть по ситуации
как входить писал тут: https://smart-lab.ru/blog/609804.php / после коррекции, вначале новой волны
------------------------------------------------------------------------------------------------------- --- Функция получения результатов свечей в .CSV в виде: --- <Инструмент> <Дата> <Время> <Цена_Open> <Цена_High> <Цена_Low> <Цена_Close> <Объем> --- BRN0 1 20200605 200100 42.15 42.16 42.1 42.1 2150 ------------------------------------------------------------------------------------------------------- is_run=true -- Параметры tInstr="BRN0" --код инструмента/бумаги classcode="SPBFUT" --код класса инструмента/бумаги, если нужен фондовый рынок - вводить TQBR вместо SPBFUT iNterval=INTERVAL_M1 --таймфрейм -- доступные таймфреймы указаны в справке Quik (qlua.chm в папке с quik) по поиску CreateDataSource -- пример INTERVAL_H1 corrTime=3 --Время МСК. C сервера время приходит без корректировки. pFile="w:\\temp" --путь, где будет создаваться файл cBars=10 --сколько свечей надо вывести --настройка параметров function OnInit() out_file=io.open(pFile .."\\"..tostring(tInstr)..".csv","w") is_run=(out_file~=nil) ds=CreateDataSource(classcode, tInstr, iNterval ) --создаем источник данных ds:SetUpdateCallback(NewChartData) --обновление последних данных end function strText(int) local m=tostring(int) local mLen=string.len(int) if mLen==1 then Output="0" .. tostring(m) else Output=m end return Output end function main() while is_run do local Size=ds:Size() --Получение количества всех свечей в источнике данных if cBars>Size then cBars=Size-1 end for i=Size-cBars, Size, 1 do local O=ds:O(i) -- Значение цена открытия свечи local H=ds:H(i) -- Значение High для свечи local L=ds:L(i) -- Значение Low для свечи local C=ds:C(i) -- Значение Close для свечи local V=ds:V(i) -- Значение Volume для свечи local T=ds:T(i) -- Значение Time для свечи sTime=os.time(T) datetime=os.date("!*t",sTime) --вывод в файл out_file:write(tInstr..";"..tostring(iNterval)..";"..tostring(datetime.year)..tostring(strText(datetime.month))..tostring(strText(datetime.day))..";"..tostring(strText(datetime.hour + corrTime))..tostring(strText(datetime.min))..tostring(strText(datetime.sec))..";"..tostring(O)..";"..tostring(H)..";"..tostring(L)..";"..tostring©..";"..tostring(V).."\n") out_file:flush() --запись данных end out_file:close() sleep(1000) -- приостановка на 1 секунду out_file=io.open(pFile .."\\"..tostring(tInstr)..".csv","w") end end
Вчера у меня это получилось:
Сранья внес очередные правки в Lbot3D в связи с изменение версии Lua c 5.1 до 5.3. по результатам ночных прогонов на демо-QUIK, запустил на боевом счету на удаленном сервере и поехал на весь день за город. День был солнечный, приятный. Вечером результат работы программы тоже порадовал: стратегия MMA0, которая была в шортах с 03.06.2020, стала раздавать лимитированные заявки на покупку-продажу, причем некоторые сделки из них просто прекрасны: продажи на локальных «хаях», покупки на локальных «лоях».
Также примечательна работа стратегии MMB0: лонг от 01.06.2020 не смог реализоваться в плюс (не дошла цена до 2859.1 :(( «ну не шмогла» ) Но и стопа тоже пока нет! Тем не менее, есть повод проработать ее параметры, но это не скоро, пусть проработает еще месяц-другой.
#thinkscript indicator: Revers.
#Показывает паттерн «Реверсивный разворот»
#by thetrader.pro
def bSignalUp = high[1]>high[2] and close[1]>high[2] and open>high[1] and close<close[1];
def bSignalDown = high[1]<high[2] and close[1]<low[2] and open<low[1] and close>close[1];
plot up = if bSignalUp then high else double.NaN;
plot down = if bSignalDown then high else double.NaN;
up.SetPaintingStrategy(paintingStrategy.BOOLEAN_ARROW_down);
down.SetPaintingStrategy(paintingStrategy.BOOLEAN_ARROW_up);
up.setDefaultColor(color.LIGHT_red);down.setDefaultColor(color.LIGHT_green);