ProRealTime
Zone de développement des applications API, des logiciels et utilitaires développés par les membres du forum

Re: Mon petit utilitaire de trading

par Epitaf » 22 août 2015 19:03

Bonjour, je doute fortement que ce soit possible :-)

Edit, rho en tapant sur un Moteur de recherche python pour iphone, ça existe, j'y crois pas :mrgreen:

Bon après faut payer, et si tu n'y connais rien, ça va être compliqué :-)

Re: Mon petit utilitaire de trading

par FabulousFab » 16 mai 2015 17:09

Salut tout le monde,

Une fois n'est pas coutume, je sors le nez des couches et autres biberons pour découvrir cette nouvelle API. 53 pages presque 3 heures de lecture...
Mes respects aux différents programmeurs :top: . Cela doit représenter un travail énorme.
Je m'arrête là car fidèle à moi même je n'ai absolument rien compris à la façon de faire pour installer ce genre de programme :gloups: . Par conséquent tout retour de ma part serait inutile à la communauté...

PS: Reprise trading J-1 semaine si tout va bien, peut être même avant....

Re: Mon petit utilitaire de trading

par FabulousFab » 23 mai 2015 20:29

Salut tout le monde,

Quasiment six heures à me prendre la tête sur l'installation de ce petit bijoux: résultat RIEN.
Je suis décidement une buse, je lache l'affaire, dommage...

Bon week-end à tous.

Re: Mon petit utilitaire de trading

par FabulousFab » 23 mai 2015 21:48

Merci pour vos réponses je patiente j'ai le temps...

Bonne soirée.

Re: Mon petit utilitaire de trading

par FabulousFab » 23 mai 2015 23:13

Merci swing.

Non non Falex je suis sur windows le n°7 en 64bits.

Re: Mon petit utilitaire de trading

par falex » 27 févr. 2015 14:15

Effectivement Request est nettement mieux que urllib2 and co.

Tu veux pas me rajouter le passage d'un proxy avec authent' NTLM dans ton programme ?

sa

par falex » 27 févr. 2015 14:39

Pas mal simple et pratique.

Faudrait pouvoir changer l'epic en affichant la liste (ou alors un autre programme qui permet de faire la recherche (car pour un novice c'est le truc le plus simple à récuperer.

Est-ce que tu es satisfait de la latence du programme ?

Re: Mon petit utilitaire de trading

par falex » 27 févr. 2015 14:55

j'ai python 3.4.& la version de Merci d’éviter les citations au maximum. Elles sont illisibles sur les smartphones. Relisez le message de bienvenue. pour python 2.7 passe ou pas (jai pas le temps de tester) ?

Re: Mon petit utilitaire de trading

par falex » 28 févr. 2015 00:47

C'est en cours.

J'ai vu qu'il y une implementation de request-ntlm ... ce sera pour la semaine prochaine.

je vais modifier le programme pour qu'il réponde à u besoin :
Ouvrir un ticket en-dessous du nombre de lot min (donc ouvrir avec le nombre de lot puis couper immédiatement le Delta).

Quand j'ai fait des test cet APM (sur une version perso inspiré de ce que tu as proposé dans le git et sans la partie LS) j'ai été connecté avec mon iphone sur le compte, puis je lancais le code qui se connecte et ouvre un lot DAX : je n'ai jamais été déconnecté sur le téléphone et je pouvais voir en direct les ajout/suppression de lot.

ça fiat pareil chez vous ? ig a modifier et on peut faire du mutli-connecté maintenant ?

Re: Mon petit utilitaire de trading

par falex » 28 févr. 2015 10:16

Ah super je n'avais pas fait le test voir même tout les amtin je déconnectait l"appli iphone avant d'ouvrir la page web :-)

Ouf plus besoin ! ça c'est de la "good news".

---

Pour revenir à l'application :
Je pense que je vais changer Merci d’éviter les citations au maximum. Elles sont illisibles sur les smartphones. Relisez le message de bienvenue. par tkinter, qui a l'avantage d'être inclut dans python, ainsi pas besoin d'extension sauf Requests.

Faut que je regarde si ça marche sous windows et macosx par défaut ou pas ...

Dans les idées de tuning que je vais tester la semaine prochaine :
Case à cocher : Position forcée (dans le programme par défaut c'est à False/faux/désactivé)

Faire du MM en live, c-à-d que je vais dire quel % de mon Solde (pas le P&L) je risque sur le trade (exemple 1%) et indiquer le SL en points.
De la le programme va calculer le nombre de lots en fonction de l'epic, du spread et du pourcentage de mon solde que je risque.

Exemple :
J'ai 1000€ et je veux risque 2,5%, soit 25€.
Je veux rentrer un trade avec un SL de 10 points sur mini DAX en journée (5€ le point spread de 1)
Ce qui donne pour le nombre de lot : 25/(10+1)/5 = 0,45 lot.

Donc quand je cliquerai sur Buy (ou Sell), je vais demander au programme d'ouvrir 1 lot avec SL à 11 points, puis immédiatement de retrancher 1 - 0,45 = 0,55 lot.

Pour le TP j'hésite soit à la placer manuellement après soit d'en préposition un ...

Je sens que la semaine prochaine va être riche en test.

Dommage que l'on ne puisse pas faire ce genre de dev le WE, c'est là où j'ai un peu plus de temps ...

Re: Mon petit utilitaire de trading

par falex » 02 mars 2015 16:05

Arg je viens de prendre le temps de décortiquer le programme de maroxe...

Bon ok j'installe python 2,7 et je vais utiliser w x. Je laisse tomber le portage en Tk, c'est plus une perte de temps qu'autre chose et le gain est ridicule par rapport au boulot qu'a déjà fait maroxe.

---
Dans les modifications :
1) Dans le fichier gui.py, tu importes numpy que tu n'utilises pas :musique:
2) Veille habitude de l'interface d'ig sous toutes ces formes : J'ai inversé les boutons Sell et Buy : Sell est à gauche, Buy à droite.

---
Test de rapidité de l'application durant le fixing.
Je surveille l'ouverture fermetrue des lots via mon iphone connecté en 4G sur ig.
Mon PC de burau connecté en 3G : bonne grosse latence à l'ouverture et à le fermeture des positions (preque 1 bonne grosse seconde à chaque fois).
Puis mon PC de bureau connecté en 4G (via le partage de la connexion de l'iphone) : Hop hop vive la magie de la 4G qui a latence très faible : ouverture et fermeture presque instantané.

Donc y'a pas à dire, LS et REST sont hyper sensible à la latence.
Le programme en python, étant relativement simple, n'ajoute pas trop de latence (en tout cas bien inférieur à latence réseau).

Je suis en train de faire quelques modification perso pour remonter le nombre de lot de façon "automatique" en fonction de la balance du compte mais j'ai un souci de format et de variable à globaliser (rien de bien méchant faut que je creuse encore un peu).

---
Question :
Pourquoi quand tu ouvres une position ça écrit deux lignes dans le tableau du bas ?

Re: Mon petit utilitaire de trading

par falex » 02 mars 2015 20:10

Oula mon petit koub je ne suis absolument pas grincheux ??!! Où as-tu vu cela ?

Allez on recommence : merci beaucoup maroxe pour ton code.

---

Pour le proxy NTLM j'ai fait une recherche ce matin : plusieurs groupe s'y sont mis pour porter soit dans urllib3 soit dans Request mais au final il y a très peu de gens concerné et c'est en plus aux antipodes de l'esprit Gnu et consort.

---

Pour le git : oui je vais te donner les modifs mais je n'ai jamais participé à un dev collectif . J'ai créé un compte sur github maintenant comment je te soumets les modif ?

---

Maroxe n'ai pas honte de ton code il est 100x plus propres et structuré que tout ceux que j'ai pu faire en Python (et en plus tu me fais progresser sur l'utilisation de l'interface graphique et des modules/classes/sous fichier ...)
J'ai l'impression de revenir 15 ans en arrière ;-)

Re: Mon petit utilitaire de trading

par falex » 03 mars 2015 15:21

Arg là je sèche.

Dans le code j'ai rajouté entre les boutons Sell et Buy un TxtCtrl pour mettre la taille du lot à entrer.

Code : #

fichier gui.py dans la fonction init_ui de la class Window
self.lot_size = w x.TextCtrl(panel, -1, "1.00", size=text_size, style=Merci d’éviter les citations au maximum. Elles sont illisibles sur les smartphones. Relisez le message de bienvenue..TE_CENTER 
et un peu plus loin
 button_box.Add(self.lot_size, 1)
Jusque là tout va bien.

Maintenant dans le main.py dans la fonction buy (et sell) je voudrais lui passer comme argument la valeur du TxtCtrl défini ci-dessus.

Code : #

fichier main.py
def buy(event): order(event, "BUY", lot_size)
def sell(event): order(event, "SELL", lot_size)

et dans la fonction ordre
def order(event, direction, lot_size):
    expiry = '-'
    body = {"currencyCode": "EUR", "epic": personal.epic, "expiry": expiry, "direction": direction, "size": [b]lot_size[/b], 
Comment fais-tu pour récupérer la valeur du TxtCtrl au moment de l'appel de Buy ou Sell ???

Re: Mon petit utilitaire de trading

par falex » 03 mars 2015 16:20

J'attaque la deuxième partie de mes modifications mais là ça va être plus ardue :
Si je rentre une taille de lot inférieur à la taille min, je veux :
1) rentrer la taille min
2) sortir immédiatement le Delta (taille min - taille demandé).

Vue la rapidité d'execution des trades avec les API, ça evitera toutes les manipulations à la main et evigtera beaucoup de slippage.

Par contre dans la logique de fonctionnement
1) je clique sur le bouton
2) j'envoi l'ordre d'ouverture
3) un process tourne en tache de fond et écoute en permanence le flux LS qui donne les update de position.

Donc je pense qu'une fois que l'on a "Reason" à "Success" pour le "DealId" XXXXXXXXXXXX alors il faut envoyer l'ordre de fermeture partielle.

1ere difficulté que je "sens", comment binder l'appui du bouton et l'ordre en cours ?
Avec les API REST ça doit pouvoir se faire et laisse LS traiter l'update tout seul dans son coin ...

Pour l'instant j'arrete mes recherche/test je reprendrai demain, je pense.

Re: Mon petit utilitaire de trading

par falex » 03 mars 2015 17:00

Idée :
1) Création de l'ordre via API REST
2) modification de la boucle qui recupére les updates de position pour qu'elle mete à jour le tableau et dès qu'il y a un reason success elle appele une fonction qui vérifier si ce deal-id n'a pas besoin de se faire saucisonné ...

A creuser (je laisse les neuronnes brainstormer avant de coder ... là faut d'abord faire le conceptuel :-))

Re: Mon petit utilitaire de trading

par falex » 04 mars 2015 18:05

Maroxe au secours là j'arrive pas à comprendre l'écriture d'une ligne de code

Code : #

confirms = next(json.loads(field) for field in myUpdateField if field != None)
Je vois bien le résultat (ça charge dans la varable confirms les différents champs de myupdatefield si il est différent de None et ça l'envoi dans le parser json
mais je ne comprend absoluement pas la syntaxe, j'ai l'impression que c'est écrit dans tous les sens.

Peux-tu m'aider à comrpendre ta façon d'écrire ?
next()
pourquoi le for est au milieu`
le if à la fin
et le json.?load au début

C'est tellement optimisé que je décroche complétement :-)

Re: Mon petit utilitaire de trading

par falex » 04 mars 2015 21:08

Super beni j'en suis reste a mes bonnes vieilles habitudes indiciel ...

Dans le next c'est une listcomprehension (cf. Openclassroom)
La je comprend mieux la syntaxe et surtout la puissance de Python pour la gestion de liste.

Ouf ouf ouf

Re: Mon petit utilitaire de trading

par falex » 04 mars 2015 21:32

Yes super

Passe tes partiels d'abord je ne suis pas pressé.

En tout cas la je viens de faire un bon de dix ans en avant :lol:

--- Arg Python me tue !
Si je vais chercher dans un dictionnaire une valeur puis je cherche une deuxième qui est avant la premiere : monsieur fait sa mauvaise tête...

Re: Mon petit utilitaire de trading

par falex » 05 mars 2015 10:50

Plop plop update du matin :

Yes j'ai modifié la fonction d'ouverture de ticket pour ouvrir un lot puis immédiatement en fermer 0,8.
ça marche bien, il faut environ 0,5 à 1 secondes pour se retrouver avec 0,2 lots au final.
C'est un peu moins rapide que ce que je pensais.

Donc maintenant que je sais envoyé un ordre de fermeture partielle je reviens sur mon "problème" avec l'interface graphique et le champ TxtCtrl que j'ai rajouté.
J'ai fait "mumuse" avec des global à gauche à droite et j'ai essayé de bien me représenter la porté de chaque variable mais là y'a un truc qui m'échappe.

Dans main :
l'interface graphique est un objet gui.Window dont le nom de variable est window.
C'est dans le main que tu Bind l'event du bouton (ou du changement de texte), mais dans le bind il n'est pas possible de passer des paramètres optionnel.

window n'est pas global ni le TxtCtrl mais même en le mettant je n'arrive pas à accéder à la valeur TxtCtrl.GetValue dans la fonction main::order()

Si quelqu'un pouvait m'aider car là je sèche franchement

Re: Mon petit utilitaire de trading

par falex » 05 mars 2015 11:40

Aléluia j'ai trouvé ! (non mais ! c'est pas une pauvre variable global qui va m'enquiquiner).

Dans le module gui.py
1) Ajout d'une variable dans l'espace "global" du module (donc presque tout en haut du fichier) sizelot = 1.51
2) Dans la class Window::Fonction init_ui, j'ai rajouté la directive global sizelot pour lui dire d'aller chercher la variable dans l'espace globale du module (quand j'initie la zone de texte je vais chercher cette variable)
3) J'ai rajouté une fonction update_sizelot dans la class Window pour mettre à jour la variable quand la zone de texte change.
En haut de la fonction j'ai du préciser "global sizeLot",pour lui dire d'aller chercher la variable global du modul et pas la variable local à la fonction

Code : #

def update_sizelot(self, item):
        global sizeLot
        sizeLot = float(self.lot_size.GetValue())
        print("Fonction update_sizelot : ", sizeLot) #Ok
Dans le module main.py
J'ai "Bindé le TxtCtrl à l’événement EVT_TEXT(=changement dans la zone de texte) qui appel la fonction window.update_sizelot.
Finalement y'a rien à faire si ce n'est de faire appel à la variable gui.sizeLot là où j'en ai besoin.

Bon bon ça avance !

Dès que j'aurai une version fonctionnel du programme avec ouverture du nombre de lot en fonction de la valeur passé dans l'interface je la publie.

Sujets similaires
Mon petit utilitaire de trading sur OS mobile
Fichier(s) joint(s) par Crack » 23 mai 2015 10:55 (22 Réponses)
Day trading contre swing trading
par didier54 » 24 août 2014 17:02 (15 Réponses)
Projet création Salle de Trading - Trading Room
par jctrader » 20 sept. 2014 16:53 (21 Réponses)
Projet wireless light trading ;) le trading en lumière ;)
Fichier(s) joint(s) par DarkPoule » 21 mars 2015 15:22 (18 Réponses)
Optimal Trading Stops and Algorithmic Trading
par bobbyO » 21 nov. 2015 13:02 (8 Réponses)
Méthode de trading en swing trading sur le DAX
par Patouaul » 31 janv. 2016 00:44 (18 Réponses)
Trading actions US via PRT Trading
Fichier(s) joint(s) par Benoist Rousseau » 14 févr. 2017 22:18 (25 Réponses)
Journal de trading scalping day trading - Benoist Rousseau
Fichier(s) joint(s) par Delo » 04 mars 2018 20:25 (351 Réponses)
Analyse pour Le Day Trading et Le Swing Trading
par Amarantine » 03 janv. 2019 21:46 (2 Réponses)