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

по

Практический Трейдинг. Глубина Анализа Истории. Запихни в Меня Поглубже!



«Другой же из учеников Его сказал Ему: Господи! позволь мне прежде пойти и похоронить отца моего. Но Иисус сказал ему: иди за Мною, и предоставь мертвым погребать своих мертвецов» (Мат. 8: 21-22).

Практический Трейдинг. Глубина Анализа Истории. Запихни в Меня Поглубже!



     Как Вы понимаете, пришло время поговорить о физиологии.

     Как нам всем известно, ещё со Школы (Биржевой Торговли), самые возбудимые и чувственные места у Неё (у Рыночной Реальности) расположены неглубоко от поверхности. Ну просто так природой заведено. Чтобы Каждый (Трейдер) мог всегда хорошенько оттестировать Каждую (Систему). С удовольствием. Если вдруг приспичит им обоим. Ну или почти Каждый почти Каждую...

     Частенько доводится читать вопросы наших Уважаемых Читателей Смартлаба — где можно найти потиковую историю торгов с 1812 года?
Когда спрашиваю — ЗАЧЕМ??? следует ответ — чтобы запихнуть ей (Истории) свой тестер поглубже и как следует пошуровать им там

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

Как стать настоящим опционщиком?

    • 27 февраля 2021, 12:27
    • |
    • KarL$oH
  • Еще
На смартлабе любят сопли жевать, подводя итоги за месяц, у кого -5%, у кого -3%, кому это вообще интересно?

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

Ладно, это всё лирика.

Вот, берём фотошоп и рисуем что душе угодно:

Как стать настоящим опционщиком?

Но сегодня мы поговорим о тру-опционщиках. Кто это такие?

В «Опционном чате» провели опрос, результат получился следующий:

Как стать настоящим опционщиком?

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

Как перестать беспокоиться, и начать торговать.

    • 26 февраля 2021, 18:28
    • |
    • 3Qu
  • Еще
Что-то очень много статей развелось о сливах интрадейщиков, состоянии их нервной системы и прочих невзгодах. Однако, ничего спокойней интрадея найти невозможно — думать и анализировать вообще ничего не надо, а встал из за компа — так и вообще о рынке забыл.
Все просто. Единственная стратегия на рынке: покупай дешево, продавай дорого. Других не существует. Собственно, как и в любом бизнесе — ничего нового. Вопрос только, как определить, где дешево, а где дорого.
Это тоже несложно, в этом нам поможет простейшая мат статистика. Проводим на графике линию полиномиальной регрессии, рассчитываем стандартное отлонение (СТО), проводим на графике линии СТО. Под линиями СТО — статистически дешево, над линиями СТО — дорого.
Вот и определились с уровнями покупки и продажи.
Далее, учитываем, что цена никому ничего не обязана, и может ходить куда угодно, но чаще все таки ходит внутри диапазона распределения.
Вот и все, система готова, она вся на картинке.
Как перестать беспокоиться, и начать торговать.

Теперь скажите, вы видите здесь неудачные сделки? Я не вижу, но и не все их сегодня реализовал.
Кстати, быстродействия Quik вполне и больше чем достаточно, и все время удивляюсь тем, кто жалуется на быстродействие Quik.




Скользящая средняя с динамическим диапазоном усреднения

    • 17 февраля 2021, 14:06
    • |
    • semikot
  • Еще

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

Если озвучивать задачу, которую я перед собой поставил, то это максимально быстро выявить тренд с минимальными ошибками. Самый простой трендовый индикатор – средняя, да и самый удобный при работе в Excel. У меня в Excel в принципе все расчеты. Дальше немного порассуждаю. При боковике с быстрыми изменениями направления движения средняя с большим усреднением не покажет хорошего результата, а при длительном движении средняя с маленьким периодом усреднения  будет чаще показывать разворот, которого еще нет. Значит при боковике или быстро изменяющихся движениях рынка период средней должен уменьшаться, а при трендовом движении в одну сторону период средней должен увеличиваться.



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

Пример противоположной позиции при убытке

Доброго времени суток, зашедшие впервые и уже постоянные читатели нашего блога!

Многие трейдеры как опытные, так и начинающие проходят через определенный этап – пробы новых алгоритмов. А что если открыть шорт по ртс, а по сберу лонг? И закрыть позиции только в том случае, когда они обе дают нам плюс? Подобный пример мы и разберем в сегодняшней статье.

Итак, открываем позицию по РТС в лонг, если текущий бар выше, чем каждый из предыдущих 10 баров (пример без глубокого смысла, берем за отправную точку). Затем ставим тейк профит в размере 2,5% и стоп лосс 1% от цены входа. Логика агоритма достаточно проста и не содержит скрытых смыслов. Но если вы делаете более «умную» точку входа, то, теоритически, улучшаете показатели. Отрезок 2018 года был выбран нами специально, так как он практически весь был в боковике. При этом график дохода предсказуемо плох.

Пример противоположной позиции при убытке



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

Вопрос к А.Г.

    • 13 февраля 2021, 12:33
    • |
    • T-800
  • Еще
Александр, добрый день!

Как я понял, вы в трендовых системах применяете фильтр тренд/пила (могу ошибаться в терминах).
На этой неделе Сишка плавно снижалась и наверняка этот фильтр показывал значение «тренд».
Но вчера было движение вначале в одну, потом в другую сторону.

Что показывал этот фильтр вчера? Менялся ли он в течении дня?
Насколько он помог улучшить результаты?

Необычный метод, использовать объем в алгоритме

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

Представленный алгоритм носит ознакомительный характер и является примером того, как с ним работать. Рассматривать данный пример будем на Фьючерсе РТС.

Основное содержание идеи:



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

Завершил тесты нового робота SBP, буду ставить на реал торговать.

Завершил тесты нового робота SBP, буду ставить на реал торговать.

Трендовый робот на волатильных свечах, основан на этом посте https://vk.com/birga_mmvb_roboti?w=wall-176693946_372

Общая доходность в %, это то, что показывает ТСлаб, она считается от первой котировки в 2009 году,.

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

Все тикеры (SI — 3 лота, EU — 3 лота, SR — 3 лота, RI- 3 лота, т.е. по 1 лоту в каждом варианте параметров) вместе:

Общий доход 3977% или 1 700 000 пунктов с 2009-2020 год

Средняя доходность в год 36 % от полной стоимости контактов

Доходность в год 116 % или 140 000 за 1 год, при вложениях в ГО 120 000 рублей. Доходность посчитана при использовании максимального плеча

Просадка — 52 000 пунктов
Количество сделок 19036 ШТ
Выигрышных сделок 43% — 8329 шт

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

Автоматизация сигналов из 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'

Покупка на прорыве волатильности для 15 активов

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

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

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

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

В прошлый раз рассматривал оптимизацию стратегии по диапазону прошлого дня. Брал диапазон от 20% до 190% предыдущего дня и прибавлял к открытию. В этот раз буду рассматривать два параметра:
— процент от диапазона прошлого дня (от 40% до 120% с шагом 20%)

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

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