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

по

Суть иска к Системе для тех, кто не понял

Некто гражданин Евтушенков прихватизирует квартиру в хрущевке в 90х и начинает ее сдавать.
В десятых рыночек порешал, что «бабушкин ремонт» не позволяет сдавать квартиру за хорошую цену.
Закупается мебель из Икеи, выбрасывается чехословацкая стенка, квартира сдается за полную цену.

ВНЕЗАПНО государство в лице мэра Мухосранска спохватилось, что прихватизация прошла с нарушениями. Квартиру отбирают и продают на муниципальном аукционе приближенным к мэру местным бандитам.

Новый хозяин пишет заяву полицию, что пропала Чехословацкая стенка и бесценная коллекция хрусталя. Предварительно мэр, бандюк, следак и местная судья все это обсудили в баньке в один субботний вечер, конечно. Прямо как в фильме «Дурак» дело было. 

Поскольку чехословацкую стенку сейчас не купишь, неплохо бы ее оценить как «бесценную реликвию», ну, скажем в 170 условных единиц.
Что эти бесценные реликвии пропали, должен отвечать не предыдущий хозяин, а предпредыдущий (не по закону, а по понятиям, конечно же).

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

Код робота на LUA для QUIK

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

Предназначается для новичков в алготрейдинге, что-то типа болванки.

Важно: выставление заявок я закомментировал, поэтому можете смело запускать этот скрит, он не натворит ужаса по счету.

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
  • обсудить на форуме:
  • Quik Lua

E-TORO клянчит бабки

    • 19 июля 2017, 20:15
    • |
    • SNP13
  • Еще

Я тут для интереса зарегистрировался на e-toro, посмотреть как все работает. Сам сервис не впечатлил, — не достаточно инструментария для работы, но суть не в этом.

Звонит их менеджер, начал со стандартных фраз, мол все ли устраивает, есть ли вопросы и т.д. Обрисовал радужные перспективы, — есть у них такой трейдер AlexPlex у которого несколько тысяч подписчиков, они в ETORO им очень гордятся, мол если буду стараться, то и у меня все получится. Затем заявил, что если я пополню счет на $20K, то он мне предоставит доступ к какой-то там программулине, дающей рекомендации по входу в рынок. Я ясное дело отказался. Но он будучи более талантливым чем я ожидал, предложил тот же сервис но уже за пополнение на $10K. В общем, посылаю его в мягкой форме. Так теперь, этот телефонный террорист названивает мне регулярно, я трубку не беру, но он обходит защиту, звоня с другого номера. Написал тут мне на почту еще, мол как там на счет моего предложения на $10K?

Это как понимать? Обладая статисткой что 90% народа сливает, они подталкивают клиентов переводить им побольше бабла. Как он сам выразился, — ну вы же понимаете эта сумма маловата для торговли, вот 20-ка уже другое дело!



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

Рука дрогнула... Итоги


1 июня интуитивно купил 85 лотов Газпрома по 117,98 ( smart-lab.ru/blog/401693.php ).
22 июня докупил еще 167 лотов по цене 119,55 с целью 135 ( smart-lab.ru/blog/405801.php ).
Средняя цена покупки = (850*117,98+1670*119,55)/2520 = 119,02

Сегодня продал все 252 лота по цене 119,65.

Результат:
1. Величина полученных дивидендов = 8,0397*2520=20260 руб.
2. Величина полученных дивидендов за вычетом НДФЛ = 20260*0,87=17626 руб.
3. Прибыль, полученная при продаже бумаги = (119,65-117,98)*850+(119,65-119,55)*2520=1671 руб. 
4. Величина прибыли за вычетом НДФЛ = 1671*0,87=1454 руб.
5. Суммарно получено чистой прибыли = 17626+1454=19080 руб.
6. Срок удержания (отсчитанный от даты между первой и второй покупками) = 56 дней.


7. Результат сделок в %% = 19080/(2520*119,02)*100%=6,36%.

8. Результат в %% годовых = (6,36/56)*365=41,45%.


ВЫВОДЫ.

Несмотря на то, что целевая цена не была достигнута, можно констатировать следующее:

1. Интуитивная торговля может быть прибыльной (когда она базируется на здравом смысле).
2. Покупка под дивиденды может дать неплохой результат даже на такой гнилой бумаге, как Газик.



Всем успехов в торгах.)



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

EXANTE запускает торговлю Эфиром, Лайткоином и другими криптовалютами

    • 19 июля 2017, 14:19
    • |
    • EXANTE
      Проверенный аккаунт
  • Еще

Больше не нужно делать трудный выбор между криптовалютами и традиционными активами – все это теперь можно торговать с единого брокерского счета EXANTE. Биткоин, Лайткоин, Эфир, Монеро, Зкэш и даже Риппл – уже в нашем терминале!

EXANTE запускает торговлю Эфиром, Лайткоином и другими криптовалютами


Еще в 2012 году мы сделали ставку на биткоин и не прогадали – за год своего существования наш фонд Bitcoin Fund показал доходность в 4847%. К 2017 году эта цифра достигла уже 10262%. Фонд  стал первым в мире регулируемым способом спекулировать на курсе биткоина или заниматься длительным инвестированием в него.

               EXANTE запускает торговлю Эфиром, Лайткоином и другими криптовалютами



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

Про ДУ и почему у всех он приводит к сливу бабла

Что-то замусолили вижу тему про ДУ уважаемые блогеры смарт-лаба, скажу ка и я пару слов по этой теме.

Первое. Это то, что ДУ — это хорошо. Ну реально, что тут плохого. Мы имеем двухсторонние, а иногда трех-, четырехсторонние взаимоотношения, где каждый получает свою выгоду (Управляющий трейдер, инвестор, брокер и агент привлечения если такой есть).

Но, есть и второй момент того, почему ДУ — это низкий результат, слив бабла и зачастую отсутствие пассивного дохода.

Я уверен на 99% в том, что все те, кто занимается управлением капитала/активов и находятся на смарт-лабе работают с мелкими инвесторами, физическими лицами и т.д.

Я вот что заметил. Сам же явлюсь управляющим трейдер, основной рынок работы Форекс. Доходность которую я хочу получать в год с минимальными рисками 50%, но по течению последних 12 месяцев имеют под 40%. И я понял одну золотую вещь. Когда у тебя 10 — 100 тысяч долларов инвестиций, сытым не будешь. Нужно как минимум пол лимона и так далее. Но, а где взять такие деньги? Верно, обращаем внимание на сектор b2b, где и можно найти таких подобных жирных клиентов.

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

Первый execution: увлекательные подробности)). История о том, как я график SiU7 рисовал.

 Только сегодня и только для вас!: дочитай пост до конца — и ты услышишь увлекательную историю о рисовании графика ликвидного фьючерса.

 

Но по порядку. Вообще-то те, процессы, которыми я занимался для создания первой работающей схемы, я не очень люблю. Я больше люблю неторопливо исследовать, чем это. А собственно, что «это»?

 

Я как человек, любящий долго запрягать, когда речь зашла об алготрейдинге — долго запрягал)). Долго выбирал стек-технологий, тыкался-мыкался и остановился на некоторой связке, а именно Wealth-Lab (тестирование стратегий и всяческий рисёч) + Transaq connector (получение маркет данных, отправка ордеров) + готовый коннектор (для того, чтобы связать два предыдущих товарища между собой). Как я сказал, я долго выбирал, и когда выбрал подумал: ну всё, понеслась, запускаю и погнали алготрейдить)). Нифигаа..

 

Как оказалось парень, которого я назвал «готовый коннектор» не так прост. У меня нет его исходного кода (хотя кого я обманываю, даже если бы был, мой C# пока не так хорош, чтобы ломаться при слове delegate или чем-то подобном, что скорее всего я в коде встречу). А работать с чем-то, что не работает идеально, или вообще не очень хорошо (или даже вообще не работает), не имея возможности посмотреть внутрь, ну очень не комфортно. Развитые аналитические способности, конечно, в некоторой степени позволяют заглянуть внутрь сквозь черноту черного ящика, но это совсем не то же самое что реально видеть, как оно работает. Ну короче, коннектор не отправлял корректно заявки — часть отправлял, а часть упорно игнорил — мне такое не подходит)). Общался с разрабом — не помогло. Сам исследовал — не помогло (строил гипотезы, проверял, строил новые — проверял, конкретизировал гипотезы — проверял, факторный анализ проводил, чего только не делал, успехи были, но остались области полностью черные когда ты тупо не видишь никакой закономерности в том, почему оно вот сейчас работает, а вот сейчас не работает). После этих заглядываний через черноту черного ящика я собственно и решил форсировать апгрейдинг своего C# — никто тебе не помешает заглянуть внутрь того, что ты сам написал и сам понимаешь)).



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

Оптимистичные перспективы криптовалют

Тупые люди, они повсюду. Они настолько близко, что некоторые из них даже вы. [Нурлан Сабуров]

Люди не интересуются политикой, но считают, что жизнь должна улучшиться без их усилий. Или же выходят на протесты с одной лишь целью: пусть там что, но лишь бы не было «его». И плевать, что только что соседняя страна по той же схеме потеряла государственность. Им все равно.

Люди радуются коррекциям на рынке криптовалют, массово пишут посты на эту тему и высмеивают мифических криптофермеров. Остальные, тоже не успевшие вовремя сесть в крипто-поезд, радостно поддерживают насмешки плюсами. Тимофей матерится. Занавес.

---

Во все времена людям навязывали власть, мнение, деньги и правила жизни.

---

Как видит криптовалюты одна бабка:

  • некое подобие пирамиды
  • ни к чему не приведет
  • занятие для безработных бездельников, халявщиков и лохов
  • используется для наркоторговли, терроризма, хакеров, коррупционеров, проституток...

Коррупционеры, проститутки и т.д. хорошо чувствуют себя и так, бабуль.



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

Максим Орловский: основные факторы четвертой индустриальной революции

Максим Орловский: основные факторы четвертой индустриальной революции
Основатель и генеральный директор Iqortex Максим Орловский рассказал на блокчейн-митапе в Одессе об основных факторах четвертой индустриальной революции: Интернет вещей, большие данные, киберфизические взаимоотношения (дополненная и виртуальная реальность), искусственный интеллект.

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

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