quik


Подскажите котировки по SRU9 и SiU9, Пожалуйста

Подскажите котировки по SRU9 и SiU9, Пожалуйста
А то у меня все зависло в Quik Finam с 17:30 примерно.
По SiU9 вижу 66708. А на самом деле сколько.
Вижу также сделки по невидимым ценам.
Выручайте. Стою на всю котлету.
Я теперь через каждые 5 минут буду спрашивать. Можно  ?
 Подскажите котировки по SRU9 и SiU9, Пожалуйста
 Update: Добавил Журнfл Сообщений Quika 16.08.2019.
Подскажите котировки по SRU9 и SiU9, Пожалуйста

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

Работа с Quik Finam. Обрывы Соединения - Случайность или Закономерность ? Следствие ведут Колобки

Работа с Quik Finam.
Обрывы Соединения — Случайность или Закономерность?
Следствие ведут Колобки

По мотивам вот этих постов: smart-lab.ru/blog/553764.php , https://smart-lab.ru/blog/553853.php

Кто не знает, сообщаю, Я работаю на рынке только роботами. Портфели роботов.

В последнее время у меня стали часто пропадать соединения с Сервером Квика.

Приведу пример сегодняшнего дня.
9:30 — Соединение установлено.
10:00 Открытие торгов. Постепенно начинают входить в Позиции роботы.
По одному инструменту у меня может много позиций и в Short и в Long, потому что стратегии в роботах разные. 
После 11:00 у меня были открыты нетто позиции SiH9 Long, SRU9 Short.
После 12:00 НАЧАЛОСЬ ДВИЖЕНИЕ по Si и SR.
В это время я увидел знакомые мне обрывы соединения с Квиком (Удаленный хост рубит соединения).
Наученный предыдущим опытом (когда такие безобразия с установлением-обрывом соединений продолжались долго https://smart-lab.ru/blog/537471.php)

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

Адаптивная МА

анализирует и подбирает наилучшую среднюю

Адаптивная МА



код:
Settings={
Name="ADAPTMA",
n=5,
m=10,
    line=                                     
                {      --[[                         
                    {  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0, 0)
                    }, {  
                        Name = "cur2",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0, 0)
                    }, {  
                        Name = "cur3",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0, 0)
                    }, {  
                        Name = "cur4",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0, 0)
                    }, {  
                        Name = "cur5",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0, 0)
                    }, --]]
					{  
                        Name = "cur6",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(255,0, 0)
                    }		
                }
}
--[[

-- кривая сдвига
описание свойств:

delta: сдвиг в барах от цены вправо

--]]

function Init()
    
  ma={}
  val={}
  return  1
  
end

function OnCalculate(index)

  n = Settings.n
  m = Settings.m
     
      ma[index]={}
	  val[index]={}	 
	 
	 for i=1, n do
	  	  
	    if index > 1 then
		  if ma[index-1][i] ~= nil then
	        ma[index][i] = ma[index-1][i] + O(index) 	  
		  else
		  ma[index][i] = O(index) 	  
		  end
		else  		  
		  ma[index][i] = O(index) 
	    end
		
		period = i*10
				
		if index - period > 1 then
		  if ma[index-period][i] ~= nil then
		    val[index][i] = (ma[index][i] - ma[index-period][i])/period
		  else
		    val[index][i] = ma[index][i]
		  end
		else
          val[index][i] = nil		
		end
	
						
	 end

     
	 k = n	 
	 p = 0	 
	 for j=n, 1,-1 do
	   e = 0
	   pj = 0
	   if index-m > 1 then
	     for i=index-m, index-1 do
	       if val[i-1][j] ~= nil and val[i][j] ~= nil then
		     if (
		        val[i-1][j] <= O(i-1) and val[i][j] > O(j) or  
		        val[i-1][j] >= O(i-1) and val[i][j] < O(j) 
			    )
		     then
		       e = e + 1
		     end
		   end  
	     end
		 pj = -O(index)*0.001*e
		 if O(index) >= O(index-m) then		   
		   pj = O(index) - O(index-m) + pj
		 else
		   pj = O(index-m) - O(index) + pj
		 end
	   end
	   if pj > p then 
	     p = pj
	     k = j
	   end
	 end
	 
	  val[index][n+1] = val[index][k]
	 
	 --return ma[index]

 -- return val[index][1], val[index][2], val[index][3], val[index][4], val[index][5], val[index][6]
 
  return val[index][n+1]

  --[[
  val[1]  ={}
  val[1][index] = 9
  
  return val[1][index]
--]]

end



Индикатор на базе объемов и цены, показывающий точки входа и выхода

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


Settings={
Name="VDIV",
period=20,
periodma=15,
    line=                                     
                {                               		
                    {  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(255,0,0)
                    },				
                    {  
                        Name = "cur2",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0,0)
                    }
                }
}
--[[

-- кривая объемов
описание свойств:

period: сколько баров берутся в подсчет
weighted: =0 - обычная, =1 - взвешанная
proportional: =1- считается: volume*(close-open)/(hight-low), =0 - считается: volume*sign(close-open)

--]]

function Init()

  mas = {} 
  return 3
  
end

function OnCalculate(index)
  	

	  sumv1 = 0
	  sumv2 = 0


	if index >= Settings.period then 
	  for i=index-Settings.period+1, index do    
	    if V(i) ~= nil and C(i) ~= nil then
	      if C(i) > O(i) then
		    sumv1 = sumv1+V(i)*(C(i) - O(i))
	      else
		    sumv2 = sumv2+V(i)*(O(i) - C(i))	
	      end
        end 
	  end 
	else
	  sumv1 = nil	
	  sumv2 = nil
	end	
	
	if sumv2 ~= 0 and sumv2 ~= nil then 
	  vdiv = sumv1/sumv2
	  vdiv2 = sumv2/sumv1
	  vdiv3 = vdiv - vdiv2
	else	
	  vdiv = nil
	  vdiv2 = nil
	  vdiv3 = nil
	end
	
	mas[index] = vdiv3
	
	ma = 0
	if index >= Settings.periodma then 
	  for i=index-Settings.periodma+1, index do    
	    if mas[i] ~= nil then		  
          ma = ma + mas[i]			
		end 
	  end
	end  
    ma = ma/Settings.periodma		
	
  return ma, 0


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

последняя версия индикатора vcur

последняя версия индикатора vcur

Settings={
Name="VCUR",
period=50,
periodma=15,
weighted=1,
weightedma=1,
proportional=1,
    line=                                     
                {                               
                    {  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(155,0, 0)
                    },	
                    {  
                        Name = "cur2",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0,155)
                    },						
                    {  
                        Name = "cur3",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0, 0)
                    }					
                }
}
--[[

-- кривая объемов
описание свойств:

period: сколько баров берутся в подсчет
weighted: =0 - обычная, =1 - взвешанная
proportional: =1- считается: volume*(close-open)/(hight-low), =0 - считается: volume*sign(close-open)

--]]

function Init()
    
  mas={}	
  return 2
  
end

function OnCalculate(index)
  	
	sumv = 0
	
	wsum = 0
	if index >= Settings.period then 
	  for i=index-Settings.period+1, index do    
        if sumv == nil then
	      sumv = 0
        end	  
	    if C(i-1) ~= nil then
		  wsum = wsum + i-(index-Settings.period)
	      if C(i-1) > O(i-1) then
		    if Settings.proportional == 0 then
		      prop = 1
			else
			  if (H(i-1)-L(i-1)) == 0 then
			    prop = 0
			  else
			    prop = (C(i-1)-O(i-1))/(H(i-1)-L(i-1))
			  end
			end
		    if Settings.weighted == 0 then
              sumv = sumv + prop*V(i-1)
			else
			  sumv = sumv + prop*V(i-1)*(i-(index-Settings.period))--/Settings.period
			end
	      else
            if Settings.proportional == 0 then
		      prop = 1
			else
              if (H(i-1)-L(i-1)) == 0 then
			    prop = 0
			  else			
			    prop = (O(i-1)-C(i-1))/(H(i-1)-L(i-1))
			  end
			end	  
		    if Settings.weighted == 0 then
              sumv = sumv - prop*V(i-1)
			else
			  sumv = sumv - prop*V(i-1)*(i-(index-Settings.period))--/Settings.period
			end
	      end
        end 
	  end 
	else
	  sumv = nil
	end	
	if Settings.weighted ~= 0 then
      if sumv ~= nil then
	    sum =sumv/wsum
	  end
	end	
    mas[index]=sumv
	
	ma = 0
	wsum = 0
	if index >= Settings.periodma then 
	  for i=index-Settings.periodma+1, index do    
	    if mas[i] ~= nil then		  
		    wsum = wsum + i-(index-Settings.periodma)
		    if Settings.weightedma == 0 then
              ma = ma + mas[i]
			else
			  ma = ma + mas[i]*(i-(index-Settings.periodma))--/Settings.periodma
			end
			
		end 
	  end
	end  
	if Settings.weightedma == 0 then
	  if ma ~= nil then
	    ma = ma/Settings.periodma	
	  end
	else	
	  ma = ma/wsum	
	end
     
  return sumv, ma--, 0


end



ITI Capital не работает Quik!!!

Вот уже как 40 минут квик не может подключиться к серверу ITI Capital (начиная с 15:21).
Предупреждений никаких не было!

Написали лишь письмо, по факту, уже ПОСЛЕ того как связь отпала, такого содержания:

«Имеется проблема с подключением к серверу QUIK.
Мы решаем эту проблему вместе с разработчиками торговой системы QUIK
Как только все будет работать, мы вам сообщим.

С уважением, Техническая поддержка ITI CAPITAL
support@iticapital.ru, тел.: (495)933-33-32, 8-800-200-32-35»

Соответственно, я полностью не контролирую свои позиции, заявки и тд..
Сервер для подключения один, резервного тупо нет.
Как думаете, насколько это нормальное явление ? 
За 40 минут можно счёт обнулить и кто потом виноват будет? Кто будет отвечать за понесенные убытки ?

При звонке в техподдержку сначала говорили мол сервера перегружаем со специалистами Quik (ARQA Technologies) и минут через 15-20 заработает,
Однако по прошествии 30 минут, 40 минут Н И Ч Е Г О.

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

Индикатор кривой объема

Помогает отфильтровать не нужные сигналы
скачать:
https://my-files.ru/r3tcab
Индикатор кривой объема

Settings={
Name="VCUR",
period=20,
weighted=0,
    line=                                     
                {                               
                    {  
                        Name = "cur1",
                        Type =TYPE_LINE,
                        Width = 2,
                        Color = RGB(140,181, 242)
                    }	
                }
}
--[[

-- кривая объемов
описание свойств:

period: сколько баров берутся в подсчет
weighted: =0 - обычная, =1 - взвешанная

--]]

function Init()

  sumv = 0
    
  return 1
  
end

function OnCalculate(index)

	if index >= Settings.period then 
	  for i=index-Settings.period-1, index do    
        if sumv == nil then
	      sumv = 0
        end	  
	    if C(i-1) ~= nil then
	      if C(i-1) > O(i-1) then
		    if Settings.weighted == 0 then
              sumv = sumv + V(i-1)
			else
			  sumv = sumv + V(i-1)*(i-(index-Settings.period))/Settings.period
			end
	      else
		    if Settings.weighted == 0 then
              sumv = sumv - V(i-1)
			else
			  sumv = sumv - V(i-1)*(i-(index-Settings.period))/Settings.period
			end
	      end
        end 
	  end 
	else
	  sumv = nil
	end
     
  return sumv


end



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

Как в Квике настроить отображение плеча по фьючерсам

Несколько дней назад пост о том как считать плечо вызвал большой интерес. Quik позволяет настроить отображение «плеча» по текущим позициям легко и просто. Откройте таблицу «Ограничения по клиентским счетам», обычно она по умолчанию уже создана. Если ее нет, то «Создать окно»-«Все типы окон»-«Ограничения по клиентским счетам».  С правой кнопки открываете меню, выбираете «Редактировать таблицу». В окне «Доступные параметры» выбрать значение «Cash leverage»- «Добавить»-«Да».  Значение «Cash leverage» рассчитывается как oтношение произведения абсолютного размера позиций по активам на цену последней сделки к сумме депозита. Например, вы купили 30 фьючерсов Сбера, цена 23350, депозит 300000. Считаем (30*23350)/300000=2,3.

....все тэги
UPDONW