Azzrael Code | Algotrading w Python, PineScript, ByBit, OKX, Binance API, TradingView
1.83K subscribers
72 photos
1 video
2 files
204 links
🤑 Инвест Айтишка. Программирую штуки для Трейдинга и Инвестиций. Python + Binance API, OKX API, API Тинькофф Инвестиции, API Мосбиржи.
👨‍💻Бэктесты на TradingView PineScript и TSLab.
👉🏼 Связь azzrael.ru/spasibo
Download Telegram
В продолжение TradingView Webhooks + API Binance.
Попалось публичное репо https://github.com/51bitquant/binance-tradingview-webhook-bot
Готовый проект на фласке, умеющий торговать и на споте бинанса и на фьючах.
С подробной иструкцией по деплою и связке с TV.
В зависимостях только requests и flask.
40 форков и 55 звезд.
👍11🔥1
Рынок идет против? Устал от маржин колов? Киты собирают ликвидность о твои позы?
Выход есть! Доверься Силе Луны! Торгуй по лунным фазам
https://www.tradingview.com/script/BAc77VfD-astropark-Moon-Phases-strategy/
P.S.: Не является инвестиционной рекомендацией 🤣🤣🤣
😁14🤣7
На канале новый ролик. Давно просили, с мая, с выхода первых роликов про OKX API, снять про вебсокеты OKX API. Ну и вот сегодня случилось. Получилось плотненько и максимально подробно. Сильно подробнее чем аналогичный ролик по бинансу. Приятного просмотра...
https://youtu.be/YCEMCVWiSH0
👍14
Исходники к ролику
"""
!!! ******** Поддержи канал на https://boosty.to/azzrael Спасибо ******** !!!
https://www.youtube.com/@AzzraelCode
https://t.me/azzraelru

https://pypi.org/project/websockets/
https://websockets.readthedocs.io/en/7.0/api.html
https://www.okx.com/docs-v5/en/#overview-websocket
https://github.com/AzzraelCode/azzyt-binance/tree/main/vx_websockets
https://www.youtube.com/watch?v=OFThdbbXRpQ
"""
import asyncio
import datetime
import json

import websockets


async def azz_ws():
url = 'wss://ws.okx.com:8443/ws/v5/public'
async with websockets.connect(url, ping_interval=20, ping_timeout=60) as ws:
print('Connected ' + datetime.datetime.now().isoformat())

subs = dict(
op='subscribe',
args=[
dict(channel='mark-price', instId='BTC-USDT'),
dict(channel='mark-price', instId='ETH-USDT-SWAP'),
]
)
await ws.send(json.dumps(subs))

async for msg in ws:
msg = json.loads(msg)
ev = msg.get('event')
data = msg.get('data')
if ev:
print(f"************* event {ev} = {msg.get('arg')} *************")
elif data and len(data) > 0:
symbol = data[0].get('instId')
price = float(data[0].get('markPx', '0.0'))
print(f"{datetime.datetime.now().isoformat()} {symbol} = {price}")

print('Disconnected ' + datetime.datetime.now().isoformat())

if __name__ == '__main__':
print(f"AzzraelCode YouTube Subs")
asyncio.run(azz_ws())
👍151
2023-12-07 10 10 23.png
62 KB
Для тех кто торгует криптовалютными деривативами могут быть интересны грядущие изменения на ОКХ https://www.okx.com/docs-v5/log_en/#upcoming-changes-lot-size-change-for-perpetual-and-futures-contracts. Особенно интересны если вы торгуете небольшими объемами.
-
Если кратко - планируют уменьшить минимальный лот на свапах и фьючах. Сейчас мин лот на BTC-USDT-SWAP = 0.01BTC ~ 430USDT. Планируют уменьшить до 0,001BTC. Что будет даже меньше мин лота на фьчах бинанса (они в прошлом мес сильно подняли мин лот многих пар). Что сделает торговлю более доступной, что оч ценно особенно в момент разработки. Круто!

Текущие Trading Rules здесь https://www.okx.com/trade-market/info/swap
А изменения они обещают транслировать в вебсокет (актуально для работающих ботов).
👍9
В ответ на комментарий https://www.youtube.com/watch?v=-SFOkEgz6hc&lc=Ugzz9Gmst4PhNKyck914AaABAg
скажите а как в зависимости от таймфрэйма изменять период скользящей, например на 4 часах период 20 а на часе будет 40?


//@version=5
indicator("AzzraelCode YT Comment", overlay=true)
len = 2
// https://www.tradingcode.net/tradingview/time-frame-period/
if timeframe.period == "15"
len := 100

sma = ta.sma(close, len)
plot(sma)
🔥62
This media is not supported in your browser
VIEW IN TELEGRAM
Про перемещение метки label в PineScript. Один из вариантов.

В ответ на ещё один ))) комментарий https://www.youtube.com/watch?v=m42MeRRykrw&lc=Ugy_jv30qohFp3UKLR94AaABAg
👍8🔥1👌1
У Binance API Websocket есть очень удобная подписка https://binance-docs.github.io/apidocs/futures/en/#all-book-tickers-stream , кот отдает обновления ВСЕХ (в одной подписке) торгуемых тикеров. Я обычно подписываюсь на неё и складываю обновления в редис или мемкеш и имею всегда актуальные цены без трат лимитов. Сейчас и до 20 декабря она работает в рилтайме. Но с 20 декабря 2023 пуши будут приходить раз в 5 сек. Может быть критично для высокочастотников. Обратите внимание кто использует ;)
Update Speed: Real-time, Starting from December 20th, 2023, it will be updated every 5 seconds.
👍153👌2😭1
Уже на канале продолжение минисериала про OKX API Websocket. Сегодня попробую разобраться с отловом ошибок. В тч и разрывы и восстановления соединений (один из способов, есть и другие, возможно даже более правильные 😊). А также возвращаемые ошибки и как их интерпретировать.
https://youtu.be/F7VNi_V0rMU
👍11🔥2👏2
Сегодня экспериментирую с форматом. https://youtube.com/shorts/xs9vUWuyiV4?feature=share
👍 - пойдет
👎 - ерунда

//@version=5
indicator("AzzraelCode YT Comment", overlay=true)
len = input.int(60, "Период экстремумов", minval=3)

p = chart.point.now()
var u = line.new(p, p, extend = extend.right, color = color.red, width = 3)
var d = u.copy()
d.set_color(color.green)

if ta.highestbars(len) == 0
u.set_xy1(bar_index, high)
u.set_xy2(bar_index + 1, high)

if ta.lowestbars(len) == 0
d.set_xy1(bar_index, low)
d.set_xy2(bar_index + 1, low)
👍40👎1
В PineScript всегда оооооочень не хватало такой ооооочень простой штуки как отладочные логи. Особенно ощущалась эта нехватка, если вы приходили в PineScript из других языков программирования. Приходилось городить всякую дичь, испытывать боль и страдания. Однако в августе 2023 года все изменилось 🥳🥳🥳🥳😍😍😍
https://youtu.be/BdTH34nFQ-Q

// © Azzrael 
// YT https://www.youtube.com/@AzzraelCode
// https://www.tradingview.com/blog/ru/pine-logs-in-pine-script-40490/

//@version=5
indicator("AzzraelCode YouTube Sample!", overlay=true)
perc_limit = input.int(1, "Percent Limit")/100
sma = ta.sma(close, 100)

if ta.crossover(close, sma)
log.info("Crossover {0, time} {1}", time, close)

if ta.crossunder(close, sma)
log.warning("Crossunder {0,,number,integer} {1}", bar_index, close)

perc_change = math.abs(close - open)/open
if not barstate.isrealtime and perc_change > perc_limit
log.error(str.format("\nИзменение {0,number,percent}\n", perc_change) + str.tostring(bar_index) + "\n" + str.format_time(time, "yyyy-MM-dd"))

plot(sma, color = color.yellow)
👍7
⚡️BOOST ME ⚡️ https://t.me/azzraelru?boost
И тогда сделаю невероятно нужную всем штуку - Инвест Айтишный фон у списка постов 😂 Какой нибудь такой с графиками или типа того.
👍13🍾2👾1
Azzrael Code | Algotrading w Python, PineScript, ByBit, OKX, Binance API, TradingView pinned «⚡️BOOST ME ⚡️ https://t.me/azzraelru?boost И тогда сделаю невероятно нужную всем штуку - Инвест Айтишный фон у списка постов 😂 Какой нибудь такой с графиками или типа того.»