Избранное трейдера Денис Е.

по

Вот так можно (нужно) скальпить большие гэпы

Инструмент РИ.
Маржа +32210 пунктов РИ (42140 руб).
Комис бирже 2220р.
Комис брокеру — фикс.
Количество трейдов 14.
Оборот 1258 контрактов (629 куплено и 629 продано).
Количество потраченного времени — 15 минут.

Вот так можно (нужно) скальпить большие гэпы



Тест EMA (14, close), EMA (28, close), EMA (63, close) на исторических данных ВТБ

    В своей первой статье https://smart-lab.ru/blog/536832.php из цикла «Тест EMA (14, close), EMA (28, close), EMA (63, close)» я кратко рассказал о самом популярном трендовом техническом индикаторе «скользящее среднее (MA)» и протестировал его эффективность на исторических данных акций «Сбербанка». Если бы трейдер входил в сделки и выходил из них, используя только три EMA и их пересечения, то за 20 лет он бы заработал 29 344,09 % от изначальной суммы. Результат, конечно, невероятный. Хотя, покупая бумагу в первый день торгов на бирже и не продавая по сей день, можно было получить доходность на несколько тысяч больше. Благо общий тренд за столько лет восходящий...

    Теперь я задался вопросом: «Каким будет итоговый результат на исторических данных акций «ВТБ», если все условия торговой системы останутся прежними?». Акции «ВТБ» я решил рассмотреть не просто так. Во-первых, это попросили сделать в комментариях к первой статье. А, во-вторых, бумаги данной компании находятся в общем нисходящем движении с момента начала торгов на бирже. Если бы долгосрочный инвестор приобрел акции «ВТБ» в мае 2007 года, допустим, по цене 0,1416 р., то к сегодняшнему дню

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

С 6-го мая будут торговаться микро контракты на индексы. СМЕ.

Только что сообщил Рустам Мингазов на своей странице в ВК.
Представитель ОЕС в России.

С понедельника с 6-го мая начнут торговать МИКРО контракты на индексы:
Микро контракты В ДЕСЯТЬ РАЗ МЕНЬШЕ миниконтрактов.
Биржевая маржа также меньше примерно в 10 раз.
Но ВНУТРИДНЕВНАЯ МАРЖА ПОКА ЧТО установлена такой же, как и биржевая. Это связано с тем, что торгов еще не было, неизвестно какая будет ликвидность.
Уверен, что по мере расторговки этих фьючерсов внутридневная маржа будет снижаться.
В терминале эти фьючерсы уже появились.
С 6-го мая будут торговаться микро контракты на индексы. СМЕ.
С 6-го мая будут торговаться микро контракты на индексы. СМЕ.



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

Отзыв о роботе "Sigma" от автора Робот - скальпер

Доброго времени суток, уважаемые форумчане.

«Взяться за перо» меня заставила моя неосмотрительная покупка, которая стоила мне впустую потраченных денег. Суть в том, что 20.03.2019 я купил и запустил торговый робот «Sigma», который предлагается на «официальном сайте его автора», называющегося Робот – скальпер. Что бы не тратить время и дать Вам возможность быстро ознакомиться с тем, что это такое, даю ссылку: http://robot-scalper.ru/

За 29 900 рублей я получил, цитата: «Полнофункциональный безлимитный робот «Sigma» с пожизненной лицензией».   Проблема, стара, как мир. Робот «расхвален до небес»: он предназначен для работы на флэте, но горазд как минимум не сливать и на любом тренде. Робот разработан для торговли на фьючерсах Московской биржи через терминал QUIK. По словам автора, которого зовут Денис Александрович С. (об этом далее чуть подробнее), на флэте робот закрывает в плюс 80-90% сделок. Работает с добавками (1 добавка равна 1 ГО) по схеме 1-2-3-4 (рекомендованные по умолчанию) или 1-1-2-2 (для трусливых). Но в Грааль «Sigma» превращается, если использовать не 4 минимально рекомендованные добавки, а 6 по схеме 1-2-3-4-5-6 или, все-таки для трусливых, 1-1-2-2-3-3. В качестве демонстрации работы робота, но не в качестве штатных рабочих настроек, предложено в первые торговые дни использовать схему 1-1-1-1. Все это изложено в «Руководстве пользователя», которая поставляется уже после покупки вместе с роботом. Но в ПЯТНИЦУ автор Денис категорически не советовал торговать, объясняя это тем, что пятница, это «трендовый день».

В первые две недели своей торговли (т.е. всего 8 торговых дней с 20/03 по 4/04) я торговал по схеме 1-1-1-1-1-1 на рекомендованных автором в качестве основных (для которых робот и разработан) инструментах – фьючерсах RI + Si. Робот совершал на флэте по 46-48 сделок за торговую сессию, из которых 24-26 были … УБЫТОЧНЫМИ. Каким-то чудом я оказывался в прибыли на 1000 – 1200 рублей. Я подумал, что все дело в консервативных настройках и поменял их на рекомендованные 1-2-3-4. Я перешел на 4 добавки т.к. я заметил, что 5-ая и 6-ая добавки вообще НИКОГДА не работают. И тут на рынке начались безоткатные тренды. Я стал сливать по 6000 и более рублей за сессию. Через 2 торговых дня я перестроился на 1-1-2-2. Слив уменьшился примерно до 3000 за сессию. Через 2 сессии я перестроился на 1-1-1-1. Слив продолжился по 3000 за сессию. Я выключил робота.

ВЫВОДЫ.

— Робот «Sigma» – полный отстой. 

— Он дает профит исключительно на идеальном флэте и только при настройках 1-1-1-1. При малейшем тренде он сливает при любых настройках.

— Половина сделок являются убыточными при самых идеальных для робота условиях рынка, прибыль оставшейся прибыльной половины сделок лишь на 1000 рублей в день превышает убыток. Теоретически: у «Sigma» в месяце примерно 16 торговых дней. Максимальный доход 16.000. Минус налог 13%. Минус аренда VDN. Минус комиссия за ввод и вывод средств. Минус окупаемость самого робота. Что остается? Правильно. Дай Бог, половина.

Но даже если представить, что я зарабатываю на торговом роботе 16 000 рублей в месяц, то это заработком назвать нельзя. Моя мама получает пенсию 20 000 в месяц. Мне  даже стыдно говорить, что мой доход от алготрейдинга меньше, чем пенсия моей 80-ти летней мамы, при том, что мой депозит составлял в первый день торговли 220 000 рублей. 

Пару слов о других инструментах – фьючерсах SR и GZ. На них профит в лучшие дни приносил по 50-100 рублей в день. Так что через 8 сессий я их вообще не включал – что смеяться то?  

И еще пару слов о личности автора «Sigma». Так как я впервые работал с терминалом QUIK, я попросил распаковать и настроить мне роботов на QUIK на VDN. За каждую консультацию я перечислял ему на карту Сбербанка по 1000 р. Денис с наслаждением тянул время. Потом ему показалось этого мало, и он потребовал с меня 5.000 рублей за завершение работ – я заплатил т.к. очень боялся ошибиться в настройках и установке.  В сумме я заплатил ему за помощь около 10.000 р, хотя техподдержка у него заявлена бесплатная. 

*персональные данные удалены из поста*


Тестирование робота AVP в программе Wealth-Lab

    • 13 апреля 2019, 17:05
    • |
    • AlexChi
  • Еще

 

Введение


На сегодняшний день у меня есть три краткосрочные спекулятивные торговые системы и, соответственно, три одноименных торговых робота:
  1. CandleMax
  2. PVVI
  3. AVP

Описание и тестирование в программе Wealth-Lab первых двух роботов я уже приводил. Вот соответствующие ссылки:

Тестирование рабочей свечной модели на исторических данных

Тестирование модели CandleMax в программе Wealth-Lab

Индикатор PVV (price/volume/volatility)

Тестирование робота PVVI в программе Wealth-Lab

Сейчас настало время дать краткое описание и привести тестирование в программе Wealth-Lab третьей торговой системы, которая у меня сейчас в работе.

Торговая система AVP (average volume/price) не является свечной моделью, как CandleMax, и не основана на красивой математической формуле, как система PVVI. Из трех моих спекулятивных роботов, робот AVP выдает сигналы реже всех. Тем не менее, результативность этого робота практически совпадает с результативностью робота PVVI, лишь совсем немного ей уступая.



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

TSLab: как жахать на всю котлету (реинвест)

Новичкам алготрейдинга.

Основным способом получения хулиардов процентов на тестировании стратегии является реинвест прибыли.
Без этого вы получите свою скучную вялую эквити, так и не поняв, какой потенциал хранится в вашей стратегии.
Если у стратегии постоянные положительные результаты за определенный период (часы или недели — роли не играет), то надо показывать график с реинвестом.
Как делать реинвест на TSLab без кода, только на кубиках (код то писать большинству лень).
Очень просто. Рассмотрим для фьючей.
Необходимо определить две константы: «стартовый депозит» и «стоимость ГО одного контракта». Тогда нам будет понятно, какое количество контрактов можно открыть изначально. (Не надо указывать стартовый капитал в настройках TSLab, пусть там будет ноль, выведите его в константу — потом, поверьте, будет проще в настройках).
Чтобы отработать с минимума, поставьте стартовый капитал = ГО, то есть стратегия начнет работу с одного контракта.
Плюс к этому добавляем в формулу кубик «Доход за всё время».

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

Тестирование робота PVVI в программе Wealth-Lab

    • 11 апреля 2019, 22:11
    • |
    • AlexChi
  • Еще

 

Введение


Торговая система PVVI основана на индикаторе PVV (price/volume/volatility). Данный индикатор связывает в единую формулу цену, объем и волатильность. Краткое и очень эмоциональное описание истории появления этой формулы я привел в своей предыдущей статье:

Индикатор PVV (price/volume/volatility)

Т.к. по образованию я математик, а по профессии программист, то первым делом сразу же после формализации торговой системы PVVI я закодировал одноименного робота, который и служит мне верой и правдой уже более 3 лет.

В этой статье приведены результаты тестирования робота PVVI в программе Wealth-Lab.

Краткое описание робота PVVI

Разумеется, я не раскрою секрет полученной формулы, но краткое описание основных особенностей этой торговой системы, разумеется, приведу. Итак, вот основные характеристики робота PVVI:

  1. Это краткосрочная спекулятивная стратегия, среднее время удержания позиции составляет 3 дня.
  2. Торговля осуществляется на дневном таймфрейме.
  3. Сделки совершаются только в лонг.
  4. Покупка осуществляется за несколько минут до закрытия торгов.
  5. Стоп-лосс и тэйк-профит равны одной среднедневной волатильности по бумаге за 10 последних торговых дней (2 недели).


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

TSLab Мартингейл

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

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

Пример реализации на кубиках TSLab (без кода) простейшего, (всегда сливающего, до добра не доводящего, и рано или поздно накажущего) но всеми очень любимого Мартингейла для ФОРТС.
Просто пример, для вопроса очередного граалеищщущего новичка «с чего начать».
Скрипт (внезапно) даже зарабатывает. Ну, если параметры подогнать, разумеется.
Выглядит следующим образом:

Мартингейл Скрипт

Для упрощения схемы (это всё же просто пример) для закрытия сделки я применил не отдельные Тейк и Стоп, а кубик «Трейлинг Стоп Абс», при этом выставил в нем Stop Loss = Trail Enable, а Trail Loss = 0, для того, чтобы (теоретически) закрывались сразу при касании тейка. Можете поменять параметры и попробовать еще и трейлить.

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

Доработал zigzag5

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

Доработал zigzag5
код индикатора:
Settings=              
        {                          
            Name = "Zigzag5",   -- название индикатора
            delta=2,                  -- параметр индикатора                          
            deltaY=1,                  -- параметр индикатора   			
            linedeltaY=0.75,                  -- параметр индикатора   				
            line=                                     
                {                               
                    {  
                        Name = "zigzagline3",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,255, 0)
                    },
                    {  
                        Name = "upline",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255,0, 0)
                    },
                    {  
                        Name = "lowline",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 255)
                    },
                    {  
                        Name = "declineline",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255,0, 0)
                    },
                    {  
                        Name = "upline2",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(255,0, 0)
                    },
                    {  
                        Name = "lowline2",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0, 255)
                    },
                    {  
                        Name = "declineline2",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(255,0, 0)
                    }				
                }
       }
	
	
function getradius(x, y)
  return math.sqrt(Settings.deltaY*y*y+x*x)
end

function koef(val)
  return 1 - 1/(1-1/val)
end


function Init()

  vMin = 0
  vMax = 0
  vMinindex = 0
  vMaxindex = 0
  voldMinindex = 0
  voldMaxindex = 0
  upval = 0
  lowval = 0
  upindex = 1
  lowindex = 1  
  veu = nil
  vel = nil
  curfrom = 1
  curto = 1

  return 7
end


function OnCalculate(index)
  local printz = 0
  vsize = Size()	  

  ve = nil
  veu = nil
  vel = nil 
  curv = nil 
  veu2 = nil
  vel2 = nil 
  curv2 = nil  
  
  if index == 1 then
    vMin = C(index)
    vMax = C(index)
    vMinindex = index
    vMaxindex = index
    voldMinindex = index
    voldMaxindex = index
    ve = C(index)  
	  
  else
         
    if voldMaxindex >= voldMinindex then
        
       
	  if C(index) > (1 + Settings.delta/100)*vMin then
         
        vMin = C(index)  
        vMax = C(index) 
        vMaxindex = index
        voldMinindex = vMinindex 
        vFrom = voldMaxindex  
        vTo = vMinindex
        printz = 1		
		
        if (C(vMinindex) > C(vsize)) and (upval > koef(getradius(vsize - vMinindex, C(vMinindex) - C(vsize)))) then
		  upval = koef(getradius(vsize - vMinindex, C(vMinindex) - C(vsize)))
		  upindex = vMinindex
		end
        if (C(vMinindex) < C(vsize)) and (lowval > koef(getradius(vsize - vMinindex, C(vMinindex) - C(vsize)))) then
		  lowval = koef(getradius(vsize - vMinindex, C(vMinindex) - C(vsize)))
		  lowindex = vMinindex
	   end	
	   
	    curfrom = voldMaxindex
	    curto = voldMinindex	  	   
	      	    
      else      
	  
        if vMin > C(index) then
          vMin = C(index)
          vMinindex = index
          vFrom = voldMaxindex      
          vTo = index
          printz = 0
		  curto = index		
        else
          vFrom = vMinindex 
          vTo = index
          printz = 0
        end 		
	  
	    curfrom = voldMaxindex	
		
      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 = voldMinindex
        vTo = vMaxindex
        printz = 1
	
        if (C(vMaxindex) > C(vsize)) and (upval > koef(getradius(vsize - vMaxindex, C(vMaxindex) - C(vsize)))) then
		  upval = koef(getradius(vsize - vMaxindex, C(vMaxindex) - C(vsize)))
		  upindex = vMaxindex
		end                   
        if (C(vMaxindex) < C(vsize)) and (lowval > koef(getradius(vsize - vMaxindex, C(vMaxindex) - C(vsize)))) then
		  lowval = koef(getradius(vsize - vMaxindex, C(vMaxindex) - C(vsize)))
		  lowindex = vMaxindex
		end		
		
	    curfrom = voldMinindex		
	    curto = voldMaxindex
		
      else 
	    	    
        if vMax < C(index) then
          vMax = C(index)
          vMaxindex = index
          vFrom = voldMinindex    
          vTo = index
          printz = 0
		  curto = index		
        else  
          vFrom = vMaxindex  
          vTo = index        
          printz = 0
        end
		
	    curfrom = voldMinindex
		
      end  

	
    end
    end
 
    if (printz == 1) or (Size() == index) then
      for i = vFrom, vTo do
        k = (C(vTo)- C(vFrom))/(vTo- vFrom)
        v = i*k + C(vTo) - vTo*k
        SetValue(i, 1, v)
        ve = v
      end   
      if (Size() == index) then
        ve = C(index)
        if voldMaxindex >= voldMinindex then
          vFrom = voldMaxindex 
          vTo = vMinindex
        end 
        if voldMaxindex <= voldMinindex then  
          vFrom = voldMinindex
          vTo = vMaxindex
        end 
        for i = vFrom, vTo do
          k = (C(vTo)- C(vFrom))/(vTo- vFrom)
          v = i*k + C(vTo) - vTo*k
          SetValue(i, 1, v)
        end  
           
        -- up level line 
        if upindex ~= nil then
		  if C(upindex) > C(index) then		
            for i = upindex, index do
              SetValue(i, 2, C(upindex))
              SetValue(i, 5, C(upindex)-Settings.linedeltaY*C(vsize)/100)			  
            end  	
            veu = C(upindex)	
          end 		  
		end
		
		-- low level line 
		if lowindex ~= nil then
		  if C(lowindex) < C(index) then
            for i = lowindex, index do
              SetValue(i, 3, C(lowindex))
              SetValue(i, 6, C(lowindex)+Settings.linedeltaY*C(vsize)/100)				  
            end  			
            vel = C(lowindex)
         end
       end		
        
       if voldMaxindex >= voldMinindex then     
	    vsign = -1
		if curfrom == voldMinindex then
		  vsign = -1
		end
		if curfrom == voldMaxindex then
		  vsign = 1
		end		

        -- inclined line
	    if curto- curfrom > 0 then
	     maxcurv = 0
	     k = (C(curto)- C(curfrom))/(curto- curfrom)
         for i = curfrom, curto  do        
          curv = i*k + C(curto) - curto*k	
          if vsign == -1 then  		  
 		    if L(i) < curv then
		      if maxcurv < curv - L(i) then
		        maxcurv = curv - L(i)
              end
            end
		  else
 		    if H(i) > curv then
		      if maxcurv < H(i) - curv then
		        maxcurv = H(i) - curv
              end
            end		  
		  end
         end   		
         for i = curfrom, index  do
          curv = i*k + C(curto) - curto*k + vsign*maxcurv	  
          SetValue(i, 4,curv)
		  curv2 = curv+ vsign*Settings.linedeltaY*C(vsize)/100
		  SetValue(i, 7,curv2)		  
         end   		
	    end
	    curv = nil	
	   end 
	  
       if voldMaxindex <= voldMinindex then
	    vsign = -1
		if curfrom == voldMaxindex then
		  vsign = 1
		end		
		if curfrom == voldMinindex then
		  vsign = -1
		end			
  
        -- inclined line
        if curto- curfrom > 0 then
         maxcurv = 0
         k = (C(curto)- C(curfrom))/(curto- curfrom)
         for i = curfrom, curto  do        
          curv = i*k + C(curto) - curto*k		  
          if vsign == -1 then  		  
 		    if L(i) < curv then
		      if maxcurv < curv - L(i) then
		        maxcurv = curv - L(i)
              end
            end
		  else
 		    if H(i) > curv then
		      if maxcurv < H(i) - curv then
		        maxcurv = H(i) - curv
              end
            end		  
		  end
         end   		
         for i = curfrom, index  do
          k = (C(curto)- C(curfrom))/(curto- curfrom)
          curv = i*k + C(curto) - curto*k + vsign*maxcurv	  		
          SetValue(i, 4,curv)
		  curv2 = curv+ vsign*Settings.linedeltaY*C(vsize)/100
		  SetValue(i, 7,curv2)
         end   		     
        end
	    curv = nil		
       end	  
	          
      end
    end

  end  
  
  return ve, veu, vel, curv, veu2, vel2, curv2  
  
end



  • обсудить на форуме:
  • Quik Lua

12 причин открыть брокерский счет в Interactive Brokers

DTI Algorithmic — финансовый советник на платформе Interactive Brokers (IB). За 10 лет на рынке мы успели поработать со многими российскими и иностранными брокерами, и в 2013 г. осознанно сделали выбор в пользу IB.

#справка Interactive Brokers LLC — американский онлайн—брокер. Материнская компания IB работает с 1978 года, ее номер в Комиссии по ценным бумагам и биржам США (SEC) — 0001381197. Данные о компании:

  • кратко и подробно о брокере на сайте американской Службы регулирования отрасли финансовых услуг (FINRA),
  • регуляторная информация об Interactive Brokers Group на сайте SEC,
  • данные о руководителях, финансовой устойчивости и рисках IB для Комиссии по торговле товарными фьючерсами (CFTC) и Национальной фьючерсной ассоциации (NFA).


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

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