forked from JuanParker1/siis
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTODO
More file actions
240 lines (190 loc) · 10.9 KB
/
TODO
File metadata and controls
240 lines (190 loc) · 10.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
####################
# Tasks to resolve #
####################
Limitations de IG des 10k candle/mois en fetch :
- IG n'offre que les historique des commodities, des indices et des forex (et pas des actions)
- selon la stratégie on en a besoin au moins de 50 par timeframe par symbol à chaque démarrage pour se synchroniser,
Distance et timeout-distance si en DIST doivent être supporté par distance_type et timeout_distance_type
dans les methode de SL/TP et dynamiques.
Bootstrap et Preprocess risque de se recouvrer dans certains cas :
- comment éviter cela si la stratégie execute les 2 méthodes ?
- le bootstrap devrait être retiré au profit d'une initialisation des signaux
- utilisant le depth normal, pas d'history comme ça
- on a bourricot, firebird et scalpspectre qui bootstrap
- bourricot : c'est juste pour détecter les pullback, ça peu se faire sans état, et pas utile pour les CVP
- scalpspectre : pas besoin car c'est pour du scalp et est abandonné
- firebird : pareil que pour bourricot on peu calculer les flags autrement
=> une méthode bootstrap mais qui ne rejout pas les candles :
- ce qui en plus évite les imprécisions de ce pseudo replay
Sum order :
- si spot : sum base (au moins sum pour EUR et USD), pour et eviter le rejet de l'API si qty insuffisante
- attention à l'arrondit pour que ça ne bloque pas un autre order
- le faire sur le watcher, lors d'order event, générer le asset update signal, locked/free
- le faire sur le trader lors du __fetch_assets
- si pas de leverage, ok ok est bien spot, sinon ignorer
- si buy :
- base free - volume executé en quote
- quote -free +lock mais oter le volume executé
- asset update signal
- si sell :
- base -free +lock mais oter le volume executé
- quote free + volume executé en quote
- asset update signal
#125 --object=profile-for-account:\<account-id\> pour supprimer les data de strategy
#######
# WIP #
#######
#116 kraken watcher et trader :
- fetch des positions
- fetch des trades history et calcule des prix d'entré moyen par asset
- finir WS des positions (margin)
- comment savoir si trade maker ou taker ?
- revoir que si besoin ownTrade pour signal ORDER_TRADED
- calcule des qty locked par asset en fonction des ordres ouverts (attention aux arrondis)
#103 WebTrader
- HTTP :
- POST/GET reinvest-gain handler
- POST/GET dca handler
- WS :
- notify/wt-read strategy-trader context data
- notify/wt-read strategy-trader regions hit
- display dialog detail with :
- read/modify affinity
- read/modify max-trade
- read/modify contexts
- charting :
- charting OHLC et ticks (streaming) + performance
- goto charting historique sur un trade passé
- ticker WS, basé sur quoi ? trader ticker ? strategy instrument ?
- plutôt sur le trader car pas besoin de surcharger encore le strategy trader
- session expiry message to renew
- toggle audio et alt sound alerts (et save conf)
- listes :
- tiers par (% pnl+-, market+-, date+-, upnl+-)
- paginer si list > 100 élements
- menu + modal pour créer une alerte price-cross
- menu + model pour créer une range region
- menu + model pour créer une trend region
- recevoir stream de bid/ask, abonnement/resiliation
- calculer r:r sur open trade, calcule % et montant risqué selon stop-loss
########
# Bugs #
########
#114 Supprimer le client chart une fois la version web réalisée, donc ce bug ne devrait plus être
#87 Problème sur le comptage de la quantité de sortie, et du prix moyen de sortie d'un trade
- En effet si la sortie est effectué par plusieurs ordres dans le cas du filled et exec-price, pas de problème,
tout s'ajoute, mais si on a que cumulative-filled et avg-price alors remplacer les valeurs comme sur
le trade d'entré va écraser les valeurs liées au trades de sorties précédents.
- Exemple un take-profit limit, mais mettons la quantité n'est pas fully-filled, et finalement intervient
pour une raison (stop-loss, timeout) un ordre de sortie au market (qui va devoir cancel le premier ordre)
- Donc gérer peut être 2 compteurs pour la sortie, un temporaire lié au trade de sortie actif, et le normal
#96 Valeur d'un pip pour les marchés BitMex => et corriger ainsi calcule uPnl.
- Enfin même question avec BinanceFutures, calcule fait sur une supposition, mais par contre reste le prob pour le uPnl
#75 TD9 countdown a debug et tester
##########
# Urgent #
##########
#124 allow/deny monitoring IP list plus propre, mais attention aux conf des bots si changement de config
- methode pour ajouter/retirer des IP une fois lancé ? mais moyen sécure ...
#122 send an error notification in case of a trade goes to ERROR state
#57 Verification des trades par la method check :
- implementer order_info pour le trader bitmex et verifier
- implementer order_info pour le trader ig et verifier
- verifier order_info pour le trader binance
- verifier order_info pour le trader binancefutures
##################
# Uniformization #
##################
#108 Move from siis.py for the resting command part to command_handler
#89 Finir les conversion des tools avec le model Tool (binarizer, fetcher, optimizer)
#119 close_position and modify_position must return Order REASON code in place of boolean
#24 Uniformiser l'order book (bitmex, binance, binancefutures, kraken)
- avoir un object OrderBook facile à mettre à jour et à exploiter
- utiliser DepthCacheManager pour binance et binancefutures
#60 Gérer la partie locked sur le paper trader en mode asset
- ne pas tout gérer en free, peu important car ça n'empêche pas de fonctionner
#########
# Bonus #
#########
#118 Commande de fusion et split des trades pour un instrument donné (à réfléchir)
#85 Ajouter TradeOp : TriggerEntry et TriggerLimitEntry, ainsi avoir le trigger coté bot,
et ne pas bloquer les fonds coté broker
#117 A chaque fois que un espace (separateur de parametre) est inséré, lors d'une commande, proposer l'entrée suivante
de HELP de la commande, en fonction de l'index
#115 tool withdraw (ou command) simple avec pin code (2AF) paire et addresse
- peut utiliser un alias d'adresse ou l'adresse enregistré par défaut (wallets.json)
- montant de la transaction
#121 tool withdraw emergency (ou command) qui annule tout les buy pending ou incomplet,
et qui transfert sur les hard wallets (ou soft wallet)
#117 tool withdraw emergency (ou command) comme précédente mais qui va revendre toutes les paires
sur une seule de reference et ensuite transferer sur le le wallet de reference
- la même mais avec un découpe en % sur N asset, et N wallet (hard ou soft)
####################
## Strategy Ideas ##
####################
- TD9 : 9 13 9, double setup, aggressive, combiné avec RSI par exemple et MA pour les double setup
- Mode HHT (Hilbert) et min/max par modes
- Détection de breakout sur bollinger (renforce un signal, un trade, ou stop un trade inverse)
- SL sur TD9, sous/sur bollinger, sous/sur last min/max, sous/sur fibo
- Détection de canaux, triangles
- Détection des patterns elliotists
- Détection des harmonic patterns
- Bollinger + triangle => pullback + count number of pullback => break
- Chande Kroll Stop @ref https://www.centralcharts.com/fr/forums/12-analyse-technique/1366-indicateur-chande-kroll-stop
- Algo-G pour optimiser les paramètres
- ML avec TensorFlow selon différent indicateurs ou encore selon des signaux prétraité (hilbert...)
- Le signal doit être annulé si le prix dépasse (long) celui de la réintégration de la BB (inverse pour short)
- prix de TP :
1) on a une MA20 50 100 ou 200 dans la bollinger, on prend la plus éloignée qui est dans la BB
2) si pas assez loin ou en dehors, on cherche la tenkan (si assez loin du prix)
3) on prend le précédent ATR le plus loin dans la BB ou le en cours si rien d'autre
4) fixed-pct ou fixed-distance si rien d'autre
- prix de SL :
1) current ATR si == bas de la bougie de break
2) precedent ATR en dessous de la open de la bougie de réintégration
3) fixed
- entrée :
1) vérifier qu'on est tjs dans la partie basse (inversement haute) de la bollinger (fait mais semble pas suffire)
2) vérifier le % min, limité par la bollinger opposés, qu'il soit suffisant
3) le corps de la bougie de confirmation doit être au moins N x epsilon
4) valider une entré sur une HMA20 dépassée par la close de conf
5) Ajouter une RSI a bourricot, et si div de RSI3 en 1m alors oui signal sinon continuation
- sortie :
1) TP initial, on l'écarte tant que les bougies sont rouges
2) Si verte que à partir du price epsilon sinon on la compte comme rouge
3) On coupe si signal opposé sur la même timeframe
#################
## Data source ##
#################
- PyEX (mais c'est payant) => rapidapi-morningstar mais pas de WS
- polygon.io (99$ à 399$ / mois) => selon 1m ou tick, REST ou WS
- rapidapi-yahoo-finance pour récupérer stock, indices, forex quotes, mappinng à un autre broker (ig.com...) pour le prefetch
- rapidapi-morningstar pour récupérer les actions et indices intraday, D, W, M, mappinng à un autre broker (ig.com...) pour le prefetch
############
## Divers ##
############
Serveur :
- recup et intégration d'un int +1 ou -1 pour dire direction du trade (-bid, +ask)
- propagation de la dite info au stratégie
- stockage dans les fichiers trades avec en ASCII 1 ask 0 bid et en binaire un octet 1 ask 0 bid
- creation d'un tick bar avec nombre de tick par barre
- creation d'un tick bar reversal avec nombre de tick avant reversal
- mesure des hedge zone sur tick bar
- mesure des balance bid ask par tick
- mesure des balance bid ask par tick bar
- mesure des volume imbalance par tick bar
- mesure des volume delta
- mesure en mode croisé bid x ask ou ask x bid
- parametrage des volume
- detection auto selon volume des précédentes tick bar pour ajuster les parametre des tick bar et autres seuils des indicateurs de mesure
Client Web
- tracer tick bar et reversal sur client web
- tracer bougie sur client web
- tracer volume bar sur client web
- tracer volume delta sur client web
- modify_take_profit / modify_stop_loss ammélioration :
1) handler sur le strategytrader
2) si modifie localement alors doit générer un notify update car il n'y aura pas de signal du broker
3) si modifie et 'forced' (command) mais que asset trade et pas encore is_open alors danger de créer un ordre sur 0 qty or autre qty d'un autre trade
4) utilisation du handler partout en lieu et place (strategies, command, operation)
5) commnent gérer si has_xxx_order dans operation, dans command, autres cas... niveau handler ?