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
В продолжение предыдущего поста ☝️

TSLab позволяет собирать роботов на кубиках без программирования. Что, конечно, многим НЕпрограммистам удобно.

Однако также можно писать скрипты на С# и очень аккуратненько укладывать всю торговую логику в код, а реиспользуемый код вообще можно складывать в скомпилированные dll и подключать к проектам в TSLab.

Если вы на стадии перехода от кубиков к коду, то вам может помочь моя шпаргалка.

Также буду оч рад любым комментам по тамошнему коду (в repository issue). А уж пулл реквестам (сниппеты на каждый день, рефакторинг, простые примеры страт и индикаторов) буду ваще щастлив 🤩
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4👌2
Сегодняшний ролик для любителей стратегий на PineScript. Заодно и поразбираемся с Trailing Stop - магической штукой уносящей ваш профит туземун 🔝

P.S.: Сегодня решил поставить эксперимент - насколько вечер субботы подходящее время для публикации контента и нужен ваш фидбек.

👍 - субботний вечер самое время
👎 - в воскресенье утром лучше
🤪 - я трезвый только со вторника по чортверг, какой контент вообще
Please open Telegram to view this post
VIEW IN TELEGRAM
👍45🍾53🐳3🔥2🤪1
В догонку ко вчерашнему видео в комментариях попросили исходники (хотя там все весьма банально), но если надо...
// This Pine Script code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// Пример генерации Трейлинг Стопа
// ! Без цены активации
// ! В обе стороны
// © Azzrael

//@version=5
strategy(
"EMA w Trailing [Azzrael]",
overlay=true,
pyramiding=0,
default_qty_type = strategy.percent_of_equity,
default_qty_value=100,
initial_capital=100
)


trail_dist = input.float(5, "Trail Distance %", minval=1, step=0.5) / 100
fast_ema_period = input.int(20, "Fast MA Period", minval=5, step=5)
slow_ema_period = input.int(100, "Slow MA Period", minval=10, step=10)

fast_ema = ta.ema(close, fast_ema_period)
slow_ema = ta.ema(close, slow_ema_period)
plot(fast_ema, color = color.yellow)
plot(slow_ema, color = color.green)

entry_long = ta.crossover(fast_ema, slow_ema)
entry_short = ta.crossunder(fast_ema, slow_ema)
var stop_price = 0.0

if strategy.position_size == 0
stop_price := na
if entry_long
strategy.entry("long", strategy.long)
else if entry_short
strategy.entry("short", strategy.short)
else if strategy.position_size > 0
stop_new = high * (1 - trail_dist)
// stop_new = close * (1 - trail_dist)
stop_price := na(stop_price) ? stop_new : math.max(stop_new, stop_price)
else if strategy.position_size < 0
stop_new = low * (1 + trail_dist)
// stop_new = close * (1 - trail_dist)
stop_price := na(stop_price) ? stop_new : math.min(stop_new, stop_price)

if not na(stop_price) and stop_price != 0.0
strategy.exit("exit", stop=stop_price)

plot(stop_price != 0.0 ? stop_price : na, color = color.red, style = plot.style_steplinebr)
👍29🔥5👌2
Ура, вас стало 1000 🥳
Очень радостно и приятно! Спасибо всем 🥂

Теперь я крутой телеграмм блоггер, осталось совсем чуть до крутого ютубера ( сейчас там 9678 ) и попрут рекламные интеграции, трансляции с дубаев, ну и випка конечно... Не подведите, парни 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥17😁11🍾8🎉4👏2
🤑 Бинанс выкатил наконец долгожданное обновление для Websocket API - теперь через вебсокет можно ставить ордера, отменять их, получать инфу о позициях и почти все что раньше у бинанса можно было делать только через Rest API.

Подробности в документации.

Раньше Binance Websocket API позволял лишь подписываться на события, но не создавать их (как это было возможно у некоторых конкурентов), теперь столь обидное различие в апишках бинанс убрал (в паблике с 01 апреля).

😠 Что печально, так это то что лимиты на запросы по вебсокету такие же как и на рест. Хотя вебсокет для апишки явно дешевле, значит и лимиты должны быть мягче. Поэтому смысл все переписывать под Websocket API есть только если у вас HFT, однако если пишете с нуля, то есть смысл подумать об использовании Websocket API вместо Rest API.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍9👌2
✔️ Сегодня продолжение сериала по API ByBit + Python + Futures

Пробуем разобраться что такое Условные Ордера (Conditional Orders) и как с ними работать через апишку на питоне. Традиционно будет визуализация и рабор пушей в вебсокет на постановку Conditional Order.

Этот видос прелюдия к другим алгоордерам (TP/SL/Trailing/OCO), поэтому полезно не пропустить если эти типы интересны...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥8👌1
📈 У меня есть ролик про расчет MACD по свечкам полученным через API Binance. Сегодня меня спросили про такое же для API ByBit. Можно сделать по разному, например как на скрине. Там и сравнение расчетных значений MACD сравнением с TradingView.

🧑‍💻 Исходники в репозитории по API ByBit.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥6👌2
✔️ В репозиторий по Binance API добавил пример использования эндпоинта /fapi/v1/ticker/24hr кот позволяет вынуть изменения за 24 часа ПО ВСЕМ ИНСТРУМЕНТАМ за ОДИН запрос (правда оч дорогой, Weight = 40).

🔄 Среди метрик что вы получаете всего за один запрос есть Суточное Изменение Цены и Суточный Объем как в Базовой Валюте, так и в Котируемой (USDT/USDC). Это позволяет вам очень оперативно поймать движ по любой из 265 пар торгуемых на Binance USD-M Futures.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍53👌1
Сыграем ?

👆- зеленькое вверх
👇- красненькое вниз
👉- направо
👍34👎19🖕83🌚3👾21
😂 Вижу игры вам понравились. Тогда сыграем в угадайку. Что за пара на скрине (09:41 МСК, крипта, спот, дневки)?
BTC - 🐻
DOGE - 🐶
SOL - 🐨
TON - 🐣
UNI - 🦊

Правильный ответ будет до 21:00 МСК
🕊8🤡6🦄4🖕2🙉2😁1🐳1🌭1👨‍💻1🆒1😡1
Блоггер лох и не включил к предыдущему посту релевантные реакции ( Игорю отд спасибо что ткнул, иначе бы я и не догадался ))) Сорян, исправляюсь.

Что за пара на скрине в предыдущем посте (крипта, 09:41 МСК, дневки)
Anonymous Poll
10%
BTC
9%
DOGE
9%
SOL
59%
TON
4%
UNI
8%
GAZP
👍7👌3🔥2👎1
🏆 Чтож вы почти все выиграли в угадайке в предыдущих постах. Это действительно TON.

Однако не только TON был активен за последние сутки. На фьючах можно было заскочить на WIFUSDT, CKBUSDT, ORDIUSDT, 1000PEPEUSDT.

👀 Как отловить такой движ? Можно использовать скринеры. Напр в TradingView есть оч приятный скринер. Однако можно и по другому.

И это другое можно превратить напр в бота с алертами в телегу...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥2👌1
❗️Обратите внимание что в методе https://bybit-exchange.github.io/docs/v5/market/instrument в фильтре lotSizeFilter появилось поле minNotionalValue.

UPD: Тут было кривое объяснение как работает MIN_NOTIONAL. См. следующий пост...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔5
🔄 В продолжение предыдущего поста. Что такое MIN_NOTIONAL.

1️⃣ У нас есть XMRUSDT его фильтры (на примере Binance):

MIN_NOTIONAL = 5
LOT_SIZE = 0.001
Текущая цена = 133,55

2️⃣ Каким минимальным объемом в USDT можно зайти в позу?

3️⃣ Может показаться что
minQuote = LOT_SIZE * price = 0,001*133,55 = 0,13355 USDT
Однако если мы выставим ордер с таким размером, то получим ошибку Filter failure: MIN_NOTIONAL

4️⃣ Потому что
MIN_NOTIONAL = 5 > 0.13355, значит
minQuote = MIN_NOTIONAL = 5 USDT
Если расчитанный minQuote перевести в XMR, то мы получим
minQty = MIN_NOTIONAL/price = 5/133,55 = 0,037439 XMR

В сл с XMR и его MIN_NOTIONAL в 5 USDT это может показаться не критично. Однако для BTCUSDT MIN_NOTIONAL = 100 USDT, что, порой, необходимо учитывать.
Please open Telegram to view this post
VIEW IN TELEGRAM
👏10👍5🆒3
💫 Завтра, в 12:00 МСК новый видос - про магическую штуку в #TradingView, кот позволяет превратить почти любой индикатор (даже написанный не вами, даже с закрытым исходным кодом) в стратегию, кот можно отбектестить, улучшить, прикрутить стопы и трейлинги и, например, отправить торговать вебхуками.

💻 И все это с минимальным кодом на #Pinescript.

Потеребите 🔔 на YouTube.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥36👍132
В комментариях предыдущему видосу меня спросили :
имеет смысл ждать видео по опущенной теме, а именно открытие и закрытие позиций не на открытии закрытии бара, а по заданным пересечениям?

😐 Видос тут не нужен, тк все оч просто. В сл с индикатором Dynamic Order Block, да и любым др где уровни достаточно статичные, это делается даже проще чем с помощью ta.cross. С помощью лимиток на эти статичные уровни, кот мы берем с чужого индикатора (см. скрин).

Но такой шаблон стратки будет менее универсальным.

#tradingview #pinescript
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10🤷‍♂3👍3👌1
This media is not supported in your browser
VIEW IN TELEGRAM
Штош, как удачно выпало в ночь с пятницы на субботу 🥂🥃🍻🐷
🤔5🔥4👏3😢2
🙂 Завтра в 12:00 MSK ролик про очень простой и очень крутой инструмент TradingView. С его помощью можно строить изощренные графики совсем без программирования на PineScript.

А потом на эти графики, например, вешать Алерты, на которые вешать Webhook ... ну а дальше вы уже сами знаете, если смотрели мои предыдущие ролики 😃

#TraidingView #PineScript
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍85
🥳 Урааа! На YouTube вас 10 тысяч. Спасибо всем кто жал кнопку Подписаться, смотрел, лайкал и рекомендовал. А за ваши комментарии особенно и отдельно. Stay tuned!
🍾45👍17🔥112
✔️ У API OKX полезное обновление эндпоинтов связанных со статусом ордеров.

Теперь в ответах есть поле attachAlgoOrds. Которое есть массив связанных алгоордеров. Заявлено что речь только про TP/SL ордера, но по логике там должно быть (я ещё не проверял) все связанное с алго, например и трейлинг в тч.

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

#okx #apiokx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72
Как поставить Take Profit вместе с Ордером в API ByBit + pybit
В ответ на комментарий.
@AzzraelCode Помогите , бюсь уже сутки. Есть часть кода для запроса по API на биржу Bybit. Ордер отправляется, но проблема с тейкпрофитом. Он применяется ко всей позиции, а надо чтобы только на ту на которую ордер. То есть если уже была позиция на 15 контрактов то когда отправляю запрос на покупку еще 15 контрактов с тейкпрофитом, то при срабатывании он покупает 15 и устанавливает ТР на всю (30) позицию. А надо чтобы на15 )
tpSlMode = 'Partial' не помогло


Соотв на скрине поза в 98 TRX. Она сформирована из отправленного через терминал ордера на 49 TRX и отправленного ордера из приведенной на посл скрине функции с размером на 49 TRX. Итого поза стала в 98 TRX. И на втором скрине TakeProfit на размер ордера отправленного через API.

#bybit #apibybit #algotrading
👍15🔥5🤝1