Постов с тегом "ТОРГОВЫЕ РОБОТЫ": 6003

ТОРГОВЫЕ РОБОТЫ


торговый робот - это автоматизированная торговая система, принимающая решения и отдающая приказы на выполнение рыночных заявок на основе программного алгоритма.

В этом разделе вы найдете самые актуальные записи по теме торговые роботы.

Как я потерял веру в человечество.

    • 22 декабря 2021, 15:59
    • |
    • 3Qu
  • Еще
Было это в году 11-м или 12-м. В эти годы Финам зачастил приглашать меня на свои семинары. Ходил только на 3 из них. Первый семинар в подвале Финама (они в основном там все проходили) был оч неплох. О чем конкретно, уже не помню, но в перерыве давали халявный кофе с булками и баунти-сникерсами. Такая теплая дружественная обстановка. В перерыве прибился ко мне какой-то мужичек, который что-то говорил. Задним числом, по косвенным признакам, подозреваю, что это был наш Хамстер.
Второй семинар был о том, как зарабатывать на рынке. Лектор телосложением напоминал маршала Жукова, но ничего конкретного сказано не было. На любой вопрос ответ был стандартный — это вы узнаете на курсе, который вы оплатите. Могли бы, хоть кофием угостить.
Третий семинар — это был монолог нашего АГ. До этого я его уже неск раз видел-слышал на семинарах РТС и конференциях по алготорговле. АГ у меня прочно ассоциировался с длинными хвостами.
На этот раз АГ рассказывал о своей торговой системе, не помню, приглашал ли он делать взносы и стать инвесторами.) Наверное сейчас, после многих лет, что-нибудь перевру, но основная суть его системы: проводим линию регрессии, определяем стандартное отклонение, задаем порог отклонения котировок от линии регрессии, и при превышении этого порога покупаем или продаем активы. Это называется — пороговое устройство. В теории сигналов — это самая простейшая и самая примитивная обработка, которую можно придумать.

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

Индикатор горизонтальных уровней

Индикатор ZIGZAGLEVELS горизонтальных уровней
Индикатор горизонтальных уровней
--[[
параметры: 
Procent - процент зигзага 
--]]
Settings={
Name="ZIGZAGLEVELS",
Procent=5.0,
levels=6,
delta=0.2,
    line=                                     
                {  
					{  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 255)
                    },				
					{  
                        Name = "cur2",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 255)
                    },
					{  
                        Name = "cur3",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 255)
                    },
					{  
                        Name = "cur4",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 255)
                    },				
					{  
                        Name = "cur5",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 255)
                    },
					{  
                        Name = "cur6",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(0,0, 255)
                    }					
                }
}

function Init()
  
  y1 = nil
  y2 = nil
  x1 = 1
  x2 = 1
  levelsy={}
  levelsx={}  
  cntlevels=0
      	
  return 6
  
end

function OnCalculate(index)

  de = Settings.Procent
  levels = Settings.levels
  delta = Settings.delta
  sz = Size()

  vl = C(index)
  if index <= 1 then 
	y1 = vl
    y2 = vl
	cntlevels=0
  else   
	  if C(index) > y1*(1+de/100) and y1 < y2 then 
	    x2 = x1
	    y2 = y1	
	    x1 = index 
	    y1 = C(index)	        
        cntlevels = cntlevels + 1		
		levelsx[cntlevels]=x2
	    levelsy[cntlevels]=y2        
	  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 
	    x2 = x1
	    y2 = y1
	    x1 = index 
	    y1 = C(index)	  		
		cntlevels = cntlevels + 1
		levelsx[cntlevels]=x2
	    levelsy[cntlevels]=y2		
	  end 	
	  if C(index) < y1 and C(index) < y2 then 
	    x1 = index 
	    y1 = C(index)	  			  
	  end 	  	  		
	end 	
  
  if x1 ~= index then 
    curfrom = x1
	curto = index
  else 
    curfrom = x2
	curto = x1
  end 
  
  if sz == index then 
   cnt = levels
   for k = 1, cnt do  
	for i = 1, index  do        
	  SetValue(i, k, nil)
    end     
   end 
  
  -- cnt = 3
   k = 0
   for j = cntlevels, 1, -1 do
    d = 0
    if levelsy[j] > C(index) then 
      d = levelsy[j] - C(index)
	end 
    if levelsy[j] < C(index) then 
      d = C(index) - levelsy[j]
	end 	
	if d < delta*C(index) and d > 0 then 
	 k = k + 1
	 if k <= cnt then 	   
	   y = levelsy[j]   
	   for i = levelsx[j], index  do        	     
	     SetValue(i, k, y)
       end   
	 end
	end 
   end

  --[[
   k = 0
   for j = cntlevels, 1, -1 do
    d = 0
    if levelsy[j] < C(index) then 
      d = C(index) - levelsy[j]
	end 	
	if d < 0.2*C(index) and d > 0 then 	 
	 if k <= cnt then 
	   k = k + 1
	   y = levelsy[j]   
	   for i = levelsx[j], index  do        	     
	     SetValue(i, k+3, y)
       end   
	 end
	end 
   end
   --]]
   
  end   

 
  
end

телеграм: t.me/autotradering

Анализ лчи-сделок makdi067

Имеется красивейшая эквити:
Анализ лчи-сделок makdi067
Эта эквити интересна не только тем, что у неё высокий шарп, но и тем, что она получена не на копеечном счете.
На стартовые 30 млн заработано 11 млн рублей.

Это опционная торговля, которая велась по трём базовым активам: RI, Si, BR.

Что я сделал для анализа? Скачал все сделки за конкурс и немного подшаманил файлик.
Видимо, там были открытые позиции на начало конкурса ну и остались открытые на момент окончания.
Чтобы всё закрывалось в ноль для финреза, я добавил в начала и в конец файла несколько строк с виртуальными сделками.

Тогда получилась такая картина.
Финрез по бренту (опционы+БА) порядка 230 долларов.
Финрез по сишке (опционы+БА) порядка 650 тыс рублей.
Финрез по ришке (опционы+БА) порядка 7,5 млн пунктов.
То есть можно сказать, что вся эквити получена на ришке.

Что меня интересовало?
1. Как получено?
2. Насколько устойчиво и насколько масштабируемо?



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

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

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

DDS, оптимальная цена для покупки — 244.65$. Цель — 264.4293$. Вероятность роста 82.1%
W, оптимальная цена для покупки — 202.55$. Цель — 215.1061$. Вероятность роста 74.6%
SWBI, оптимальная цена для покупки — 17.51$. Цель — 18.7278$. Вероятность роста 74.5%


Результаты поста от 2021-11-23

ZEN, купили по 91.83$. Продали 30 ноября по 98.319$. Итоговый процент +7.07%
ENTA, купили по 83.11$. Продали 26 ноября по 90.0815$. Итоговый процент +8.39%
MUR, купили по 28.93$. Продали 21 декабря по 25.175$. Итоговый процент -12.98%

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


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

225 публичных торговых сигналов: счет моих роботов 135:90

    • 21 декабря 2021, 17:10
    • |
    • AlexChi
  • Еще

225 публичных торговых сигналов: счет моих роботов 135:90


Закрылись еще две публичные сделки моих роботов:

  • Робот PVVI, купивший акции Сургутнефтегаза (SNGS15.12.2021 по 39.81 рубля, закрыл сделку по стоп-лоссу, цена продажи 38.01 рублей.
  • Робот PVVI, купивший акции Мечела (MTLR16.12.2021 по 115.01 рубля, закрыл сделку по стоп-лоссу, цена продажи 108.41 рублей.

На текущий момент было 225 публичных сигналов на покупку. 76 от робота AVP118 от робота PVVI и 31 от робота CandleMax. Вот ссылки:



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

Скрещиваем две стратегии: пирамидинг и усреднение. Robot-Scalper.ru

Сегодня мы выдвинем несколько гипотез и проверим их на бэктестах.

Скрещиваем две стратегии: пирамидинг и усреднение. Robot-Scalper.ru

Гипотеза: торговать можно во всех фазах рынка, нужно лишь правильно определять эти фазы и использовать переключатель стратегий.

Как мы знаем, существует 3 фазы рынка: растущий тренд, падающий тренд и флет.

На трендах, очевидно, нужно использовать трендследящие стратегии, а на флете контртрендовые. И нужно вовремя переключаться между этими стратегиями.
На первый взгляд всё просто. Но об эту задачу обломали свои копья миллионы трейдеров, так как есть один подвох, который не позволяет при данном подходе сделать своевременный переключатель стратегий. То есть, если мы торгуем контртренд и вдруг начался тренд, то наша текущая позиция будет направлена против движения тренда. И убыток будет только нарастать.
Переключаться на трендследящую стратегию теперь можно будет лишь зафиксировав убыток, чего делать совсем не хочется. И, более того, переключившись на трендследящую стратегию нет никакой гарантии что рынок тут же не перейдет во флете или вернётся к прежним ценам. Что приведет ещё к большим убыткам. Так торговать не имеет смысла.



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

Доработанный индикатор наклонных уровней AT-obl_can

Доработал индикатор, внес параметр весовых коэффициентов
Доработанный индикатор наклонных уровней AT-obl_can

Settings=              
        {                          
            Name = "AT-obl_can",   -- название индикатора
            delta=2.0,                  -- параметр индикатора  
            rep=5, 
            shif=0,		
            wt=1,			
            line=                                     
                {                               
                    {  
                        Name = "ln1",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255, 0, 0)
                    },
					{  
                        Name = "ln2",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(255, 0, 0)
                    }
                }
       }


function Init()

    vMin = 0
    vMax = 0
    vMinindex = 0
    vMaxindex = 0
    voldMinindex = 0
    voldMaxindex = 0

  return 2
end


function OnCalculate(index)

  rep = Settings.rep
  shif = Settings.shif
  wt = Settings.wt

  sz = Size()-shif
  
  if index <= sz then 

  if index <= 1 then
    vMin = C(index)
    vMax = C(index)
    vMinindex = index
    vMaxindex = index
    voldMinindex = index
    voldMaxindex = index
    v = C(index)  
  else
         
    if voldMaxindex >= voldMinindex then
	  --if vMin~=nil then 
      if C(index) > (1 + Settings.delta/100)*vMin then
        vMin = C(index)  
        vMax = C(index) 
        vMaxindex = index
        voldMinindex = vMinindex 
        vFrom = vMinindex  
      else     
        if vMin > C(index) then
          vMin = C(index)
          vMinindex = index
          vFrom = voldMaxindex      
       else
          vFrom = vMinindex 
        end 
      end
	  --end
    else
     
    if voldMaxindex <= voldMinindex then
	  --if vMax~=nil then 
      if C(index) < (1 - Settings.delta/100)*vMax then
        vMax = C(index) 
        vMin = C(index)  
        vMinindex = index
        voldMaxindex = vMaxindex
        vFrom = vMaxindex
      else 
        if vMax < C(index) then
          vMax = C(index)
          vMaxindex = index
          vFrom = voldMinindex    
       else  
          vFrom = vMaxindex          
        end
      end  
	  --end
    end
    end
 
    --if vFrom~=nil then 
	--[[
    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
 
   if index == sz then
    for k = 1, 2 do
      vf = 1
	  vs = 0
	  if k == 1 then 
        if vMinindex < vMaxindex then
	      vf = vMinindex
		  vs = vMaxindex
		  up = 0
	    elseif vMinindex > vMaxindex then
	      vs = vMinindex
		  vf = vMaxindex
		  up = 1
	    end 	  
	  elseif k == 2 then  
        if voldMinindex < voldMaxindex then
	      vf = voldMinindex
		  vs = voldMaxindex
		  up = 0
	    elseif voldMinindex > voldMaxindex then
	      vs = voldMinindex
		  vf = voldMaxindex
		  up = 1
	    end 
	  end 
	  n = 0
	  xy = 0
	  x = 0
	  y = 0
	  xx = 0
	  m = 0
      for i = vf, vs do	 
	    m = m +1
	    n = n + 1*(1+wt*m)
	    xy = xy + i*C(i)*(1+wt*m)
	    x = x + i*(1+wt*m)
	    y = y + C(i)*(1+wt*m)
	    xx = xx + i*i*(1+wt*m)
      end
	  if (n*xx - x*x) ~= 0 and n ~= 0 then 
        a = (n*xy - x*y)/(n*xx - x*x)	
        b = (y - a*x)/n	  
		
		for j = 1, rep do 		
	      n = 0
	      xy = 0
	      x = 0
	      y = 0
	      xx = 0
          m = 0 		  
		  for i = vf, vs do	 		  
		    v = a*i + b
		    clc = 0
		    if up == 1 and C(i) > v then 
	          clc = 1	  
		    end 
		    if up == 0 and C(i) < v then 
		      clc = 1
		    end 
		    if clc == 1 then
			  m = m + 1
	          n = n + 1*(1+wt*m)
	          xy = xy + i*C(i)*(1+wt*m)
	          x = x + i*(1+wt*m)
	          y = y + C(i)*(1+wt*m)
	          xx = xx + i*i*(1+wt*m) 
		    end 
		  end --[[--]]
	      if (n*xx - x*x) ~= 0 and n ~= 0 and n > 2 then 
            a = (n*xy - x*y)/(n*xx - x*x)	
            b = (y - a*x)/n	  		   --[[  --]]
		  end 
        end 
		for i = vf, sz do	 		  
		  v = a*i + b
		  if up == 1 and v >= C(vs) or up == 0 and v <= C(vs) then 
		    SetValue(i, k, v) 
		  end 
		end 		
 		
	  end 
	  
    end   	  
   end 
   end 
  end  

end

телеграм: t.me/autotradering

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

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

RRGB, оптимальная цена для покупки — 15.53$. Цель — 16.8188$. Вероятность роста 75.9%
NTLA, оптимальная цена для покупки — 119.93$. Цель — 129.9811$. Вероятность роста 75.3%
HP, оптимальная цена для покупки — 22.58$. Цель — 23.937$. Вероятность роста 73.6%


Результаты поста от 2021-11-22

ANET, купили по 129.055$. Продали 15 декабря по 137.4145$. Итоговый процент +6.48%
FGEN, купили по 12.62$. Продали 2 декабря по 13.3773$. Итоговый процент +6.0%
HP, купили по 25.345$. Продали 20 декабря по 22.62$. Итоговый процент -10.75%

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


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

Усреднение или пирамидинг? Какая стратегия прибыльнее? Robot-Scalper.ru

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

Пирамидинг и усреднение. Торговые стратегии. Грааль!

Что выгоднее торговать, усреднение или пирамидинг?

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

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

Datetime для символа

    • 18 декабря 2021, 14:43
    • |
    • Gomorra
  • Еще
Можно ли в mql4 использовать datetime для одного символа? Например как iMA(NULL,«EURUSD»,....)
  • обсудить на форуме:
  • MQL4

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