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

по

Открытие позиции на откате 1 | Полезные мелочи

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

В данном видео я разбираю эти случаи, высказываю свои «За» и «Против» подобного открытия позиций на откате.

Про то, что такое «Полигон для новичка», можно узнать здесь smart-lab.ru/blog/360646.php

П.С. На всякий случай, моя книга «Восемь правил выживания на рынке акций», см. здесь author.today/work/104250


Методичка ABC of stock trading от легенды Blastarr_no_1

12 лет назад в ЖЖ блистал такой человек Blastarr_no_1. Он красочно рассказывал, как зарабатывал деньги десятками миллионов рублей, и в итоге заработал на кризисе 2008-2009 более 1 млрд рублей. Потом он сообщил всем что ушёл в политику и удалил свой ЖЖ. Выдумка или правда — так и осталось тайной. Вот тут 10 лет назад я делился у себя в блоге мыслями после прочтения его блога. По ссылке внутри поста на бластара можно не переходить, после удаления этот логин зарегали какие-то лохотронщики.

Этот человек тогда накатал методичку торговли которую назвал ABC of stock trading. Сейчас ее сложно где-либо найти кроме смартлаба. Из тех, кто сейчас на рынке, мало кто помнит такие далекие времена, поэтому я решил на всякий случай напомнить, вдруг вас заинтересует.

Итак, Методичка ABC от blastarr_no_1 «Основные принципы спекуляции» в 5 частях:

smart-lab.ru/blog/250818.php
smart-lab.ru/blog/250820.php
smart-lab.ru/blog/250824.php
smart-lab.ru/blog/250827.php
smart-lab.ru/blog/250831.php

Чтобы не просрать этот пост, добавляйте его в избранное❤️

Автоматизация сигналов из TradingView за 2 минуты. Websockets Python

from websocket import create_connection
import json
import random
import string
import re
import pandas as pd
import csv
from datetime import datetime
from time import sleep

def filter_raw_message(text):
    try:
        found = re.search('"m":"(.+?)",', text).group(1)
        found2 = re.search('"p":(.+?"}"])}', text).group(1)
        print(found)
        print(found2)
        return found1, found2
    except AttributeError:
        print("error")
    

def generateSession():
    stringLength=12
    letters = string.ascii_lowercase
    random_string= ''.join(random.choice(letters) for i in range(stringLength))
    return "qs_" +random_string

def generateChartSession():
    stringLength=12
    letters = string.ascii_lowercase
    random_string= ''.join(random.choice(letters) for i in range(stringLength))
    return "cs_" +random_string

def prependHeader(st):
    return "~m~" + str(len(st)) + "~m~" + st

def constructMessage(func, paramList):
    #json_mylist = json.dumps(mylist, separators=(',', ':'))
    return json.dumps({
        "m":func,
        "p":paramList
        }, separators=(',', ':'))

def createMessage(func, paramList):
    return prependHeader(constructMessage(func, paramList))

def sendRawMessage(ws, message):
    ws.send(prependHeader(message))

def sendMessage(ws, func, args):
    ws.send(createMessage(func, args))

def generate_csv(a):
    out= re.search('"s":\[(.+?)\}\]', a).group(1)
    x=out.split(',{\"')
    
    with open('data_file.csv', mode='w', newline='') as data_file:
        employee_writer = csv.writer(data_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
    
        employee_writer.writerow(['index', 'date', 'open', 'high', 'low', 'close', 'volume'])
        
        for xi in x:
            xi= re.split('\[|:|,|\]', xi)
            print(xi)
            ind= int(xi[1])
            ts= datetime.fromtimestamp(float(xi[4])).strftime("%Y/%m/%d, %H:%M:%S")
            employee_writer.writerow([ind, ts, float(xi[5]), float(xi[6]), float(xi[7]), float(xi[8]), float(xi[9])])
            


# Initialize the headers needed for the websocket connection
headers = json.dumps({
    # 'Connection': 'upgrade',
    # 'Host': 'data.tradingview.com',
    'Origin': 'https://data.tradingview.com'
    # 'Cache-Control': 'no-cache',
    # 'Upgrade': 'websocket',
    # 'Sec-WebSocket-Extensions': 'permessage-deflate; client_max_window_bits',
    # 'Sec-WebSocket-Key': '2C08Ri6FwFQw2p4198F/TA==',
    # 'Sec-WebSocket-Version': '13',
    # 'User-Agent': 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 Edg/83.0.478.56',
    # 'Pragma': 'no-cache',
    # 'Upgrade': 'websocket'
})

    
# Then create a connection to the tunnel
ws = create_connection(
    'wss://data.tradingview.com/socket.io/websocket',headers=headers)

session= generateSession()
print("session generated {}".format(session))

chart_session= generateChartSession()
print("chart_session generated {}".format(chart_session))

# Then send a message through the tunnel 
sendMessage(ws, "set_auth_token", ["unauthorized_user_token"])
sendMessage(ws, "chart_create_session", [chart_session, ""])
sendMessage(ws, "quote_create_session", [session])
sendMessage(ws,"quote_set_fields", [session,"ch","chp","current_session","description","local_description","language","exchange","fractional","is_tradable","lp","lp_time","minmov","minmove2","original_name","pricescale","pro_name","short_name","type","update_mode","volume","currency_code","rchp","rtc"])
sendMessage(ws, "quote_add_symbols",[session, "BINANCE:BTCUSDT", {"flags":['force_permission']}])

sendMessage(ws, "resolve_symbol", [chart_session, "symbol_1","={\"symbol\":\"BINANCE:BTCUSDT\",\"adjustment\":\"splits\"}"])
sendMessage(ws, "create_series", [chart_session,"s1","s1","symbol_1","1",300])

sendMessage(ws, "quote_fast_symbols", [session,"BINANCE:BTCUSDT"])

sendMessage(ws, "create_study", [chart_session,"st1","st1","s1","Volume@tv-basicstudies-118",{"length":20,"col_prev_close":"false"}])
sendMessage(ws, "quote_hibernate_all", [session])

#st='~m~140~m~{"m":"resolve_symbol","p":}'
#p1, p2 = filter_raw_message(st)
#sendMessage(ws, "resolve_symbol", [chart_session,"symbol_1","={\"symbol\":\"BINANCE:BTCUSDT\",\"adjustment\":\"splits\",\"session\":\"extended\"}"])
#sendMessage(ws, "create_series", [chart_session, "s1", "s1", "symbol_1", "1", 2])
#sendMessage(ws, "create_study", [chart_session,"st4","st1","s1","ESD@tv-scripting-101!",{"text":"BNEhyMp2zcJFvntl+CdKjA==_DkJH8pNTUOoUT2BnMT6NHSuLIuKni9D9SDMm1UOm/vLtzAhPVypsvWlzDDenSfeyoFHLhX7G61HDlNHwqt/czTEwncKBDNi1b3fj26V54CkMKtrI21tXW7OQD/OSYxxd6SzPtFwiCVAoPbF2Y1lBIg/YE9nGDkr6jeDdPwF0d2bC+yN8lhBm03WYMOyrr6wFST+P/38BoSeZvMXI1Xfw84rnntV9+MDVxV8L19OE/0K/NBRvYpxgWMGCqH79/sHMrCsF6uOpIIgF8bEVQFGBKDSxbNa0nc+npqK5vPdHwvQuy5XuMnGIqsjR4sIMml2lJGi/XqzfU/L9Wj9xfuNNB2ty5PhxgzWiJU1Z1JTzsDsth2PyP29q8a91MQrmpZ9GwHnJdLjbzUv3vbOm9R4/u9K2lwhcBrqrLsj/VfVWMSBP","pineId":"TV_SPLITS","pineVersion":"8.0"}])


# Printing all the result
a=""
while True:
    try:
        sleep(1)
        result = ws.recv()
        pattern = re.compile("~m~\d+~m~~h~\d+$")
        if pattern.match(result):
            ws.recv()
            ws.send(result)
            print("\n\n\n hhhhhhhhhhhhhhhhhhhhhh "+ str(result) + "\n\n")
        print(result)
        a=a+result+"\n"
    except Exception as e:
        print(e)
        break
    
generate_csv(a)
'https://github.com/rushic24/tradingview-scraper'

Бычья стратегия Slingshot - покупка акций Apple (AAPL) с хеджированием через ОПЦИОНЫ

Благодарю коллег за комментарии к моему предыдущему посту
Трейдер Ray Badman поделился очень любопытным видео с современным примером хеджирования позиции в акциях с нулевыми затратами на опционы.

Материал на английском, кто знает язык смотрите в оригинале.
Я постарался адаптировать перевод этой стратегии на русский язык.
Поддержите лайком.

Гость в студии управляющий Mark Phillips называет стратегию Slingshot .
Буквально на русском: РОГАТКА

slingshot [ˈslɪŋʃɒt] — (сущ.) рогатка

Построен практический пример на акциях Apple (AAPL)

Смотрим YouTube:


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

Подход с "защитой от дурака"



     Если большинство на рынке ведет себя иррационально, то рациональная стратегия – принимать это как данность, не спорить, использовать в своих интересах. Например, если считаешь, что участие в некоем пузыре имеет для тебя положительное ожидание (например, есть основания полагать, что ты выйдешь из него правильно) – надо участвовать. Нет таких оснований – не участвовать. А не априорное правило, что «пузыри зло». Важно не это, а можно ли использовать сие зло во благо?

     Между тем куча людей предпочитает сначала в своем уме довести это большинство до ума, и подстраиваться под это. Но это не рациональность, это упоротость и упрямство. Но это какие-то глубинные штуки, лежащие в природе людей.  Меня всегда поражали, например, шортисты «Теслы». Терять деньги и продолжать считать себя умнее всех.

     Отсюда, кстати, следует, почему моментум-стратегии и алго мне симпатичнее, чем «портфели по мультипликаторам». Портфели по мульти-пульти подразумевают, что все игроки вокруг рациональные. Точнее, что сейчас они почему-то временно иррациональные, но через год почему-то поумнеют. И правильные активы вырастут, неправильные – упадут, крипта вообще исчезнет с лица земли, и те, кто поумнел на год раньше, получат свои плюшки за прозорливость.

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

     А ставка на «все станут как умные» — отчаянное дело. Не станут ведь.



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

Опционный чай. Опционы это просто...

    • 01 февраля 2021, 01:45
    • |
    • KarL$oH
  • Еще

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

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

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

Опционный чай. Опционы это просто...
Также на выходных обсудили очень интересный вопрос, который хотелось бы вылить в статью и подвести финальную черту.

Сначала несколько вводных:
1. Мы знаем, что на Америке торгуются акции и опционы на акции;
2. Мы знаем, что на Мосбирже торгуются акции на фондовой секции, фьючерсы на акции и опционы на фьючерсы на акции.

Как хеджируются американцы?



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

MAV2 индикатор объемов положительных и отрицательных баров

MAV2 индикатор объемов положительных и отрицательных баров
--[[
MA volumn up down
--]]
Settings=              
        {                          
            Name = "MAV2",   -- indicator name
            per=10,               -- period			
            line=                                     
                {                               
                    {  
                        Name = "MA",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(0,0,255)
                    },
                    {  
                        Name = "MA2",
                        Type =TYPE_LINE,
                        Width = 1,
                        Color = RGB(255,0,0)
                    }						
                }
       }


function Init()   
  mav1 = {}
  mav2 = {}  
  return 2
end


function OnCalculate(index)
  
  per = Settings.per
  
  if index > 1 then 
    curv = C(index)
    prevv = C(index-1)	
  else 
    curv = C(index)
    prevv = C(index)	
  end   
 
  if curv - prevv > 0 then 
    if index > 1 then 
      mav1[index] = mav1[index-1] + V(index)
	  mav2[index] = mav2[index-1] 
    else 
      mav1[index] = V(index)  
	  mav2[index] = 0
    end    
  else 
    if index > 1 then 
	  mav1[index] = mav1[index-1]
      mav2[index] = mav2[index-1] + V(index)
    else 
	  mav1[index] = 0
      mav2[index] = V(index)  
    end 
  end 
  
  if index > per then
    vv1 = mav1[index] - mav1[index-per]
	vv2 = mav2[index] - mav2[index-per]
  else 
    vv1 = 0
	vv2 = 0
  end   

  return vv1, vv2

end

Получение статуса квалифицированного инвестора: памятка

Получение статуса квалифицированного инвестора: памятка


Что дает статус квалифицированного инвестора

Ряд инструментов на бирже доступны только для квалифицированных инвесторов, а именно:

— инвестиционные паи ЗПИФов следующих категорий: хедж-фондов, особо рискованных (венчурных) инвестиций, кредитных, прямых инвестиций и долгосрочных прямых инвестиций

— ценные бумаги, предназначенные в соответствии с эмиссионными документами для квалифицированных инвесторов

— иностранные ценные бумаги, не имеющие листинга на российских биржах

— с 2021 года и до введения тестирования для неквалифицированных инвесторов — структурные ноты и продукты, а также облигации с высоким уровнем риска (предположительно, с рейтингом BBB+ и ниже). Это произойдет с момента, когда внесенные в декабре изменения в закон со стороны Центробанка вступят в силу, и ЦБ примет соответствующие уточняющие положения



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

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