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

по

STATDIV3 доработанный индикатор для quik на языке lua

если индикатор больше 0, то покупаем, если ниже то продаем

скачать можно здесь:dropmefiles.com/09FCu
как устанавливать смотрите предыдущие статьи: https://smart-lab.ru/blog/528424.php
название STATDIV3 это доработанный STATDIV


поведение индикатора на графике:
STATDIV3 доработанный индикатор для quik на языке lua


сам код индикатора:
Settings={
Name="STATDIV3",
period=50,
  line=
  {
    {
      Name="curve",
      Color=RGB(0,0,255),
      Type=TYPE_LINE,
      Width=1
    },
    {
      Name="line",
      Color=RGB(255,0,0),
      Type=TYPE_LINE,
      Width=1
    },
    {
      Name="MA",
      Color=RGB(0,0,255),
      Type=TYPE_LINE,
      Width=1
    },
    {
      Name="MA2",
      Color=RGB(0,128,128),
      Type=TYPE_LINE,
      Width=1
    },
    {
      Name="line2",
      Color=RGB(0,0,255),
      Type=TYPE_LINE,
      Width=1
    },
    {
      Name="line3",
      Color=RGB(0,128,128),
      Type=TYPE_LINE,
      Width=1
    }
  } 
}

function Init()
  cache_ind={}
  cache_ind2={}
  cache_ind3={}
  return 2
end

function OnCalculate(index)
  if index < Settings.period then
    return nil
  else
    local sum1=0
    local sum2=0
    local sum0=0
    local sum02=0
    local sum03=0
    for i=index-Settings.period+1, index do  
    do
      if C(i) > O(i) then
        sum1 = sum1 + C(i) - O(i)
        sum2 = sum2 + C(i) - O(i)
      else
        sum2 = sum2 + O(i) - C(i)
      end  
    end 
    cache_ind[index] = sum1/sum2    
    if index > Settings.period+12 then 
--[[
      sum0 = 1*cache_ind[index]+
            (1)*cache_ind[index-1]+
            (1)*cache_ind[index-2]+
            (1)*cache_ind[index-3]+
            (1)*cache_ind[index-4]+
            (1)*cache_ind[index-5]+
            (1)*cache_ind[index-6]+
            (1)*cache_ind[index-7]+
            (1)*cache_ind[index-8]+
            (1/2)*cache_ind[index-9]+
            (1/3)*cache_ind[index-10]+
            (1/4)*cache_ind[index-11]+
            (1/5)*cache_ind[index-12]
--]]
      sum0 = 1*cache_ind[index]+
            (1/2)*cache_ind[index-1]+
            (1/3)*cache_ind[index-2]+
            (1/4)*cache_ind[index-3]+
            (1/5)*cache_ind[index-4]+
            (1/6)*cache_ind[index-5]+
            (1/7)*cache_ind[index-6]+
            (1/8)*cache_ind[index-7]+
            (1/9)*cache_ind[index-8]+
            (1/10)*cache_ind[index-9]+
            (1/11)*cache_ind[index-10]+
            (1/12)*cache_ind[index-11]+
            (1/13)*cache_ind[index-12]

    end
--[[
    sum0 = sum0/(1+1+1+1+1+1+1+1+1+1/2+1/3+1/4+1/5)
--]]
    sum0 = sum0/(1+1/2+1/3+1/4+1/5+1/6+1/7+1/8+1/9+1/10+1/11+1/12+1/13)

       
    cache_ind2[index] = sum0
    if index > Settings.period+50 then   
      sum02 = 1*cache_ind2[index]+
            (1)*cache_ind2[index-1]+
            (1)*cache_ind2[index-2]+
            (1)*cache_ind2[index-3]+
            (1)*cache_ind2[index-4]+
            (1)*cache_ind2[index-5]+
            (1)*cache_ind2[index-6]+
            (1)*cache_ind2[index-7]+
            (1/2)*cache_ind2[index-8]+
            (1/3)*cache_ind2[index-9]+
            (1/4)*cache_ind2[index-10]+
            (1/5)*cache_ind2[index-11]+
            (1/6)*cache_ind2[index-12]
--[[
      sum02 = 1*cache_ind2[index]+
            (1/2)*cache_ind2[index-1]+
            (1/3)*cache_ind2[index-2]+
            (1/4)*cache_ind2[index-3]+
            (1/5)*cache_ind2[index-4]+
            (1/6)*cache_ind2[index-5]+
            (1/7)*cache_ind2[index-6]+
            (1/8)*cache_ind2[index-7]+
            (1/9)*cache_ind2[index-8]+
            (1/10)*cache_ind2[index-9]+
            (1/11)*cache_ind2[index-10]+
            (1/12)*cache_ind2[index-11]+
            (1/13)*cache_ind2[index-12]
--]]
    end
    sum02 = sum02/(1+1+1+1+1+1+1+1+1/2+1/3+1/4+1/5+1/6)
--[[
    sum02 = sum02/(1+1/2+1/3+1/4+1/5+1/6+1/7+1/8+1/9+1/10+1/11+1/12+1/13)
--]]
    cache_ind3[index] = sum0 - sum02
    if index > Settings.period+50 then   
      sum03 = 1*cache_ind3[index]+
            (1/2)*cache_ind3[index-1]+
            (1/3)*cache_ind3[index-2]+
            (1/4)*cache_ind3[index-3]+
            (1/5)*cache_ind3[index-4]+
            (1/6)*cache_ind3[index-5]+
            (1/7)*cache_ind3[index-6]+
            (1/8)*cache_ind3[index-7]+
            (1/9)*cache_ind3[index-8]+
            (1/10)*cache_ind3[index-9]+
            (1/11)*cache_ind3[index-10]+
            (1/12)*cache_ind3[index-11]+
            (1/13)*cache_ind3[index-12]
    end
    sum03 = sum03/(1+1/2+1/3+1/4+1/5+1/6+1/7+1/8+1/9+1/10+1/11+1/12+1/13)

  end  

  if sum1/sum2 > 0.5 and sum03 > 0 then
    sum1 = sum03
  else
    if sum1/sum2 < 0.5 and sum03 < 0 then
      sum1 = sum03 
    else 
      sum1 = 0
    end
  end

  return sum1, 0
end

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

для тех кто хочет много бабок зарабатывать

публикую индикатор собственной разработки под quik, написанный на lua
если его значение больше 0,5 то выставляете заявку на покупку с тек профитом >= стоплоссу
гарантированно будете зарабатывать
подключить его можно так:
в папке quik создаете папку LuaIndicators туда кидаете текстовый файл с раcширением .lua
и содержанием приведенного индикатора, потом запускаете quik и добавляете как обычный индикатор к графику
название его в списке будет STATDIV (статистическое отклонение)
на рисунке отобразил его работу с периодом 25 и 50
его суть в том чтоб показать куда отклонено статистическое распределение вероятностей, вверх или вниз за определенный период
проще говоря, куда вероятнее пойдет рынок вниз или вверх
если значение индикатора выше 0,5 то разрешено лонговать, если ниже то разрешено шортить
рекомендации по подбору периода: период для этого индикатора выбираете как период между двумя
последними локальными вершинами
позже могу математически привести целесообразность его использования

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

Pivot Point Reversal — слепые точки разворота

    • 14 марта 2019, 13:17
    • |
    • Eric
  • Еще

Если у вас есть проблемы с определением потенциального разворота рынка, тогда этот урок для вас. Ценовой паттерн Pivot Point Reversal — это один из тех сигналов, которые используют профессиональные трейдеры для нахождения точек разворота тренда. Никакие индикаторы в данном методе не используются. В данном уроке упоминается внутренний бар, о котором я уже писал руководство - https://smart-lab.ru/blog/518242.php.

Что такое Pivot Point Reversal?

Pivot Point Reversal — это разворотный ценовой паттерн, который состоит из трёх и более свечей, и сделка открывается в направлении пробоя поддержки или сопротивления главной свечи: для медвежьего сетапа ожидаем пробоя поддержки, для бычьего сетапа ожидаем пробоя сопротивления.



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

скрипт для quik

скрипт для отслеживания бумаг по системе BWS:

--Массив с Тикерами, добавьте нужные тикеры
aTickerList = {"MSNG", "GAZP", "LKOH",
	    "SIBN", "GMKN","ROSN",
	    "SBER", "TATN", "NVTK",
	    "IRAO", "RSTI", "SBERP",
	    "PHOR", "SNGS", "TRNFP",
	    "VTBR", "FEES", "MVID",
	    "RASP", "MFON", "AFLT", 
	    "MAGN", "ALRS", "MTSS", "MOEX",
	    "RTKM", "MGNT", "NLMK", "SNGSP",
	    "CHMF", "MTLR", "HYDR", "MFON",
	    "RSTI", "PLZL", "BANEP", "POLY"
	    };

--Функция поиска цены
function fGetPrice(sTickerName, sNum)
	--Подключаемся к источнику данных
	local ds=CreateDataSource("TQBR", sTickerName, INTERVAL_D1);
	while (Error=="" or Error == nil) and ds:Size() ==0 do sleep(10) end;
	if Error ~="" and Error ~=nil then message("Error: "..Error, 1) end;
	local sSize=ds:Size();
	local sCurrentPrice=ds:O(sSize);
	
	local sLastWeekPrice7=0;
	local sLastWeekPrice14=0;

	--Берем цену закрытия свечи неделю назад
	sLastWeekPrice7=ds:C(sSize-4);
	--Берем цену закрытия свечи 2 недели назад
	sLastWeekPrice14=ds:C(sSize-8);

		--Вычисляем проценты
		local sPrc7=math.floor((100-((sLastWeekPrice7*100)/sCurrentPrice))*100)/100;
		local sPrc14=math.floor((100-((sLastWeekPrice14*100)/sCurrentPrice))*100)/100;

		--Заполняем таблицу значениями
		SetCell(t_id, sNum, 0, tostring(sTickerName));
   		SetCell(t_id, sNum, 1, tostring(sCurrentPrice),sCurrentPrice);
   		SetCell(t_id, sNum, 2, tostring(sLastWeekPrice7),sLastWeekPrice7);
   		SetCell(t_id, sNum, 3, tostring(sLastWeekPrice14),sLastWeekPrice14);
   		SetCell(t_id, sNum, 4, tostring(sPrc7),sPrc7);
		SetCell(t_id, sNum, 5, tostring(sPrc14),sPrc14);

		--Текущая цена больше цены прошлой недели - раскрашиваем зеленым
		if sCurrentPrice>sLastWeekPrice7 then 
			fGreen(sNum);
		end;
		--Текущая цена меньше цены прошлой недели - раскрашиваем красным
		if sCurrentPrice<sLastWeekPrice7 then
			fRed(sNum);
	   	end;
		--Текущая цена больше цены прошлой недели и цена прошлой недели больше цены позапрошлой недели
		--раскрашиваем желтым
		if sCurrentPrice>sLastWeekPrice7 and sLastWeekPrice7>sLastWeekPrice14  then 
			fYellow(sNum);
	   	end;
end;

--- Функция создает таблицу
function CreateTable()
	-- Получает доступный id для создания
	t_id = AllocTable();	
	-- Добавляет 6 колонок
 	AddColumn(t_id, 0, "Тикер", true, QTABLE_INT_TYPE, 15);
 	AddColumn(t_id, 1, "Сегодня", true, QTABLE_INT_TYPE, 15);
 	AddColumn(t_id, 2, "Неделя", true, QTABLE_INT_TYPE, 15);
 	AddColumn(t_id, 3, "2 Недели", true, QTABLE_INT_TYPE, 15);
 	AddColumn(t_id, 4, "Неделя (%)", true, QTABLE_INT_TYPE, 15);
 	AddColumn(t_id, 5, "2 Недели (%)", true, QTABLE_INT_TYPE, 15);
	
	-- Создаем
	t = CreateWindow(t_id);
	-- Даем заголовок	
	SetWindowCaption(t_id, "7 Days");

   -- Добавляем строки
      for k,v in pairs(aTickerList) do
		InsertRow(t_id, k);
      end;
end;

--- Функции раскрашивают ячейки таблицы
function fRed(col)
	SetColor(t_id, col, -1, RGB(255,168,164), RGB(0,0,0), RGB(255,168,164), RGB(0,0,0));
end;
function fGreen(col)
	SetColor(t_id, col, -1, RGB(157,241,163), RGB(0,0,0), RGB(157,241,163), RGB(0,0,0));
end;
function fYellow(col)
	SetColor(t_id, col, -1, RGB(249,247,172), RGB(0,0,0), RGB(249,247,172), RGB(0,0,0));
end;

--Основная функция
function main()
	-- Создаем таблицу
 	CreateTable();

 	--Пробегаемся по массиву тикеров
	for k,v in pairs(aTickerList) do
	  fGetPrice(v, k);
	end;

end;
как выглядит в квике:

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

Китайские аферы на NYSE

Рекомендую посмотреть документальный фильм Китайское дело (The China Hustle), вышедший в 2017 г.

Китайские аферы на NYSE


Фильм рассказывает о том, как более 300 китайских компаний вышли на американский фондовый рынок при помощи небольших инвест-компаний вроде Roth Capital и Rodman & Renshaw. Большинство таких китайских компаний, вышедших на американскую биржу в 2008-2016гг, сделало это при помощи обратных слияний (reverse mergers). При этом китайские компании покупали практически не функционирующие американские фирмы, уже размещённые на бирже. Американские инвест-компании вроде Roth Capital проводили «инвестиционные конференции», на которые приглашали знаменитостей вроде Била Клинтона или Генри Киссинджера. Это подогревало интерес к китайским акциям, в результате чего они вырастали в разы. Акции покупали как простые инвесторы, так и взаимные и пенсионные фонды.

Через какое-то время оказывалось, что отчётность китайских компаний, которая направлялась в американскую комиссию по ценным бумагам (SEC) не соответствовала действительности. Показатели могли завышаться на порядок. Некоторые компании вообще не вели никакой деятельности, но успешно имитировали её в момент приезда автобуса с инвесторами на китайское предприятие. После серии разоблачений большинство из китайских компаний было делистинговано с нью-йоркской биржи NYSE. Ущерб при этом, по некоторым оценкам, составил 20-50 миллиардов долларов США.

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

ИИС в Сбербанке

   В свое время решил открыть ИИС в Сбере. Надёжность, профессионализм, цифровизация и всё такое. К тому же ВТБ (ещё один мастодонт брокерского обслуживания) безбожно тормозил с реализацией ИИС. А всё, шо нажито непосильным трудом, надо было куда-нибудь пристраивать. Так что, придушив жабу на предмет четырёхкратного (!) различия комиссий (не в пользу Сбера), открыл счёт.
   И вот прошло 3 года, пришло время собирать камни закрыть ИИС. Воодушевившись работой, проделанной Turbo Pascal (https://smart-lab.ru/blog/447184.php и smart-lab.ru/blog/459561.php), решил не продавать все бумаги, чтобы не попасть на НДФЛ при продаже бумаг. В 2018 году, проделав все манипуляции с двумя поездками к брокеру в единственное брокерское отделение Москвы на Якиманке (Д — доступность) и одной поездкой в депозитарий на Ленинской проспект (У — удобство), счёт закрыл, а бумаги перевёл на обычный счёт.
   Жить бы и радоваться, ждать пока пройдет трёхлетний срок владения бумагами и можно будет продать их без взимания НДФЛ. Ан нет, решил зафиксировать мегаприбыль и вывести часть средств. Не думая о плохом, оформил вывод. Но на текущий счёт пришло подозрительно мало денег. Вознаграждения правлению Сбера и сотрудникам брокерского отдела из своих средств я вроде бы не назначал…

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

Что можно покупать из высокодоходных облигаций (ВДО)?

Что можно покупать из высокодоходных облигаций (ВДО)?
В таблице — наиболее ликвидные бумаги в секторе малых выпусков/среднего бизнеса (до 500 млн.р.). Критики за этот сектор рынка я получаю непередаваемое количество. Она справедлива в части, касающейся всего рынка: низкопробные выпуски будут всегда и везде, нужно выбирать. Но есть и неприятие к всему сектору. А  он существует, будет развиваться, и в нем есть хорошие истории. С более высокими в сравнении с широким рынком доходностями и, как правило, более скромной ликвидностью. В подтверждение – индекс высокодоходных облигаций, рассчитываемый Cbonds. 
Что можно покупать из высокодоходных облигаций (ВДО)?

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

Онлайн-встреча по переделке стратегий из кубиков в код на C#

Буквально несколько минут назад закончилась OnLine встреча со мной в рамках проекта «Лаборатория Трейдинга».

Примерно полтора часа рассказывал о том, как простому человеку (не программисту) создать код стратегии на C#

Онлайн-встреча по переделке стратегий из кубиков в код на C#



Для тех, кто не успел поприсутствовать выкладываю запись: (смотреть можно в ускоренном режиме 1,5 )

Первую минуту можно пропустить.



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

Как торговать фьючерсами на нефть.

Как торговать фьючерсами на нефть.

Нашла на просторах интернета простую, понятную статью, как торговать фьючерсами на нефть. 
Для новичка самое то, чтобы понять суть.



***
Итак, краткая инструкция для новичка, как торговать фьючерсами на нефть.

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

Влияние новостей на котировки
Как торговать фьючерсами на нефть.

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

Мои торговые правила

   Самое важное в трейдинге, это соблюдение определенных правил. Если вы их соблюдаете, то у вас есть шанс состояться как успешный трейдер на горизонте в 3-5 лет и зарабатывать этим на жизнь, а если не соблюдаете.., то и шансов у вас, увы, нет.

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

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

  Дабы не растягивать, буду максимально краток.

  Итак,

  1 группа: «Фундамент торгового бизнеса».

  Да, именно, — БИЗНЕСА. Потому что, если вы не будете относиться к трейдингу как к бизнесу, со всеми вытекающими, но как к некой игре, способу ухода от насущных дел и проблем, неизбежно будете в долгосроке терять, как время, так и деньги.



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

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