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

по

Палю грааль! Часть 1. Паттерны: 3 белых солдата и 3 офицера.

Основной вопрос один: могут ли паттерны прогнозировать дальнейшее движение цены с вероятностью выше 50%?
Ответ: Да, но не все. И не всегда ))

Палю грааль! Часть 1. Паттерны: 3 белых солдата и 3 офицера.

Попробуем на элементарных примерах разобрать и понять паттерны.
 
Паттерны в трейдинге, это свечные формации — совокупность нескольких японских свечей определенного вида.
Например, возьмем самые простые для восприятия паттерны с названиями «Три белых солдата» и «Три черных вороны».
Из названий понятно что речь идет о трех свечах. Уточняем, о трех подряд последних свечах.
Если указан цвет белый, это растущие свечи (цена актива растет). Если черный, то падающие (цена снижается).

Палю грааль! Часть 1. Паттерны: 3 белых солдата и 3 офицера.

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

Очередной подарок судьбы – ТС на русского сиплого (SPYF)

Привет всем!

Как известно, нынешний СЛ стал гораздо скуднее в плане полезной информации. Во всяком  случае, для алготрейдеров – точно. Поэтому лично я очень рад, что silentbob вернулся и как в былые времена делится с нами своими находками.

Вот тут он https://smart-lab.ru/blog/736499.php совершенно попутно обмолвился, что на ММВБ уже даже простые смертные могут торговать практически фьюч на S&P 500. Признаться, я эту фразу сначала пропустил мимо ушей — видимо смирился, что сипуха – пока не для меня. Не смотря на то, что у меня аж два американских брокера, депошки на них откровенно скромные. Поэтому фьюч на сиплого мне торговать не дают. А тут такой подарок от родной ММВБ!

Безусловно, немного смущает то, что торгуется данный фьюч в наших деревянных. Но с другой стороны, может, это, наоборот, и хорошо – не надо лишний раз депо дробить.


В общем, я сторонник не упускать такие возможности. Инструмент достаточно ликвидный, а в плане диверсификации ТС – уникальный. К тому же у меня есть несколько ТС под сиплого (от того же silentbob’а ), которые я обязательно погоняю на этом инструменте. Короче, связался, успешно договорились, заполучил ТС. И стал с ней разбираться.



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

Дарю торговую систему

    • 15 ноября 2021, 01:13
    • |
    • GOLD
      Популярный автор
  • Еще
Дарю торговую систему на фьючах Сбера с доходностью около 100% годовых без реинвестиций и около 250% с учетом реинвестиций.

Вкладываешь 10 тыс.руб. -> торгуешь фьючом Сбера -> через год выводишь 35 тыс. Красота! Тебе больше не придется работать!))

Доходности системы выглядят так:

Дарю торговую систему

Система работает на минутках. Бэктест: 222 830 минут в 243 торговых днях.

Инструмент: фьюч Сбера на Мосбирже
ГО: 6 000 руб (с запасом)
Начальное депо: 10 000 руб. (с запасом)
Потери на каждую сделку: 5 руб. (комиссии + проскальзывания)
Кол-во сделок за 12 месяцев: 643
Доход на сделку: ~31 руб.
В конце каждого дня закрываем позу.
На утренней свече не открываем позу.
На выходе: 19 716 руб. (без учета реинвестиций)

Система очень простая. Всего один индюк с симметричным Стоп/Тейком. Можно торговать вручную в любом терминале. 

Если пост наберет 100 звёзд, выложу описание. И даже если наберет 99, все равно выложу. Мне она нахрен не нужна, а тебе может сгодиться))

UPD:
Не думал, что пост привлечет внимание. Всем заинтересованным — спасибо! Вечером выложу описание вне зависимости от кол-ва звезд))

UPD:
А вот и та самая система — тынц.

🇺🇸🇷🇺 Spb Exchange - биржа больших возможностей 😎 Как заработать во время обвала?! $$$ 🤖 Автоматизация (QLUA-робот) 🤖

Хорошей практикой диверсификации ваших инвестиций является покупка иностранных акций за валюту. Инвестировать в акции зарубежных компаний можно просто и выгодно через Санкт-Петербургскую биржу (https://spbexchange.ru/). Преимущества очевидны:

  1. Инвестиции производятся в долларах США и Евро
  2. Низкие комиссии за малые объемы инвестиций. Можно покупать акции хоть по одной штуке, тогда как на биржевых площадках в США минимальный торговый лот = 100 акций.

  3. Торговый терминал QUIK с возможностью создавать торговых роботов на языке lua. Пример скрипта в этом посте.

  4. Автоматизированные расчеты и удержание НДФЛ на сделки купли-продажи


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




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

Нейросеть выбрала лучшие акции

На Санкт-Петербужской бирже, по мнению нейросети Investington, сейчас актуальны следующие позиции:

FTI, оптимальная цена для покупки — 7.51$. Цель — 8.0964$. Вероятность роста 69.5%
ATRA, оптимальная цена для покупки — 18.73$. Цель — 19.9541$. Вероятность роста 69.5%
BOOT, оптимальная цена для покупки — 115.46$. Цель — 122.6769$. Вероятность роста 69.4%


Результаты поста от 2021-10-07

MRO, купили по 15.16$. Продали 11 октября по 16.4027$. Итоговый процент +8.2%
BZUN, купили по 18.67$. Продали 11 октября по 19.8371$. Итоговый процент +6.25%
VRTV, купили по 95.28$. Продали 19 октября по 101.1391$. Итоговый процент +6.15%

Итого: из 3 сигналов 3 оказались верными.


Что это такое? || Отчет

Не очень легкие деньги на американских (и не только?) акциях

Проголосовали за то что посложнее.
Давайте посмотрим.

Тест делается на списке Russel3000 за много лет. 

Берем бумаги дороже 20долл, с средним обьемом выше 200000 и торгующиеся выше МА200 на дневке. 
Правила очень простые — бумага упала, ставим лимитку на завтра ниже сегодняшнего лоя на К денежных единиц. К вычисляется адаптивно.

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

Входы так же 10к в акцию. 

Вариант с переносом вот такой получается


Не очень легкие деньги на американских (и не только?) акциях
Большие палки чуть левее середины не смотрим, видимо обратный сплит попался.

Средний трейд что-то вроде 0.7%, желающие могут все проверить самостоятельно. 


Практика показывает, что если у вас 50 сигналов за день, то нужно отбирать первые 5-10 по силе сигнала. Силу сигнала можно определять различно.

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

📈 #USDRUB — Неизбежный подъём с целями...

📈 #USDRUB — Неизбежный подъём с целями...

Предпочтительный подсчёт  

  • USDRUB (IDC): 🕐1W
📈 #USDRUB — Неизбежный подъём с целями...

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

Тициан | USDRUB

Повторяю свой пост от 13 сентября 2020 года.

___________________________________________________________

Позвольте пованговать!

Многих интересует курс доллара.

Сегодня вам его нарисует Тициан Вечеллио.

 Тициан | USDRUB
Почему он?

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

Кроме него, спрогнозировать столь популярную валютную пару, мне сегодня помогают Евклид, Лука Пачоли, сам Леонардо, Фибоначчи и многие другие, причастные к Золотому сечению.

Что будет, если вы погуглите “Золотое сечение”?

Вот это:

 Тициан | USDRUB



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

Индикатор уровней и каналов Zigzag_channel_fast


Подкорректировал индикатор

Индикатор уровней и каналов Zigzag_channel_fast


--[[
индикатор: 
канал на последнем зигзаге
индикатор строит канал по зигзагу, показывает слом тренда при выходе цены за границы канала
параметры:
  Procent - величина зигзага в %
  k - коэффизиент ширины канала
  Ext - =0-канал стоится по средним =1-канал стоится по экстремуму
--]]
Settings=              
        {                          
            Name = "Zigzag_channel_fast",   -- название индикатора
            Procent=5,               -- величина зигзага в % 
            k=2,			         -- коэффизиент ширины канала
            Ext=1, -- =0-канал стоится по средним =1-канал стоится по экстремуму
            shif=0,			
            line=                                     
                {                               
                    {  
                        Name = "zigzagline",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(120,90, 140)
                    },
					{  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0, 0)
                    },
					{  
                        Name = "cur2",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,200, 200)
                    },
					{  
                        Name = "cur3",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(200,200, 0)
                    },
					{  
                        Name = "cur4",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0, 0)
                    },
					{  
                        Name = "cur5",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 255)
                    },
					{  
                        Name = "cur6",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255,0, 0)
                    },
					{  
                        Name = "cur7",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255,0, 0)
                    },
					{  
                        Name = "cur8",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255,0, 0)
                    },
					{  
                        Name = "cur9",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255,0, 0)
                    },
					{  
                        Name = "cur10",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255,0, 0)
                    },
					{  
                        Name = "cur11",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255,0, 0)
                    }
                }
       }


function Init()

  y1 = nil
  y2 = nil
  y3 = nil  
  x1 = 1
  x2 = 1
  x3 = 1
  
  oldindex = 1
  
  a_01 = 0
  b_01 = 0
  a_02 = 0
  b_02 = 0
  
  vminus_01 = 0
  vplus_01 = 0  
  vminus_02 = 0
  vplus_02 = 0  
  vFrom_01 = 1
  vTo_01 = 1
  vFrom_02 = 1
  vTo_02 = 1
  
  vminus = 0
  vplus = 0
  vminus_n = 0
  vplus_n = 0  
  
  ret = 0
  
  last_ind = 1

  v1=nil
  v2=nil
  v3=nil
  v4=nil
  v5=nil
  v6=nil
  v7=nil
  v8=nil
  v9=nil
  v10=nil
  
  return 10
end

function recalcline(num, index, rec)

 if index == Size()-sh and rec == 0 then
   for i = 1, index do
     if m == 1 then 		
	   SetValue(i, 3, nil)
	   SetValue(i, 4, nil)
	 end
     if m == 2 then 		
	   SetValue(i, 6, nil)
	   SetValue(i, 7, nil)
	 end 	 
   end 
 end 

 if index == Size()-sh or rec == 1 then
	
  if num == 1 then 
	  vFrom = 0 --[[ --]] 
	  vTo = 0
	if x3 < x2 then 
	    vFrom = x3
	    vTo = x2
	  else
	    vFrom = x2
	    vTo = x3
	  end 
  end
  if num == 2 then 
	  vFrom = 0
	  vTo = 0
	  if x1 < x2 then 
	    vFrom = x1
	    vTo = x2
	  else
	    vFrom = x2
	    vTo = x1
	  end 
  end    
  
      if vFrom < 1 then
	    vFrom = 1
	  end 	
  
	  a1 = 0
	  a2 = 0
	  a3 = 0
	  a4 = 0
	  n = 0
	  a = 0
	  b = 0
      for i = vFrom, vTo do
        n=n+1	  
	    a1 = a1+i*C(i)
	    a2 = a2+i
	    a3 = a3+C(i)
	    a4 = a4+i*i	
	  end
	  if((n*a4 - a2*a2) ~= 0) then	  
	  
	  -- if oldindex ~= Size() then
	   a = (n*a1 - a2*a3)/(n*a4 - a2*a2)
	   b = (a3 - a*a2)/n

	   vminus = 0
	   vplus = 0
	   vminus_n = 0
	   vplus_n = 0
       for i = vFrom, index do
        y = a*i + b		
		if i>0  then 
		if C(i) < y and i <= vTo then
		  if ex == 0 then 
	        vminus = vminus + y - C(i)
            vminus_n = vminus_n + 1	
		  else 
		    if i == vFrom then 
			  vminus = 0
			end
            if y-C(i) > vminus then
              vminus = y-C(i) 			
            end				
		  end 
        end	
        end		
		if i>0  then 
		if C(i) > y and i <= vTo then
		  if ex == 0 then 
	        vplus = vplus + C(i) - y
	        vplus_n = vplus_n + 1
		  else 
		    if i == vFrom then 
			  vplus = 0
			end		  
            if C(i)-y > vplus then
              vplus = C(i)-y 			
            end			
		  end 
		end 
		end  
        m = 0
        if C(vTo) >	C(vFrom) and y < C(vTo)+0.1*(C(vTo)-C(vFrom)) and y > C(vFrom)-0.1*(C(vTo)-C(vFrom)) then
          m = 1
		end 	
        if C(vTo) <	C(vFrom) and y < C(vFrom)+0.1*(C(vFrom)-C(vTo)) and y > C(vTo)-0.1*(C(vFrom)-C(vTo)) then
          m = 1
		end 
        if m == 1 then 		
	      --SetValue(i, 2, y)
        end 		
	   end
	   --end
	  
	   if ex == 0 then  
	    if vminus_n ~= 0 then
	     vminus = kk*vminus/vminus_n          
	    end 
	    if vplus_n ~= 0 then
	     vplus = kk*vplus/vplus_n          
	    end 
	   end 	  
      end

  if num == 1 then 
    a_01 = a
    b_01 = b 
    vminus_01 = vminus
    vplus_01 = vplus
	vFrom_01 = vFrom
    vTo_01 = vTo
  end
  if num == 2 then 
    a_02 = a
    b_02 = b  
    vminus_02 = vminus
    vplus_02 = vplus
	vFrom_02 = vFrom
    vTo_02 = vTo	
  end  
  return 1 
 end
 
 return 0
end 

function levels(x, y, num, index)

  if y ~= nil and x ~= 1 then 
  
    for i = 1, index do	
	  if i > x then 
	    SetValue(i, num, y)
      else 		
	    SetValue(i, num, nil)
	  end 
    end
	
  end 

end


function OnCalculate(index)
  
  de = Settings.Procent
  kk = Settings.k 
  ex = Settings.Ext
  sh = Settings.shif
  
  v1=nil
  v2=nil
  v3=nil
  v4=nil
  v5=nil
  v6=nil
  v7=nil  
  v8=nil
  v9=nil
  v10=nil  
  
  if index > Size()-sh then  
    --return nil, nil, nil, nil, nil, nil, nil 	 
    return v1, v2, v3, v4, v5, v6, v7, v8, v9, v10 
  end 
  
  vl = C(index)
  if vl~=nil then 
   if index == 1 then 
	y1 = vl
    y2 = vl
   else   
	  if C(index) > y1*(1+de/100) and y1 < y2 then 
	    x3 = x2
	    x2 = x1
		y3 = y2
	    y2 = y1	
	    x1 = index 
	    y1 = C(index)	
        ret = recalcline(1, index, 0)
        ret = recalcline(2, index, 0)   
        levels(x1, y1, 8, index)		
		levels(x2, y2, 9, index)
		levels(x3, y3, 10, index)
	  end 	
	  if C(index) > y1 and C(index) > y2 then 
	    x1 = index 
	    y1 = C(index)	  			  
	  end 
	  	  		
	  if C(index) < y1*(1-de/100) and y1 > y2 then 
	    x3 = x2
	    x2 = x1
		y3 = y2		
	    y2 = y1
	    x1 = index 
	    y1 = C(index)	  	
        ret = recalcline(1, index, 0)
        ret = recalcline(2, index, 0)
        levels(x1, y1, 8, index)		
		levels(x2, y2, 9, index)
		levels(x3, y3, 10, index)
	  end 	
	  if C(index) < y1 and C(index) < y2 then 
	    x1 = index 
	    y1 = C(index)	  			  
	  end 	  	  		
	end
  end 	
	
    --[[ 
  if x1 ~= index then 
    curfrom = x1
	curto = index
  else 
    curfrom = x2
	curto = x1
  end 
 
  if curto ~= curfrom and curfrom ~= nil and curto ~= nil then 
    if C(curto) ~= nil and C(curfrom) ~= nil then 
      k = (C(curto)- C(curfrom))/(curto- curfrom)  
      for i = curfrom, index  do
        curv = i*k + C(curto) - curto*k  		          
	    SetValue(i, 1, curv)
      end   	
	end 
  end 
  

 	--]]

	if index == Size()-sh and ret == 0 then
    
        ret = recalcline(1, index, 1)
        ret = recalcline(2, index, 1)	
		
		levels(x1, y1, 8, index)		
		levels(x2, y2, 9, index)
		levels(x3, y3, 10, index)
    
    end 	
	
	
	
	if index == Size()-sh  then  --- and index ~= last_ind
		  
	   if vTo_01 - vFrom_01 > 500 then
         vFrom_01 = vTo_01-500 
       end 	  
	   
       for i = 1, index do		   		
	     SetValue(i, 3, nil)	
         SetValue(i, 4, nil)	 
	     SetValue(i, 6, nil)	
         SetValue(i, 7, nil)			 
       end	   
		  
       for i = vFrom_01, index do
        y = a_01*i + b_01 + vplus_01		
        m = 0
        if C(vTo_01) >	C(vFrom_01) and y < C(vTo_01)+0.3*(C(vTo_01)-C(vFrom_01)) and y > C(vFrom_01)-0.3*(C(vTo_01)-C(vFrom_01)) then
          m = 1
		end 	
        if C(vTo_01) <	C(vFrom_01) and y < C(vFrom_01)+0.3*(C(vFrom_01)-C(vTo_01)) and y > C(vTo_01)-0.3*(C(vFrom_01)-C(vTo_01)) then
          m = 1
		end 
        if m == 1 then 		
	      SetValue(i, 3, y)
		  if i == index then 
		    v3 = y 
		  end 
        end 	
		
        y = a_01*i + b_01 - vminus_01		
        m = 0
        if C(vTo_01) >	C(vFrom_01) and y < C(vTo_01)+0.3*(C(vTo_01)-C(vFrom_01)) and y > C(vFrom_01)-0.3*(C(vTo_01)-C(vFrom_01)) then
          m = 1
		end 	
        if C(vTo_01) <	C(vFrom_01) and y < C(vFrom_01)+0.3*(C(vFrom_01)-C(vTo_01)) and y > C(vTo_01)-0.3*(C(vFrom_01)-C(vTo_01)) then
          m = 1
		end 
        if m == 1 then 		
	      SetValue(i, 4, y)
		  if i == index then 
		    v4 = y 
		  end 
        end 			
	   end	  
	    
	   if vTo_02 - vFrom_02 > 500 then
         vFrom_02 = vTo_02-500  
       end 	 
	  
       for i = vFrom_02, index do
        y = a_02*i + b_02 + vplus_02		
        m = 0
        if C(vTo_02) >	C(vFrom_02) and y < C(vTo_02)+0.1*(C(vTo_02)-C(vFrom_02)) and y > C(vFrom_02)-0.1*(C(vTo_02)-C(vFrom_02)) then
          m = 1
		end 	
        if C(vTo_02) <	C(vFrom_02) and y < C(vFrom_02)+0.1*(C(vFrom_02)-C(vTo_02)) and y > C(vTo_02)-0.1*(C(vFrom_02)-C(vTo_02)) then
          m = 1
		end 
        if m == 1 then 		
	      SetValue(i, 6, y)
		  if i == index then 
		    v6 = y 
		  end 
        end 	
		
        y = a_02*i + b_02 - vminus_02		
        m = 0
        if C(vTo_02) >	C(vFrom_02) and y < C(vTo_02)+0.1*(C(vTo_02)-C(vFrom_02)) and y > C(vFrom_02)-0.1*(C(vTo_02)-C(vFrom_02)) then
          m = 1
		end 	
        if C(vTo_02) <	C(vFrom_02) and y < C(vFrom_02)+0.1*(C(vFrom_02)-C(vTo_02)) and y > C(vTo_02)-0.1*(C(vFrom_02)-C(vTo_02)) then
          m = 1
		end 
        if m == 1 then 		
	      SetValue(i, 7, y)
		  if i == index then 
		    v7 = y 
		  end 
        end 			
	   end	
	  
	  last_ind = index 
	end 
  
 
    return v1, v2, v3, v4, v5, v6, v7, v8, v9, v10 

end

 





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