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

по

18 прогнозов о блокчейне на 2018 год

Сегодня мы хотим поделиться с вами статьёй Эндрю Кисса (Andrew Keys) — соучредителя ConsenSys Capital и ряда других компаний, — в которой он делится своими прогнозами для криптовалютного пространства на 2018 год.

 

1. Биткойн – это нулевое поколение технологии блокчейн… разогрев… стартовый наркотик… первый раунд… MySpace

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

Биткойн как цифровое средство сбережений – наименее интересное применение блокчейна… Да, я это сказал



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

Робот для автоматического выставления стопа

В своё время активно пользовался. Робот для выставления стопа и тейк профита. 
Как только видит открытые позиции. Выставляет стоп. Может кому надо. Пользуйтесь

Нужно заполнить только
cAccount=«7600lll» ВАШ СЧЕТ
cClassName=«SPBFUT» ЧТО ТОРГУЕТЕ
cProfit=7500 ТЕЙК ПРОФИТ
cProfShift=100 ОТСТУП ОТ ЦЕНЫ

cProfSpr=500 СПРЕД
cStopLoss=400 ЗНАЧЕНИЕ СТОПА
cSLSpr=500 СПРЕД
Файл:

PORTFOLIO_EX VFAutoStop;
DESCRIPTION VFAutoStop;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST ALL_FIRMS;
USE_CASE_SENSITIVE_CONSTANTS;

PROGRAM

New_Global(«CurLogLine»,1)
New_Global(«gLastPos»,CREATE_MAP ()) 'коллекция крайних позиций

ClassesList = get_classes_list()

cAccount=«7600lll»
cClassName=«SPBFUT»
cProfit=7500
cProfShift=100
cProfSpr=500
cStopLoss=400
cSLSpr=500

cLogFile=«C:\VFAutoStop.log»

FUNC WriteLog (pTitle, pMessage)
writeln(cLogFile, get_value(GET_DATETIME(), «Datetime») & " " & pTitle & " > " & pMessage)
END FUNC

func SendTrans(pTransParams)
trans_result = SEND_TRANSACTION (30, pTransParams)
'LogData(pTransParams,trans_result)
if get_value (trans_result, «RESULT»)+0.0=0 then
' WriteLog(pTransParams,get_value (trans_result, «RESULT_EX») & "|" & get_value (trans_result, «DESCRIPTION»))
WriteLog(pTransParams,trans_result)
end if
end func

Func ActiveStopOrder(pSecCode)
nOrd=Get_number_of(«STOP_ORDERS»)
result=CREATE_MAP ()
for iOrd from 1 to nOrd
asoOrder = get_item(«STOP_ORDERS», iOrd)
if get_value(asoOrder, «STATUS»)=«ACTIVE» and get_value(asoOrder, «SECCODE»)=pSecCode
result = asoOrder
end if
end for
End Func



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

ВЗАИМОСВЯЗЬ РЫНКА ФОРЕКС ( валютного рынка ) С РЫНКОМ ОБЛИГАЦИЙ

Сегодняшняя тема была выбрана не случайно, дело в том, что современные трейдеры и инвесторы все чаще отказываются от надежных долгосрочных стратегий в пользу среднесрочных спекулятивных систем, построенных на различных индикаторах, объёмах и прочих похожих инструментах.
ВЗАИМОСВЯЗЬ РЫНКА ФОРЕКС ( валютного рынка ) С РЫНКОМ ОБЛИГАЦИЙ

На мой взгляд, это серьезная проблема, так как при подобном подходе человек просто перестает развиваться, т.е отказывается узнавать новую информацию, которая могла бы ему пригодиться на более высоких уровнях карьерной лестницы в финансовом секторе.
Вот и получается что у простого рядового спекулянта всего 2 пути:

1) Торговать на небольших счетах и постоянно искать новые паттерны, так как прежние методы могут перестать работать
2) Изучать фундаментальные закономерности, которые будут актуальны всегда.

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



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

Заседания ФРС США (FOMC) на 2018 год в астрологическом отображении.

Продолжаем старую добрую традицию, начатую в 2017 году.
>> Заседания ФРС США (FOMC) на 2017 год в астрологическом отображении.

А сегодня, аналогичный формат, но уже на 2018 год.
 
Полагаю, что даты заседаний Federal reserve Fed каждый трейдер должен отслеживать как "Отче Наш" — с полным вниманием, так как итогом любого заседания может «неровен час», стать очередное повышение процентной ставки. Также важно не пропускать публикации протоколов, так как может оказаться понятным, что они хотели сказать, но вовремя умолчали.

Таким образом, табличка заседаний и протоколов на 2018 год — не является лишней никогда. А если эти даты обрамляются астрологическим контекстом (только выборочные, яркие фрагменты — комментирую не для всех, а по отдельному платному запросу), то жить становиться практичнее, жить становится веселее.  Берите на заметку.

------------------------------------------------------------

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

Меры предосторожности при операциях с крипто-активами. (Краткое руководство)

Всё изложенное мной ниже — основано на моём личном опыте и по мере возможности применяется мной на практике. 

Некоторые рекомендации покажутся вам параноидальными и\или противоречащими моим недавним  декларациям.

Хочу пояснить, что эта статья имеет очень специальное назначение и является ориентиром, к которому желательно максимально приблизиться.

Сам я пока ещё весьма далёк от чёткого выполнения всех пунктов этой статьи.

Эта удалённость возникла изза недостатка знаний и изза моих заблуждений, которые сопутствовали мне во время моего продвижения в крипто-мире.

Недавно я осознал, что надо двигаться в направлении максимальной децентрализованности.



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

Как крупные игроки портят математику толпы

В свое время, лет 5-6 назад, на смартлабе был опубликован очень хороший пост. Не знаю, попал ли он к кому-либо в избранное. Я на его основе сделал этот.

Известный многим пример: представим, что объявлена лотерея. Каждый участник может назвать число от 1 до 100. Ценный приз выигрывает тот, чей ответ окажется ближе всего к 2/3 среднего арифметического ответов всех участников.

Как все будет происходить? В первую очередь, найдутся люди, которые невнимательно прочитают задание, и в качестве ответов назовут случайным образом числа от 1 до 100.

Люди с образованием учтут, что большинство невнимательно прочитают задание, и решат использовать математическую статистику для участников лотереи как статистической совокупности, для чего применят центральную предельную теорему для моделирования нормальных случайных величин. Проще говоря, они примут, что распределение независимых ответов публики будет случайным со средним около 50 (при нормальном распределении), а значит надо взять 2/3 от 50 и получить в виде ответа 33.



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

Что следует указать в технического задании на торгового робота

В продолжении первой статьи 

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

Какие основные моменты нужно отразить в техническом задании по созданию торгового робота:

  1. Торговый терминал (квик, транзак коннектор и т.д.);
  2. Язык программирование, если есть предпочтения. В другом случае разработчик предложит вам варианты реализации торгового робота
  3. Нужен или нет графический интерфейс;
  4. Открытие и закрытие позиции, какими заявками производится:
    — Рыночные или лимитные заявки
    — Стоп-заявки, должны ли выставляться в терминал или весь расчет ведется в роботе
    — Если заявки лимитные, если не исполнились, то какие должны быть следующие действия — переставляется, сниматься, исполнятся по рынку;
    — Исполнение заявок по закрытию свечи, либо по цене закрытия при появлении новой свечи или за несколько секунд до конца формирования свечи, и в этом случае нужно учесть, что если по окончанию формировании свечи, сигнал пропадет – нужно ли будет откатывать позицию;
  5. Условия открытия и закрытия позиции, принимаются по сформированным свечам или по текущим, формирующимся значениям;
  6. Инструменты торговли. Сколько инструментов одновременно будет торговаться, возможно ли торговля по одному инструменту роботами с разными параметрами, например, один торгует на 1 минуте другой на 5 минутах;
  7. Таймфреймы работы робота;
  8. Время работы робота;
  9. Как рассчитывается объем открываемой позиции:
    -Задается фиксировано;
    -Рассчитывается роботом по формуле (необходимо привести формулу и еще лучше с цифровым примером);
    -Рассчитывается исходя из суммы;
  10. Нужно ли уведомления (телеграмм, смс, почта, звуковое оповещение или окно с сигналом), на какие события должны быть уведомления;
  11. Если робот использует индикаторы, и они взяты из другой системы (например, иностранной программы технического анализа), то необходимо сравнить его с индикатором с терминалом, в котором планируется его использование или сквиком, если таковой есть. Если есть расхождения, то предоставить формулу расчета;
  12. Нужен или нет открытый код робота;
  13. Количество рабочих мест (например, разные компьютеры или разные квики);
  14. Описать переменные, которые необходимо иметь возможность изменять, и дать им название и описание. Далее в техническом задании оперировать лучше ими;
  15. Алгоритм робота;
  16. Собственные дополнения, которые считаете важными и не отраженные в этом списке, например, возможность протестировать стратегию, время работы робота, управление рисками, эмуляция торгов (без фактической отправки транзакций на бирже) – в этом случае ведется запись сделок робота, нужны ли отчеты по работе робота и в каком виде, логирование, обучение пользованию программы, пояснению к коду робота и т.д.


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

Таблица "Портфель" в QUIKе


    Представляю таблицу для портфельных инвестиций. В квике до сих пор такого нет. Цвет строки меняется если Прибыль%<>5%. Обновление каждые 5 сек.
Таблица "Портфель" в QUIKе

Для её создания необходимо:
1. Создать файл «tablePortfolio.txt» в папке «C:\QUIK\Scripts». Если папки нет, создать её.
2. Скопировать туда код скрипта
3. Сохранить, выбрав кодировку «ANSI», иначе вместо русских букв могут быть кракозябры.
4. Сменить расширение файла с ".txt" на ".lua"
5. Запустить скрипт командой Сервисы->Lua  скрипты->Добавить (выбрать файл tablePortfolio.lua) ->Запустить

Код скрипта:
IsRun = true
class_code="TQBR"

function main()
   -- Получает доступный id для создания
   t_id = AllocTable()   
   
   -- добавить столбцы
   AddColumn(t_id, 1, "Бумага",       true, QTABLE_STRING_TYPE, 20)
   AddColumn(t_id, 2, "Кол-во",       true, QTABLE_INT_TYPE,     7)
   AddColumn(t_id, 3, "Цена покупки", true, QTABLE_DOUBLE_TYPE, 14)
   AddColumn(t_id, 4, "Цена текущая", true, QTABLE_DOUBLE_TYPE,   14)
   AddColumn(t_id, 5, "Прибыль, р",   true, QTABLE_DOUBLE_TYPE,   14)
   AddColumn(t_id, 6, "Прибыль, %",   true, QTABLE_DOUBLE_TYPE, 14)
   t = CreateWindow(t_id)

   for iRow=1, getNumberOf("depo_limits")-1, 1 do
      rowInPortfolioTable = getItem("depo_limits", iRow) -- получить текущую строку из таблицы "Лимиты по бумагам"            
      qtyBoughtLots  = tonumber(rowInPortfolioTable.currentbal)         
      limitKind = rowInPortfolioTable.limit_kind          
      if qtyBoughtLots>0 and limitKind<1 then      
         InsertRow(t_id, iRow)-- добавить новую строку вниз таблицы   
      end
   end
   local rows, columns = GetTableSize (t_id)
   InsertRow(t_id, rows+1) -- добавить новую строку вниз таблицы для "Итого"
   
   SetWindowCaption(t_id, "Портфель: прибыли и убытки    © ramirzaev@mail.ru") 

   -- исполнять цикл, пока пользователь не остановит скрипт или не закроет окно таблицы
   while IsRun do 
      if IsWindowClosed(t_id)==true then
         IsRun=false
      end

      local currentPrice=0
      local qtyBoughtLots=0
      local profitAbs = 0
      local profitPerc = 0
      local currentSecCode= ""
      local fullNameOfInstrument = ""
      local limitKind = 0
      local rowInPortfolioTable = {}    -- строка из таблицы "Лимиты по бумагам"
      local tableInstrument = {}    -- данные "Таблицы текущих торгов"
      local iRowInOutTable = 1
	  local totalInvest = 0
	  local totalPortfolio = 0
	  local totalProfit = 0
	  local totalPercent = 0

      for iRow=0, getNumberOf("depo_limits")-1, 1 do
         rowInPortfolioTable = getItem("depo_limits", iRow) -- получить текущую строку из таблицы "Лимиты по бумагам"         
         
         qtyBoughtLots  = tonumber(rowInPortfolioTable.currentbal)
         
         limitKind = rowInPortfolioTable.limit_kind 
         
         if qtyBoughtLots>0 and limitKind<1    then      -- если кол-во лотов >0 и тип лимита T0
            currentSecCode = rowInPortfolioTable.sec_code
            fullNameOfInstrument =  tostring(getParamEx(class_code, currentSecCode, "SHORTNAME").param_image or "0") --"LONGNAME"
            avgPrice       = tonumber(rowInPortfolioTable.awg_position_price)                  
            currentPrice = GetAskPrice(currentSecCode)   
            profitAbs = (currentPrice-avgPrice)*qtyBoughtLots      
            profitPerc    = 100*currentPrice/avgPrice   - 100
			
			totalInvest = totalInvest + avgPrice*qtyBoughtLots  
			totalPortfolio = totalPortfolio + currentPrice*qtyBoughtLots   
            
            SetCell(t_id, iRowInOutTable, 1, fullNameOfInstrument) -- "Бумага"
            SetCell(t_id, iRowInOutTable, 2, tostring(qtyBoughtLots)) -- "Кол-во"RemoveZero(tostring(qtyBoughtLots)))
            SetCell(t_id, iRowInOutTable, 3, tostring( math_round(avgPrice, 3) ))  -- tostring(avgPrice))   -- "Цена покупки"
            SetCell(t_id, iRowInOutTable, 4, RemoveZero(tostring(currentPrice)))   -- "Цена текущая"
            SetCell(t_id, iRowInOutTable, 5, tostring( math_round( profitAbs, 0)) ) -- "Прибыль, р"
            SetCell(t_id, iRowInOutTable, 6, tostring(math_round(profitPerc, 1)) .."%") -- "Прибыль, %"
            
            if profitPerc >5 then       -- окрашиваем
               ColourRowInGreen(iRowInOutTable)
            elseif profitPerc<-5 then 
               ColourRowInRed(iRowInOutTable)
            else 
               ColourRowInYellow(iRowInOutTable)
            end   
            iRowInOutTable = iRowInOutTable+1
         end
      end
      totalProfit = totalPortfolio - totalInvest 
      totalPercent   = 100*totalProfit/totalInvest  
	  SetCell(t_id, iRowInOutTable, 1, "Итого") 
      SetCell(t_id, iRowInOutTable, 3, tostring( math_round(totalInvest, 0) ))  
      SetCell(t_id, iRowInOutTable, 4, tostring( math_round(totalPortfolio, 0)))  
      SetCell(t_id, iRowInOutTable, 5, tostring( math_round( totalProfit, 0)) ) 
      SetCell(t_id, iRowInOutTable, 6, tostring(math_round(totalPercent, 1)) .."%") 
	  
	  if profitPerc >5 then       -- окрашиваем
               ColourRowInGreen(iRowInOutTable)
            elseif profitPerc<-5 then 
               ColourRowInRed(iRowInOutTable)
            else 
               ColourRowInYellow(iRowInOutTable)
            end   
            iRowInOutTable = iRowInOutTable+1
      sleep(5000) -- пауза 5 сек.
      end
   --message("script table portfolio finished")
end


function ColourRowInRed(num_row)
   SetColor(t_id, num_row, QTABLE_NO_INDEX, RGB(255,150,150), RGB(0,0,0), RGB(255,150,150), RGB(0,0,0))
end
function ColourRowInYellow(num_row)
   SetColor(t_id, num_row, QTABLE_NO_INDEX, RGB(255,255,200), RGB(0,0,0), RGB(255,255,200), RGB(0,0,0))
end
function ColourRowInGreen(num_row)
   SetColor(t_id, num_row, QTABLE_NO_INDEX, RGB(150,255,150), RGB(0,0,0), RGB(150,255,150), RGB(0,0,0))
end
function GetAskPrice(inp_Sec_Code )
   local ask = tostring(getParamEx(class_code, inp_Sec_Code, "OFFER").param_value or 0)
   return ask
end
-- Округляет число до указанной точности
function math_round (num, idp)
   local mult = 10^(idp or 0)
   return math.floor(num * mult + 0.5) / mult
end
-- удаление точки и нулей после нее
function RemoveZero(str)
   while (string.sub(str,-1) == "0" and str ~= "0") do
      str = string.sub(str,1,-2)
   end
   if (string.sub(str,-1) == ".") then 
      str = string.sub(str,1,-2)
   end   
   return str
end
function OnStop()
   DestroyTable(t_id)
   IsRun = false   
end
  • обсудить на форуме:
  • QUIK

Новая индустрия: производство бытовых обогревателей, майнящих биткоины.

Интернет-омбудсмен Дмитрий Мариничев вместе с партнерами запустил сборку серверов для майнинга криптовалюты. Об этом он сообщил корреспонденту «Инвест-Форсайта» в кулуарах конференции «Электронная (Цифровая) экономика».

Предприятие находится в Москве, но название компании, адрес и объем инвестиций интернет-омбудсмен не раскрыл. Однако известно, что одним из партнеров Дмитрия Мариничева является Сергей Бобылев, экс-владелец сети магазинов бытовой техники Санрайз и генеральный директор компании SmartHeat. SmartHeat также производит серверы (или вычислительные блоки) для майнинга эфиров (Ethereum), второй по стоимости криптовалюты после биткойна (ее капитализация превышает $4,4 млрд на 18.04.17).

«Вычислительные блоки делаются полностью из российских деталей, кроме чипов», – говорит Мариничев.

Стоит заметить, что чипы – важнейшая часть сервера, это специализированный микропроцессор, чипы в компании Мариничева и Бобылева закупаются у Bitfury и других мировых производителей. Сами вычислительные блоки помещаются в закрытые стальные корпуса 35х40х40 см (есть и больше). Один сервер будет стоить от $1 тыс. до $2 тыс. Согласно расчетам ethereum mining calculator, на одном майнере с 5 видеокартами AMD Radeon RX 470 до 150 мегахэш можно заработать примерно $57 в месяц.



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

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