Избранное трейдера Медленный Торопыжка
Как правило все торгуют фьюч РТС, изредка фьючи на акции, ошибочно полагая, что лучше торговать их, чем непосредственно акции на ММВБ.
Пытаются торговать маленькие движения на маленькие суммы с большими плечами. А потом удивляются, почему ничего не получается у пресловутых 95%… А потому что торговать надо большие движения на большие суммы и без плечей.
Рынок ФОРТС не предназначен для частного трейдера. Это площадка для работы алгоритмов, направленных на арбитраж и хеджирование. Здесь не работает теханализ от слова совсем, всегда срабатывают стоп-лоссы, потому что нет человеческой логики покупателей и продавцов, которая есть на рынке акций.
Невозможно на фортсе увеличить свои скилз спекулянта, потому что этот рынок постоянно меняется, так как постоянно меняются алгоритмы, поддерживающие его функционирование, и эти изменения неуловимы для обычного глаза. Вам кажется, что через два года вы уже стали опытным, а на третий год вы снова как мальчишка и новичок, все изучаете заново.
Не могу не поделиться сегодняшним опытом. Чессгря, я в шоке от прогресса и не помню когда был так последний раз. Может быть только если когда начал работать в Гугле в 2008. Но это было давно, и я сам уже не очень в это верю. А тут..
Короче, сегодня я первый раз юзал биткоин-банкомат… Вот этот.
Короткая предыстория, и вообще почему я пишу этот пост. Вообще я посты редко пишу, потому что не вижу в этом большого смысла. Но без смартлаба я бы скорее всего сегодня в эту нычку не попал ) В одном из постов тут я узнал о существовании хедж-фонда Numerai (http://numer.ai), и начал там тусить. В какой-то момент эти ребята придумали выпустить свою криптовалюту на базе эфира, и раздали её понемножку всем пользователям. Мне было пох, но недавно оно начало торговаться на бирже и меняться на биткоин! Стало интересно. Битков у меня никогда до сей поры не было, потому что то, что за них продают, мне без надобности, а рассмотреть инвестиционный потенциал в своё время не хватило мозгов. Но вот: бабки же нахаляву, немного, но всё равно! Зарегался на бирже, поменял на битки, так и дальше их куда? Оказалось, на районе есть… тадададада! биткоин-банкомат!
require"QL" log = "sbrf.log" seccode = "SRM6" lots_in_trade = 80 accnt = "" better = -5 chart = "sberbankxxx" is_run = true prev_datetime = {} len = 100 basis = 9 k_bal = {0,1,2,3} sell = false buy = false id = 0 first = true function trade_signal(shift) number_of_candles = getNumCandles(chart) bars_temp,res,legend = getCandlesByIndex(chart,0,number_of_candles-2*len-shift,2*len) bars={} i=len j=2*len while i>=1 do if bars_temp[j-1].datetime.hour>=10 then sk=true if bars_temp[j-1].datetime.hour==18 and bars_temp[j-1].datetime.min==45 then sk=false end if sk then bars[i]=bars_temp[j-1] i=i-1 end end j=j-1 end t = len+1 do_sell = false do_buy = true value = 0 if do_sell then value = 1 end if do_buy then value = -1 end toLog(log,"value="..value.." on candle: "..bars[len].datetime.year.."-"..bars[len].datetime.month.."-"..bars[len].datetime.day.." "..bars[len].datetime.hour..":"..bars[len].datetime.min.." O="..bars[len].open.." H="..bars[len].high.." L="..bars[len].low.." C="..bars[len].close.." V="..bars[len].volume) return value end function mysplit(inputstr, sep) if sep == nil then sep = "%s" end local t={} ; i=1 for str in string.gmatch(inputstr, "([^"..sep.."]+)") do t[i] = str i = i + 1 end return t end function OnInit(path) log=getScriptPath()..'\\'..log toLog(log,"==========OnInit: START") toLog(log,"==========OnInit: FINISH") end function OnStop() is_run = false toLog(log,"==========OnStop: script finished manually") end function CheckBit(flags, bit) -- Проверяет, что переданные аргументы являются числами if type(flags) ~= "number" then error("Ошибка!!! Checkbit: 1-й аргумент не число!"); end; if type(bit) ~= "number" then error("Ошибка!!! Checkbit: 2-й аргумент не число!"); end; local RevBitsStr = ""; -- Перевернутое (задом наперед) строковое представление двоичного представления переданного десятичного числа (flags) local Fmod = 0; -- Остаток от деления local Go = true; -- Флаг работы цикла while Go do Fmod = math.fmod(flags, 2); -- Остаток от деления flags = math.floor(flags/2); -- Оставляет для следующей итерации цикла только целую часть от деления RevBitsStr = RevBitsStr ..tostring(Fmod); -- Добавляет справа остаток от деления if flags == 0 then Go = false; end; -- Если был последний бит, завершает цикл end; -- Возвращает значение бита local Result = RevBitsStr :sub(bit+1,bit+1); if Result == "0" then return 0; elseif Result == "1" then return 1; else return nil; end; end; function killorders(ccode,scode) for i=0,getNumberOf("orders")-1,1 do local t=getItem("orders", i) if t ~= nil and type(t) == "table" then if( t.seccode == scode and CheckBit(t.flags, 0) == 1) then local transaction={ ["TRANS_ID"]=tostring(math.random(2000000000)), ["ACTION"]="KILL_ORDER", ["CLASSCODE"]=ccode, ["SECCODE"]=scode, ["ACCOUNT"] = accnt, ["ORDER_KEY"]=tostring(t.ordernum), } res=sendTransaction(transaction) end end end end function killstoporders(ccode,scode) for i=0,getNumberOf("stop_orders")-1,1 do local t=getItem("stop_orders", i) if t ~= nil and type(t) == "table" then if( t.seccode == scode and CheckBit(t.flags, 0) == 1) then local transaction={ ["TRANS_ID"]=tostring(math.random(2000000000)), ["ACTION"]="KILL_STOP_ORDER", ["CLASSCODE"]=ccode, ["SECCODE"]=scode, ["ACCOUNT"] = accnt, ["STOP_ORDER_KEY"]=tostring(t.ordernum), } res=sendTransaction(transaction) end end end end function main() toLog(log,"==========main: START") while is_run do if isConnected() == 1 then ss = getInfoParam("SERVERTIME") if string.len(ss) >= 5 then hh = mysplit(ss,":") str=hh[1]..hh[2] h = tonumber(str) if (h>=1000 and h<1400) or (h>=1405 and h<1845) or (h>=1905 and h<2350) then if first then for ti = 50,2,-1 do trade_signal(ti) end if buy and not sell then message(seccode.." Current state: green and buy",1) end if sell and not buy then message(seccode.." Current state: red and sell",1) end if buy and sell then message(seccode.." ERROR: green and red",1) end if not buy and not sell then message(seccode.." WARNING: nothing",1) end first = false end prev_candle = getPrevCandle(chart,0) if not isEqual(prev_candle.datetime,prev_datetime) then current_value = trade_signal(1) if current_value ~= 0 then optn = "B" if current_value==1 then optn = "S" end curvol=0 no=getNumberOf("FUTURES_CLIENT_HOLDING") if no>0 then for i=0,no-1,1 do im=getItem("FUTURES_CLIENT_HOLDING", i) if im.sec_code==seccode then curvol=im.totalnet end end end trvol = -current_value*lots_in_trade-curvol if trvol ~= 0 then killorders("SPBFUT",seccode) killstoporders("SPBFUT",seccode) f = io.open(getScriptPath().."\\sbrf2_pos.txt","r") sbrf2_pos=f:read("*n") f:close() f = io.open(getScriptPath().."\\sbrf3_pos.txt","r") sbrf3_pos=f:read("*n") f:close() pr,n,l = getCandlesByIndex ("futsber", 0, getNumCandles("futsber")-1, 1) local trans = { ["ACTION"] = "NEW_ORDER", ["CLASSCODE"] = "SPBFUT", ["SECCODE"] = seccode, ["ACCOUNT"] = accnt, ["OPERATION"] = optn, ["PRICE"] = toPrice(seccode,pr[0].close+current_value*better), ["QUANTITY"] = tostring(math.abs(curvol-sbrf2_pos-sbrf3_pos)), ["TRANS_ID"] = tostring(getTradeDate().month*100+getTradeDate().day+id) } id = id+1 --res = sendTransaction(trans) message(seccode.." Send : " .. res, 2) toLog(log,"Send: ".. res) for btr=0,200,5 do local trans = { ["ACTION"] = "NEW_STOP_ORDER", ["CLASSCODE"] = "SPBFUT", ["SECCODE"] = seccode, ["ACCOUNT"] = accnt, ["OPERATION"] = optn, ["PRICE"] = toPrice(seccode,pr[0].close-current_value*btr), ["STOPPRICE"] = toPrice(seccode,pr[0].close-current_value*(btr+better)), ["QUANTITY"] = tostring(6), ["TRANS_ID"] = tostring(getTradeDate().month*100+getTradeDate().day+id), ["EXPIRY_DATE"] = "GTC" } id = id+1 --res = sendTransaction(trans) message(seccode.." Send : " .. res, 2) toLog(log,"Send: ".. res) end if current_value == 1 then message(seccode..' RED: buy->sell',1) toLog(log,"RED signal") else message(seccode..' GREEN: sell->buy',1) toLog(log,"GREEN signal") end else if current_value == 1 then message(seccode..' RED: buy->sell',1) toLog(log,"RED signal, but nothing to do") else message(seccode..' GREEN: sell->buy',1) toLog(log,"GREEN signal, but nothing to do") end end else if buy and not sell then toLog(log,"Nothing to do. Current state: green and buy",1) end if sell and not buy then toLog(log,"Nothing to do. Current state: red and sell",1) end if buy and sell then toLog(log,"Nothing to do. ERROR: green and red",1) end if not buy and not sell then toLog(log,"Nothing to do. WARNING: nothing",1) end end prev_datetime = prev_candle.datetime end end end end sleep(5*1000) end toLog(log,"==========main: FINISH") end
Больше не нужно делать трудный выбор между криптовалютами и традиционными активами – все это теперь можно торговать с единого брокерского счета EXANTE. Биткоин, Лайткоин, Эфир, Монеро, Зкэш и даже Риппл – уже в нашем терминале!
Еще в 2012 году мы сделали ставку на биткоин и не прогадали – за год своего существования наш фонд Bitcoin Fund показал доходность в 4847%. К 2017 году эта цифра достигла уже 10262%. Фонд стал первым в мире регулируемым способом спекулировать на курсе биткоина или заниматься длительным инвестированием в него.
Я уже писал тут, что на графиках TradingView появилась вкладка «криптовалюты». Крипты торгуются на нескольких биржах: TV транслирует данные с основных и вы можете посмотреть как они сходятся-расходятся и т.п.:
Кстати говоря, Олег Богданов, который общался с Виталиком Бутериным на ПМЭФ, сказал мне, что Виталик считает что наиболее надежная — это CoinBase.
В TV я настроил себе 6 графиков основных криптовалют + вочлист справа.
Больше даже не знаю, где еще можно смотреть все криптовалюты в одном месте.
Можете себе сохранить ссылку: https://ru.tradingview.com/chart/qVcrKbWR/
Очень много неправильных трактовок, так как этот вопрос сложен и с точки зрения теории права, и с точки зрения правоприменительной практики.
Из чего нужно исходить?
Итак, вы трейдер и вам предлагают взять в ДУ, или инвестор, к которому трейдер обратился с подобным предложением.
Что самое главное?
1.БУДЕТ ЛИ ПЕРЕДАЧА ДЕНЕГ ТРЕЙДЕРУ
Это принципиальнейший момент.
Законное ДУ может осуществлять только лицензированное юрлицо, которому деньги ПЕРЕДАЮТСЯ. Если нет передачи денег управляющему — то нет никакого доверительного управления, отношения ИНЫЕ.
Обычная ситуация – деньги переданы для торговли по договору займа.
Уголовная экспертиза такие договоры признает притворными, заключенными с целью скрыть незаконное ДУ (ст 171). Это означает, что в гражданском суде вы по такому договору ничего не получите – он ничтожен.
Вы можете стать гражданским истцом в уголовном процессе, но наличие вашего ущерба не будет означать, что вам следует вернуть деньги, так как при ДУ управляющий обязан вернуть не деньги, а лишь результат ДУ, который может быть почти 100%-ым сливом. Мол, «вот вам -95% по счету (как у некоторых бывает на ЛЧИ в 2014 году), и я вам ничего не должен».