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

по

Мои мысли (шаблонное название)

Приближается зима. И что становится популярным сырьем? Правильно — газ!
Как то я писал о том, что в ноябре-январе цены на газ в основном растут и что я планирую подержать в лонге фьючерсы на газ вплоть по январь.
И я не скрываю то, что у меня особый статус у индикаторов. Ну же делать, если знаю и умею их использовать, получается у меня при их помощи получать достаточно стабильный профит.
Говорить всякое про газ, думаю бессмысленно: это никому не нужно. А потому коротко и концептуально.
1. Посмотрим на важный аспект при формировании цены на газ в мире. Это статистика по объёму запасов природного газа в США
ru.investing.com/economic-calendar/natural-gas-storage-386
на графике хорошо видно, что запасы газа минимальны зимой. Так что в перспективе запасы могут стать еще меньше.
2. Посмотрим на ценовой график
Мои мысли (шаблонное название)

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

Covid-19 Популярная тема тут, максимальная по ереси...

👉чем лечить на ранней стадии, чтобы облегчить течение?

Ответ:
Повезет тем у кого температура 39,5 -39,8. Ее нужно терпеть первые 3 дня по час-два. Потом пить Панадол, падает до 37,5 и так лежать.
Но, температура — единственное лекарство, которое убьет Ковид-19 за 5 дней.

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

Если боли при дыхании, не паниковать, они почти у всех. У кого сильно, то легкие натянутся, будут тромбики, они будут так как бронхи (Альвеолы) слегка порвутся от натяжения, как правило это и есть ключевой день, температура падает ниже 36 и потом уже не поднимается, слабость. Утром кашель с кровью 5 дней, откашляли кровяные тромбы и ЗДОРОВ. Потом, только уже лечить последствия смотреть легкие, печень и так далее...
Как только начинаете кашлять тромбами, сразу дикое облегчение, как будто здоровы.

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

Чем лечить коронавирус

Сообщение медика из Италии

Привет… к сожалению да, чуда в этот раз не будет, штука заразная и неприятная. И не придет, а уже пришла (см. количество пневмоний в одесских больницах) уже как месяц назад… все как в Италии.  Здесь официально заявили о начале эпидемии в конце февраля, в то время как было уже в полном разгаре в конце января (по своим пациентам видел), первый пациент в Италию прилетел из Мюнхена 9 января… поэтому и такие последствия. Делали вид, что «ложки нет».

Симптомы: основной — сухой кашель, обычно начинается параллельно с першением и болью в горле (иногда и часто просто боль в шее, типа мышечная и в мышцах шеи, полагаю по ходу лимф. узлов), легкое недомогание и типа продромных явлений, все как при гриппе. Температура 37,0-37,5  — 1-2 дня, или вообще без температуры. НО! как правило, нет ринита. Часто головная боль, заложенность ушей (сальпингит), легкие признаки синусита, но, повторю, необычно как-то, нет секреторного компонента. Есть просто отек слизистых. Далее, на 2-4 день боль по ходу трахеи и за грудиной (!), сухой кашель усиливается. С пятого дня может появиться боль в грудной клетке (уже более латерально, не по центру), затрудненное дыхание (периодами). И это вот продолжается без лечения около 15-20 дней. Потом, если осложнений нет, уходит и улучшается (субъективно) по 5% в день. Длится всего порядка месяца (от 3 до 6 недель). Если нет осложнений — то температуры нет, или гипотермия (36,0-36,3). В анализе крови аналогично: основной симптом — лимфопения (!), мало либо нормальное кол-во нейтрофилов, и повышенный С-реактивный белок. Больше ничего.



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

Поговорим немного об оптимизации?!

Приветствую.

Не станем углубляться в философию оптимизации своего алгоритма, и для чего нужен бектест. Могу сказать свое мнение — оптимизировать можно, но только делайте это правильно. В своей практике, бектестинг для меня играет крайне малую роль при создании алгоритма. Но все же некие аспекты и зависимости можно выделить.
Для начала хотелось бы показать как вообще это выглядет все в рамках TSLab.
Два примера — на первом рисунке дефолтно созданный алгоритм под простые индикаторы, RSI 20 поверх SMA20. Купили когда индикатор близок к 100, продали когда близок к нулю. Никаких фильтров и усложнений (так нужно для данного поста). Так же для примера показана таблица результатов под 400проходов. От 5 до 100 с шагом 5 для каждого индикатора. (тоже лишь для примера). В ней можно усмотреть что количество отрицательных результатов — довольно маленькое. (удачный пример, не более)

Поговорим немного об оптимизации?!



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

Снова "миллиард" в Сбере

    • 11 ноября 2020, 21:22
    • |
    • П М
  • Еще
Жил да был такой вот пост про сбер
smart-lab.ru/blog/650391.php

конкретно — вход на 600 мультов вверх от 211 по сберу 6 октября.
а сегодня выход на 600 мультов, но по 245 по сберу.

Снова "миллиард" в Сбере



Задачка для средней школы, друзья. Игра окончена.

Почти пасссивная арбитражная опционная стратегия

    • 10 ноября 2020, 20:41
    • |
    • Gerasya
  • Еще
Цель стратегии получать рыночно-нейтральный пассивный рублёвый доход выше высокодоходных облигаций. При этом ликвидность средств в стратегии теряется чуть более чем полностью (но точно лучше чем в недвижимости) и нужно нажимать периодически кнопки и заходить в брокерское приложение.
 
Естественно возможно такое уже давным давно придумали и вообще это не работает.

Основа стратегии — взаимосвязь между курсом рубля/доллара и акциями Сбербанка (но вообще подошли бы любые два актива которые на дистанции склонны к росту и при этом часто двигаются противоположно), когда одно вверх как правило другое вниз, при этом лучше всего когда и то и другое вверх, либо всё стоит примерно на месте. Угроза для стратегии: акции Сбербанка вниз + укрепление рубля, т.е. возможный сценарий разрушения стратегии и потери денег (но тоже необязательно всегда можно закинуть доп. деньги под ГО, плюс макс. потери всё равно ограничены но должником остаться можно): банкротство Сбербанка + обесценивание доллара до 0 рублей за 1 доллар = макс. потери.

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

Как я обнаружил Грааль "плечевой" торговли

Решил проанализировать свою торговлю за прошедший год, с осени 2019 по осень 2020. Обычно такое делают в конце года, но тогда мне, скорее всего, будет не до этого, поэтому решил сделать это сейчас.

И внезапно обнаружил, что этот год оказался, по моим меркам, рекордно прибыльным. До этого, несмотря на увеличения счёта внутри года на 100-200%, на долгосроке все эти результаты размывались и год закрывался или в существенный убыток, или в 0, или в скромнейшие (и совершенно неприемлемые для плечевой торговли) 15-25% годовых.

В этом же году уже получаются +65%, причём это именно постепенно накопленный результат, а не следствие взятого однажды импульса.

Неужели я научился торговать?

Стал проверять это смелое предположение. 

Первым делом посмотрел на эквити.

Она, как была «пьяной» и шатающейся туда-сюда по воле ветра трендов, так и осталась. 

Может просто повезло и было много трендов? 

Так их и раньше было много, лови — не хочу. Значит, дело и не в этом. 



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

Python. Импорт данных OHLCV из файла CSV.

    • 02 ноября 2020, 22:55
    • |
    • 3Qu
  • Еще

Простите за банальность, работа с данными начинается с их получения из внешнего источника. Мы будем получать их из CSV-файла архива котировок, скачанного с сайта Финам. Для работы с другими источниками вам надо будет немного изменить программу.

Я уже давно не работаю непосредственно с CSV, и храню все данные в БД SQLite. Поначалу я хотел написать программу чтения CSV с нуля, но выяснилось, что я уже подзабыл как это делается, однако нашелся рояль в кустах — моя старая библиотека читающая данные из CSV-файла непосредственно в программу. Ее мы и будем использовать.
Собственно, Python и ориентирован на работу с библиотеками, и не нужно знать что там внутри, важно только уметь с ними работать, а сами программы с использованием библиотек станут очень простыми.
Для начала качаем с Финам историю в формате CSV-файла следующего вида:

<TICKER>,<PER>,<DATE>,<TIME>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOL>
SPFB.Si-12.20,1,04/05/20,10:00:00,76900.0000000,76990.0000000,76900.0000000,76990.0000000,3
SPFB.Si-12.20,1,04/05/20,10:06:00,77695.0000000,77695.0000000,77400.0000000,77400.0000000,8
SPFB.Si-12.20,1,04/05/20,10:08:00,77781.0000000,77781.0000000,77700.0000000,77750.0000000,30
SPFB.Si-12.20,1,04/05/20,10:13:00,78088.0000000,78098.0000000,78088.0000000,78098.0000000,6
SPFB.Si-12.20,1,04/05/20,10:14:00,78100.0000000,78100.0000000,78100.0000000,78100.0000000,1


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

Zigzag_MNK

Zigzag_MNK

Settings=              
        {                          
            Name = "Zigzag_MNK",   -- название индикатора
            delta=1.0,                  -- дельта зигзага 
            showperiod=5000,--колич баров за которые строится			
            line=                                     
                {                               
                    {  
                        Name = "zigzagline2",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255,0, 0)
                    }					
                }
       }


function Init()

    vMin = 0
    vMax = 0
    vMinindex = 0
    vMaxindex = 0
    voldMinindex = 0
    voldMaxindex = 0
	
    a1 = 0
	a2 = 0
	a3 = 0
	a4 = 0
	cind = 0
	v = null
	vFrom=0
	
	vsl = 0

  return 1
end

function calcmnk(index, vFrom, a1, a2, a3, a4, cind, vMinindex, vMaxindex)
  v = null 
  v2 = null 
  showperiod = Settings.showperiod
  if index-1 > 1 and vFrom > 1 and index > Size()-showperiod then 
  
        --[[
        for i=vFrom, index-1 do 
	     a1 = a1+i*C(i)
	     a2 = a2+i
	     a3 = a3+C(i)
	     a4 = a4+i*i	
        end  

         for i=index, index do 
	      a01 = a1+i*C(i)
	      a02 = a2+i
	      a03 = a3+C(i)
	      a04 = a4+i*i	
         end  		
		
        n = index - vFrom + 1	   
	   
	    if((n*a04 - a02*a02) ~= 0) then
	     a = (n*a01 - a02*a03)/(n*a04 - a02*a02)
		 b = (a03 - a*a02)/n		
         v = a*index + b		 
        end 
		--]]

         a1 = 0
	     a2 = 0
	     a3 = 0
	     a4 = 0
		 
		vto = index 
		 if vMinindex < vMaxindex then  
		   vto = vMaxindex 
		 end 
		 if vMinindex > vMaxindex then  
		   vto = vMinindex
		 end 		
		 
        for i=vFrom, vto do 
	     a1 = a1+i*C(i)
	     a2 = a2+i
	     a3 = a3+C(i)
	     a4 = a4+i*i	
        end  	
		
        n = vto - vFrom + 1	   
	   
	    if((n*a4 - a2*a2) ~= 0) then
	     a = (n*a1 - a2*a3)/(n*a4 - a2*a2)
		 b = (a3 - a*a2)/n		
         v = a*index + b		 
        end

	
		vmindel = 0
        for i=vFrom, vto do 
		 y = a*i + b	
		 if vMinindex < vMaxindex and y - C(i) > vmindel then  
		   vmindel = y - C(i)
		 end 
		 if vMinindex > vMaxindex and C(i) - y > vmindel then  
		   vmindel = C(i) - y
		 end 		 
        end  

        y = a*index + b	
		 if vMinindex < vMaxindex then  
		   v2 = y - vmindel
		 end 
		 if vMinindex > vMaxindex then  
		   v2 = y + vmindel
		 end 
		 
		 if vMinindex < vMaxindex and O(index) < v2 and vsl == 0 then  
		   vsl = C(vMaxindex)
		   v2 = vsl
		 end 
		 if vMinindex > vMaxindex and O(index) > v2 and vsl == 0 then  
		   vsl = C(vMinindex)
		   v2 = vsl
		 end 
		 
		 if vsl ~= 0 then
		   v2 = vsl
		 end 
		 
	
		 if vMinindex < vMaxindex and O(index) > vsl and vsl ~= 0 then  
		   vsl = 0 --v2 = y - vmindel
		 end 
		 if vMinindex > vMaxindex and O(index) < vsl and vsl ~= 0 then  
		   vsl = 0 --v2 = y + vmindel
		 end 
  
	 --[[
  --]]		 

	
        cind = index  
  end 		
  return v, v2	
end 


function OnCalculate(index)
  
  v = null
  v2 = null 
  if index < 3 then
    vMin = C(index)
    vMax = C(index)
    vMinindex = index
    vMaxindex = index
    voldMinindex = index
    voldMaxindex = index
  else
   --if index > 18000 then         
    if voldMaxindex >= voldMinindex then
      if C(index) > (1 + Settings.delta/100)*vMin then
        vMin = C(index)  
        vMax = C(index) 
        vMaxindex = index
        voldMinindex = vMinindex 
        vFrom = vMinindex  
		
		vsl = 0		
		
        a1 = 0
	    a2 = 0
	    a3 = 0
	    a4 = 0
		v, v2 = calcmnk(index, vFrom, a1, a2, a3, a4, cind, vMinindex, vMaxindex)
		
		--[[
        for i=vFrom, index-1 do 
	     a1 = a1+i*C(i)
	     a2 = a2+i
	     a3 = a3+C(i)
	     a4 = a4+i*i	
        end  

         for i=index, index do 
	      a01 = a1+i*C(i)
	      a02 = a2+i
	      a03 = a3+C(i)
	      a04 = a4+i*i	
         end  		
		
        n = index - vFrom + 1	   
	   
	    if((n*a04 - a02*a02) ~= 0) then
	     a = (n*a01 - a02*a03)/(n*a04 - a02*a02)
		 b = (a03 - a*a02)/n		
         v = a*index + b		 
        end 
	
        cind = index  		
		   	--]]
      else     
       if vMin > C(index) then
          vMin = C(index)
          vMinindex = index
          vFrom = voldMaxindex      
      --  else
      --    vFrom = vMinindex 
        end
	
	
	    v, v2 = calcmnk(index, vFrom, a1, a2, a3, a4, cind, vMinindex, vMaxindex)
	
	 --[[
		if cind ~= index then
         for i=index-1, index-1 do 
	      a1 = a1+i*C(i)
	      a2 = a2+i
	      a3 = a3+C(i)
	      a4 = a4+i*i	
         end  
		end 
		
         for i=index, index do 
	      a01 = a1+i*C(i)
	      a02 = a2+i
	      a03 = a3+C(i)
	      a04 = a4+i*i	
         end  		
		
        n = index - vFrom + 1	   
	   
	    if((n*a04 - a02*a02) ~= 0) then
	     a = (n*a01 - a02*a03)/(n*a04 - a02*a02)
		 b = (a03 - a*a02)/n		
         v = a*index + b		 
        end 		
			
		cind = index  
		   	--]]
      end
    else
     
    if voldMaxindex <= voldMinindex then
      if C(index) < (1 - Settings.delta/100)*vMax then
        vMax = C(index) 
        vMin = C(index)  
        vMinindex = index
        voldMaxindex = vMaxindex
        vFrom = vMaxindex
		
		vsl = 0
		
        a1 = 0
	    a2 = 0
	    a3 = 0
	    a4 = 0
		v, v2 = calcmnk(index, vFrom, a1, a2, a3, a4, cind, vMinindex, vMaxindex)
		
	--[[
        for i=vFrom, index-1 do 
	     a1 = a1+i*C(i)
	     a2 = a2+i
	     a3 = a3+C(i)
	     a4 = a4+i*i	
        end  		
	   
         for i=index, index do 
	      a01 = a1+i*C(i)
	      a02 = a2+i
	      a03 = a3+C(i)
	      a04 = a4+i*i	
         end  		
		
        n = index - vFrom + 1	   
	   
	    if((n*a04 - a02*a02) ~= 0) then
	     a = (n*a01 - a02*a03)/(n*a04 - a02*a02)
		 b = (a03 - a*a02)/n		
         v = a*index + b		 
        end 	
		
        cind = index  			
		   	--]]
      else 
        if vMax < C(index) then
          vMax = C(index)
          vMaxindex = index
          vFrom = voldMinindex    
       -- else  
         -- vFrom = vMaxindex          
        end
		
		v, v2 = calcmnk(index, vFrom, a1, a2, a3, a4, cind, vMinindex, vMaxindex)

--[[
     	if cind ~= index then
         for i=index-1, index-1 do 
	      a1 = a1+i*C(i)
	      a2 = a2+i
	      a3 = a3+C(i)
	      a4 = a4+i*i	
         end  
		end 
		
         for i=index, index do 
	      a01 = a1+i*C(i)
	      a02 = a2+i
	      a03 = a3+C(i)
	      a04 = a4+i*i	
         end  		
		
        n = index - vFrom + 1	   
	   
	    if((n*a04 - a02*a02) ~= 0) then
	     a = (n*a01 - a02*a03)/(n*a04 - a02*a02)
		 b = (a03 - a*a02)/n		
         v = a*index + b		 
        end 	
		
		cind = index  
      	--]]	
      end  
    end
    end
  -- end 
	
	
	--[[
        a1 = 0
	    a2 = 0
	    a3 = 0
	    a4 = 0
        for i=vFrom, index do 
	     a1 = a1+i*C(i)
	     a2 = a2+i
	     a3 = a3+C(i)
	     a4 = a4+i*i	
        end  
		
        n = index - vFrom + 1	   
	   
	    if((n*a4 - a2*a2) ~= 0) then
	     a = (n*a1 - a2*a3)/(n*a4 - a2*a2)
		 b = (a3 - a*a2)/n		
         v = a*index + b		 
        end 	
		
		--]]
 
 --[[
    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   
  
  return v2

end

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