►
From YouTube: Hummingbot Weekly Developer Call 005 | 17 August 2022
Description
The Hummingbot Weekly Developer Call is a technical and general discussion intended to gather active community developers who contribute to making the Hummingbot codebase better through Hummingbot Improvement Proposals (HIPs) and Bug Fixes.
Meeting Info:
- Schedule: August 17, 2022 : 10:00 AM EST / 2:00 PM UTC / 10:00 PM HKT
- Duration: 60 minutes
- Location: Hummingbot Discord at https://discord.com/channels/530578568154054663/996769563054186536
Agenda:
- HBOT Nomad hack: post-mortem and next steps
- Discuss Indicators PRD
- DCA script for DEXes "mainly Uniswap"
- Community Q&A
#hummingbot #developer #algotrading #cryptotrading #liquiditymining #marketmaker #trading #bottrade
A
A
A
A
A
B
B
There
was
about
11.8
million
page
by
tokens
that
were
taken
in
the
hack,
and
so
after.
A
B
We
so
so
far.
B
B
So
so
I
do
think
that
I
felt
like
you
know,
puts
more
pressure
on
on
the
token
market,
and
so
as
people
you
know,
I
do
think
that
you
know
it
would
be
better
if
those
tokens
obviously
were
sold
or
or,
if
somehow,
so,
that's
why
we,
we
did
lay
out
a
plan
to
potentially
you
know,
reissue
the
hbo
token.
In
the
forum
thread,
I
should
post
thread
in
the
community,
so
I
would
say
the
foundation
does
believe
the
reassurance
is
possible.
B
However,
we
will
only
want
to
take
that
step
if
it's
something
that
you
know
the
majority.
B
Is
behind?
Because
there
is
significant
operational
work
with
reissued
token,
creating.
B
Contracts
locked
up
open
holders,
you
know
and
we've
been.
A
B
So
there
are
some
special
advantages
with
re-issuance.
For
example,
you
could
reissue
a
spot
on
a
different
chain
by
polygon.
B
Or
avalanche,
where
it's
more
gas
efficient.
However,
due
to
the
the
work
involved
and
because
the
tokens
taken
only.
B
About
one
percent
of
oil
supply
you
know
for
now
I
would
say
our
stance,
we're
not
going
to
do
it
practically,
but
if,
if
the
community.
A
B
B
Are
with
the
know
my
factors
update,
but
please
read
the
post
mortem
that
we
published
in
the
forum.
B
So
yeah,
so
does
anyone?
If
anybody
is
questions
about
the
nomad
hack
or
the
you
know
how
we're
handling
it.
Please
yeah,
please.
B
In
addition,
just
to
give
everyone
an
update,
so
we're
we're
going
to
start
kind
of
like
the
process
for
for
epoch,
2..
Now
that
you
know-
and
I
think
for
epoxy
we're
going
to
we're
moving
toward
a
more
decentralized
community-based
process
or
like
basically
broke
by
us
improvements
and
so
forth.
So
this
is
something
that
we
publish
in
the
forum
a
while
back,
but
we'll
start
to
add
all
that
all
that
into
the
documentation
site.
B
Basically
the
process
for
someone
to
submit
bugs
submit
enhancements,
you
know
create
progress
so
forth.
In
addition,
we'll
start
to
kind
of
like
create
coming
back
for
some
of
the
things
that
we've
discussed.
You
know
in
the
past.
A
B
Last
week
we
discussed
project
how
community
members.
B
B
Okay,
yeah
yeah,
it
actually
might
have
been
my
side,
yeah
yeah.
Why
don't
you
go
ahead
and
start
on
the
indicators,
prd
and
discuss
that
and
then
I'll
I'll
try
to
reconnect.
A
Oh
wait
just
to
talk
soothsayer,
that
is
here
in
the
call,
and
last
week
we
defined
that
we
are
going
to
go
for
the
solution
that
you
proposed.
That
was
adding
the
dependencies
to
the
requirements
txt
for
the
db
drivers
so
feel
free
to
continue
with
that
implementation
or
rebase
your
your
pr
and
we're
going
to
merge
it.
A
A
We
can
start
talking
about
the
brd
if
you
can
open
the
notion
page
so
in
that
notion,
page
is
a
explanation
of
what
what
we
want
to
do
these,
who
is
the
one
that
is
going
to
use
it
well
other
things,
so
we
can
start
with
the
description
just
to
clarify,
and
it
is
once
I
cover
one
heading
like
description.
A
You
can
add
more
details
if
you
want
and
all
those
details
we're
going
to
collect
and
improve
this
prd,
and
once
we
all
agree
about
which
has
to
be
the
final
solution,
we
are
going
to
create
the
hip
and
some
depth
will
implement
this
solution
so
well.
What
we
want
to
do
is
provide
indicators
to
the
strategy.
A
One
of
them
are
like
event
basic,
I
gotta
know
something
happens,
okay
quickly,
go
and
do
this,
so
it's
like
a
callback
of
one
like
the
methods
that
we
have
that
are
triggered
when
an
event
happens
like
hey
a
market
order
is
filled
or
or
there
is
a
field
well
something
like
that.
Some
indicators
that
will
be
event-based,
like
probably,
can
be
an
external
api,
the
trade
view
integration,
is
one
example
of
event-based.
A
Well,
let
me
put
this
into
side
by
side
discord.
So
if
you
are.
A
A
I
don't
know
moving
average
or
indicators.
Currently
we
have
an
instant
volatility
indicator
that
is
using
a
strategy,
but
the
bad
thing
about
it
is
that
you
have
to
create
an
instance
of
that
class
every
time
that
you
want
to
call
the
new
indicator,
and
probably
it's
much
more
easy
to
you
to
use
a
library
like
ti,
leave
to
do
this
so
well,
that's
one
of
the.
A
They
also
have
these
ohlc
bars
and
then
could
be
like
I
don't
know,
sentiment
analysis
and
we're
gonna
receive
that
indicator
from
external
sources
and
instead
of
of
triggering
an
event,
you
can
just
access
the
the
value
like,
for
example,
the
right
oracle.
You
can
access
the
prices
of
different
sources,
every
tick,
but
it's
not
triggering
any
event.
So
those
are
the
three
types
of
events
that
we're
going
to
handle.
A
Yeah
that
one
the
instance
volatility
indicator
is
the
current
implementation
details.
But
the
idea
is
to
remove
that.
Well,
we
are
going
to
keep
that,
but
instead
of
having
that
indicator
that
you
have
to
pass
to
it
the
price
of
the
tick,
every
tick
and
then
you
have
to
manage
the
buffer
inside,
select
the
length
and
all
those
things
you
can
simply
have
an
object.
That
will
be
the
ohlc
object
and
you
can
call
the
indicators
directly
with
gad
without
using
python
directly
or
python.
A
Kalito
asks
will
indicators
be
done
in
separate
strategy,
or
will
it
be
integrated
to
a
particular
strategies
like
x,
okay,
kalito,
the
idea,
that's.
What
we
have
to
define
here
is
like
we
have
to
define
the
the
what
we
want
about
this,
but
I
think
that
this
has
to
be
a
module
that
could
be
used
in
any
part
of
the
source
code
will
be
an
external
module
and
you
can
access
the
ohc
in
the
scripts
or
in
the
strategies
in
any
part
of
the
code
that
runs
on
strategy
that
they
they
call
well
well.
A
A
We
are
going
to
support
that
point.
Script.
Parts
using
this
x
event
event-based
indicators,
so
we
are
not
going
to
eliminate
that,
but
there
is
like
two
difference
of
two
different
ways
of
having
the
same
result
and
I
I
prefer,
as
a
developer,
to
code
indicator
inside
the
heimball
code
or
code
it
in
another
service.
That
is
my
service
and
sending
the
messages
directly
to
the
bot
using
the
border,
orchestration
layer
that
we
are
going
to
to
create
so
well
yeah,
so
say
here.
The
the
indicators.
A
Probably
indicators
will
have
events
too,
because
the
the
events
you
can
code
and
events
inside
hummingbirds,
in
which
in
in
the
part
that
you
want
you
have
to
use
just
the
trigger
the
the
the
method
trigger
event,
because
all
the
time
iterators
are
subclasses
of
pub
sub.
So
you
have
that
a
trigger
event
method
created,
and
then
you
can
use
a
method
to
trigger
the
the
function
that
you
want,
but
we
can
add
that
to
the
to
the
description.
A
Well,
also,
another
person
that
will
be
interested
in
this
will
be
users
that
wants
to
develop
directional
strategies.
Probably
I
don't
know
if
you
have
a
directional
strategy
using
mean
reversion
techniques.
Well,
you
want
to
have
some
indicators,
users
that
wants
to
have
specific
events
based
on
some
signaling
technique
in
the
market.
A
It
is
interesting
suppose
that
you
want
to.
This
is
what
you
are
talking
about
to
say,
specific
events
based
on
some
signals
detected
on
the
market
and
also
I
thought
that
users
that
want
to
incorporate
prediction
models
in
their
strategies
will
be
the
use
case
too
well,
which
is
a
problem
that
we
are
going
to
solve.
A
This
will
be
have
an
easy
way
to
access
and
incorporate
new
indicators
to
use
in
hummingbird
strategies
without
using
an
external
source
like
trading
view
to
do
it
while
we
talk
and
why
we
think
that
this
is
a
real
problem.
Well,
probably
a
trading
strategy
will
rely
on
technical
indicators
to
define
certain
rules.
We
know
that
heimbot
is
a
market-making
arbitrage
framework,
but
probably
to
improve
your
market
making
strategies.
A
You
want
to
use
some
technical
indicators,
so
we
are
trying
to
solve
that
issue.
That's
why
we
think
that
is
important,
so
which
will
be
the
success
or
how
we
will
know
if
the
problem
is
solved.
Well,
if
the
user
can
define
different
ohlc's
for
the
trading
pairs
that
are
involved
in
the
strategy,
suppose
I
initialize
binance
with
ethereum
usdt
and
btc
usd
I.
I
know
that
I
will
be
succeed
if
I
can
create
ohlc's
for
ethereum
and
for
bitcoin
and
more
than
one
suppose
that
I
want
to
initialize
oslc
of
five
minutes.
A
I
know
hlc
of
one
hour
in
ethereum
I
I
can
be.
I
would
like
to
be
able
to
do
that.
No
stick
to
just
one
time
frame
or
volume.
There
is
another
thing
that
I
will
that
I
would
like
to
to
talk
with
you
now
and
explain
why.
For
me,
this
is
a
personal
thing,
but
why,
for
me,
is
very
important
to
have
these
different
options
and
not
only
use
the
time
frame
based
bars.
A
Well,
another
success
will
be
to
add
indicators
to
those
oh
hlc's
and
that
you
can
access
them
in
a
simple
way
in
the
strategy,
and
also
the
last
thing
is
that
the
user
can
plug
in
signals
in
the
strategy.
A
So
probably
this
improvement
will
be
just
sticked.
Only
in
will
be
only
sticked
into
the
part
of
creating
the
original
c
object,
and
I
indicators
to
the
ohlc
so
well,
which
will
be
the
the
requirement,
the
functional
requirements
that
we
are
looking
for.
We
you
can
create
an
ohc
for
the
markets
involved
in
the
strategy
and
also
can
be
more
than
one
ohc
for
the
same
market.
Suppose
I
want
to
time
bars
of
5
minutes
and
volume
bars
of
100
btc
and
also
it
has
to
be
able
to
collect
historical
data.
A
To
start,
the
bots
probably
will
have
some
restrictions
here,
but
I
think
that
a
good,
because
the
ohsc
probably
will
have
this
this
difference
that
will
probably
to
create
an
indicator
you
will
need.
I
don't
know
10
bars
or
60
bars
of
the
of
the
past.
Probably
a
good
feature
will
be
to
collect
the
soil,
to
start
about
a
just,
don't
wait
and
then
another
thing
will
be
adding
technical
indicators
for
each
ohc.
A
A
Hiv
that
will
be
the
volatile
orchestration.
Well
now
we
have
to
talk
about
how
we
can
implement
this
so
knowing
a
little
bit
the
the
source
code.
I
think
that
there
are
like
two
ways
or
three
ways
can
be
to
have
this
done,
and
I
will
explain
you
like
the
three
ways:
the
that
I
think
one
is
using
directly
the
api
endpoints
that
the.
A
The
api
of
the
of
the
exchange
provides
the
second
one
will
be
using
the
price,
the
every
tick,
because
the
strategy
you
have
the
price
available
for
in
the
strategy
every
check,
so
you
can
use
that
price
and
start
and
check
that
price
like
in
an
object
that
will
be
this
ohc
and
you
can
do
with
that
price.
You
can
construct
with
that
price.
You
always
will
see.
A
A
A
So
why
the
this
is
important,
because
if
you
move
the
price
with
low
volume,
it
would
be
like
a
manipulation.
It
would
be
like
a
fake
price
movement
and
probably
that's
why
there
are
a
lot
of
strategies
using
the
v-wap.
That
is
the
price
that
was
bought
like
in
average
last
time,
so
these
volume
bars
instead
of
creating
a
bar
every
five
minutes.
That
probably
is
not
represented
representative,
because
in
five
minutes
at
the
night,
it's
not
the
same
trading
intensity
or
the
same
trading
activity
that
you
have
at
morning.
A
A
A
So
this
kind
of
voices
are
very
interesting
because
they
capture
they
are
more
much
more
representative
and
how
you
can
define
are
more
represented
than
time
bars
is
because
the
distribution
of
the
returns
it
has
a
much
more
normal
distribution
than
the
time.
The
time
the
time
bars.
Sorry,
if
I
am
talking
about
some
technical
aspects
about
this,
but
well,
I
was
working
a
hedge
fund
that
we
were
using
the
the
this
kind
of
bars
to
predict
the
market,
because
there
is
a
book
of
marco
lopez
de
prado.
A
It
makes
a
lot
of
sense
so
well,
that's
why
I
think
that
having
the
the
possibility
of
having
a
hlc's
or
volume
is
very
important,
obviously
it
to
in
order
to
do
this,
you
have
to
that,
and
that's
the
first
option
that
I
create
is
that
you
have
to
create
the
oslc
based
on
the
trades
yeah,
and
now
I
will
explain
how
you
can
create
the
ohc
based
on
the
trades,
and
I
think
that
is
the
best
way
of
doing
it,
because
if
you
are
creating
the
ohc
based
on
the
trades
is
like
how
you
can
execute
this
in
the
code.
A
Suppose
that
I
am
creating
time
bars.
Well,
I
collect
all
the
trades.
The
first
one
is
the
open.
Then
I
will
collect
all
the
trays
when
I
have
a
minimum
or
a
value
lower
than
the
minimum.
I
will
replace
the
minimum
when
I
have
a
maxi
value
higher
than
the
last
max.
I
will
replace
the
last
maximum
and
when
the
five
minutes
is
reached,
I
will
close
the
candle
and
that
will
be
the
ohc
and
I
will
start
with
the
next
candle
following
the
same
architecture.
A
A
A
So
well,
that's
that's
the
difference,
and
if
you
have
the
trades,
it's
the
same
to
build
ohlc
for
volume,
time
and
dollars.
You
can
build
all
the
ohsc
that
you
want
just
using
the
trades.
Well,
that's
is
all
saying
all
this
and
now
I
would
like
to
to
understand
what
do
you
like
to
have
in
the
in
the
source
code
or
if
you
think
that
this
is
useful?
A
So
sayer
writes
the
way
we
have
been
building
volume
candlestick
previously
and
also
makes
his
work
for
normal
candlesticks.
It
has
the
function
being
candle
add
to
candle
close
candle.
That
way,
we
can
have
a
time
based
weight
to
build
the
candle
and
something
yeah
that
that's
true
so
say
here.
You
are
going
to
use
the
same
traits
to
to
build
the
time
the
volume
and
the
dollar
bars,
because
you
just
have
to
use
the
the
open
low
high
close,
but
the
difference
is
where
you
close
the
candle.
A
A
Okay
mike
says,
I
think
we
should
divide
this
project
into
candle
building,
how
to
collect
data
with
humminbot
and
construct
candles
in
various
way
ways
and
to
incorporate
candles
into
strategies,
convert
data
into
signals
and
use
them
in
the
strategies
yeah.
So
you
are
you're
saying
that
maybe
we
can
create
a
two
two
phases
for
the
for
this
shop,
like
having
a
module
that
can
build
candles
and
then
how
we
can
incorporate
these
candles
into
the
strategies
right.
A
The
thing
is
the
okay
perfect,
because
the
thing
is
I
I
would
like
to
talk
about
this,
because
probably
the
the
the
development
of
the
ohcs
using
the
traits
will
be
much
more
difficult,
that
building
the
just
using
the
antique
price
so
and
that
will
be
like
an
adam
implementation
of
the
oshrc's,
but
well
I
I
will.
I
would
like
I
like
the
idea
of
building
the
original
c
using
the
traits,
because
it's
how
you
build
the
you
can
build
multiple
chances,
but
well
anyone
has
another.
A
A
A
So
for
that
that
won't
be
a
problem
for
your
strategy,
so
suppose
that
you
are
interacting
in,
I
don't
know
cool
coin
and
your
market
making
and
cooking,
and
you
want
to
use
the
oys
of
finance,
you
can
initialize
the
two
of
them
and
just
use
binance,
but
well.
The
the
part
of
the
design
of
these
of
the
solution
probably
will
have
a
other
discussion.
A
A
Well,
that's
a
probably
a
lot
of
a
lot
of
work,
because
we
we
should
use
the
websocket
a
channel
the
streams
and
trades
that
all
the
connectors
have,
but
we
are
not
doing
nothing
we
did
with
so
well,
probably
we
can
use
that
one
or
probably
we
can
create
a
connector
that
also
that
connects
to
directly
to
the
that
channel
and
build
the
oh
sees
but
well.
A
C
C
A
Yeah,
the
luxury
price
is
calculated
by
that
yeah,
but
well
yeah
you're
right.
A
C
Will
not
keep
challenging,
but
please
take
it.
Take
a
closer
look
before
you
say
this
is
not
used
for
anything,
because
you
will.
You
will
be
surprised.
It
is
used
a
lot
for
me
for
many
of
the
of
the
price
strategies
that
connectors
can
can
use
to
or
allow
you
to
request
the
last
trader
price
is
used,
so
we
should
not
consider
it
useless.
C
A
C
Let's
say
they
connect
a
connector
or
if
we
want
to
be
a
trading
on
a
particular
connector,
but
then
a
create
our
our
in
this
indicators
of
based
on
on
other
exchanges,
information.
So,
depending
on
that,
I
would
say
we
can
use
one
or
the
other.
The
thing
is
if
we
want
to
trade
on
one
particular
exchange,
but
we
want
to
have
indicators
coming
from
other
exchanges.
C
A
Okay,
you
yeah,
I
understand
so
you
say
like
if
you
like
the
example
of
digitals.
That
said
about
trading
one
exchange
using
indicators
for
another
exchange.
C
A
Exactly
yeah
perfect:
well,
that's
that's
the
two
options
we
have.
Probably
the
approach
of
creating
a
new
connection
with
a
trades
channel
in
a
new
component,
won't
be
so
impassive
to
the
current
exchange
codebase.
But
if
you
are
using
binance
and
you
want
indicators
from
finance,
you
will
be
receiving
the
information
via
websocket
two
times.
In
that
case,.
A
Yeah
well
perfect.
Well,
thank
you
a
lot
for
for
mentioning
that.
Well,
I
think
that
we
can
explore
this
solution
a
little
bit
more
and
we
can
continue
the
chat.
The
chat
in
the
indicators
channel
and
also
susair
says
also
where
we
want
to
have
all
together
separate
price
feed
module
in
case
we
want
to
build
our
own
ticker
plant
for
bacteria
and
magnesium
data
and
also
reduce
the
cost
to
exchanges.
For
instance,
we
have
10
20
volts
running.
A
A
A
Another
topic
of
discussion:
well,
we
can
continue
to
the
next
topic.
I
will
invite
now
a
falsie
to
join
and
kalito,
which
was
the
depth
that
wants
to.
D
D
So,
in
order
to
connect
to
the
to
the
gateway
from
the
client,
you
would
use
either
the
the
gateway,
http,
client
or
or
the
gateway
evm
mm
connector
for
evm
compatible.
D
So,
for
for
you
to
create
escape
the
logic,
the
logic
is
similar
to
dca
example,
or
any
other
example
that
is,
that
is
available
under
the
script
folder.
The
the
only
the
biggest
difference
is
that
the
gateway
uses
asynchronous
calls
to
get
the
price
or
to
to
basically
take
the
trades
by
selling
anything
like
that,
the
current
version
of
the
state
does
not
support
asynchronous.
D
Also.
There
are
two
ways
we
can
work
around.
That
is
that
you
have
to
create
a
function
with
the
logic
inside
of
the
script
itself.
You
have
to
create
a
function
with
the
entire
logic
of
the
script
that
you
are
going
to
put
under
the
untick
function
and
then
all
that
function
under
the
current
one
and
in
safe
and
short
future.
This
will
create
a
small
delay
when
hitting
the
delay
usually
will
be
not
noticeable.
From
my
experience
when
I
created
an
example
of
it,
but
it's
it's
a
delay
nonetheless.
D
So
I
just
wanted
to
explain
the
the
logic
behind
this,
so
the
so
as
I
was
mentioning
the
the
way
you
would
create,
like
a
script
that
interacts
with
with
a
gateway
is
similar
to
the
way
you
create
a
normal
script,
that
the
biggest
difference
is
that
the
current
version
of
the
script
does
not
support
asynchronous
calls.
D
So
there
is
two
ways
to
work
around
that
it's
either
to
made
a
separate
synchronous
function
in
the
script
itself
and
rapidly
safe
in
your
future,
which
would
create
a
small
delay
when
getting
the
price
from
the
exchange
or
override
the
override
the
current
function,
with
an
asynchronous
with
an
asynchronous
ontake,
basically
changing
the
way
that
the
script
comes.
I
tried
the
first
approach
using
by
wrapping
the
the
logic
of
the
script
inside
the
function
like
an
asynchronous
function
and
calling
it
under
the
antique
with
safe
venture
futures.
D
It's
it's
functional!
It's
just
that
there
is
a,
as
I
mentioned,
a
small
small
thing.
I
think
the
best
way
to
showcase
this,
as
mike
mentioned,
is
to
create
an
example
that
an
example
script
that
I'll
probably
push
to
the
vehicle
soon
as
soon
as
they
finish
it
in
order
to
to
exactly
user
can
interact
with
with
a.
D
A
D
Yes,
so
memento
mori
is
saying
I
used
congratulations
check
when
result
is
ready.
That's
probably
different
approach
that
I
haven't
explored
that
that
might
actually
work
as
well.
The
the
the
logic
is
that
you
work
around
the
fact
that
the
current
crypt
does
not
support
asynchronous
calls.
D
I
want
to
say,
use
the
infrared
new
event
loop.
It
seemed
a
bit
messy
for
him.
I
think
the
way
that
I
yeah
the
way
I
worked
around
it
is
is
to
create
a
function
in
in
in
the
script,
an
asynchronous
function
and
put
all
of
the
logic
that
goes
under
the
untick
function
in
that
form.
In
that
asynchronous
function,
then
call
that
function
using
safe
insurer
future
in
the
ontake
that
worked
pretty
well.
For
me,.
D
Yes,
I
will
be
sharing
the
moment
saying
that
it
would
be
nice
to
see
how
I
did
it
I'll
be.
Sharing
the
I'll
be
updating
that
script
I
created
a
few
weeks
ago,
so
I'll
I'll
be
updating
it
to
the
and
sharing
it
pretty
soon.
D
A
Okay,
well,
for
me,
that's
all
I
don't
know
if
anyone
has
another.