[{"id":1,"nom":"Pr\u00e9requis","level":1,"parent_id":null},{"id":2,"nom":"Le poste de contr\u00f4le (PC)","level":1,"parent_id":null},{"id":3,"nom":"Calculs & affichages","level":1,"parent_id":null},{"id":4,"nom":"Annexe","level":1,"parent_id":null},{"id":11,"nom":"La fen\u00eatre principale","level":2,"parent_id":2},{"id":12,"nom":"Les onglets","level":2,"parent_id":2},{"id":14,"nom":"Les param\u00e8tres","level":2,"parent_id":2},{"id":13,"nom":"Les graphes","level":2,"parent_id":2},{"id":15,"nom":"Infrastructure","level":2,"parent_id":2},{"id":16,"nom":"Matplotlib","level":2,"parent_id":3},{"id":17,"nom":"Coding des nodes","level":2,"parent_id":3},{"id":18,"nom":"Historiques","level":2,"parent_id":3},{"id":19,"nom":"Le mode geek","level":2,"parent_id":3}]
[{"partie_id":1,"nom":"Connaissances","slug":"8_connaissances","utilite":"Elles vont vous permettre d'avancer plus rapidement"},{"partie_id":1,"nom":"Environnement de travail","slug":"7_environnement_de_travail","utilite":"Mat\u00e9riel n\u00e9cessaire"},{"partie_id":1,"nom":"Logiciels utilis\u00e9s","slug":"1_logiciels_utilises","utilite":"Install\u00e9s avant de commencer le cours"},{"partie_id":1,"nom":"Installation d'Anaconda","slug":"2_installation_danaconda","utilite":"Package contenant Python et bien d'autres utilitaires."},{"partie_id":1,"nom":"Environnement virtuel Python","slug":"4_environnement_virtuel_python","utilite":"S\u00e9curit\u00e9 : s\u00e9parez vos interpr\u00e9teurs Python."},{"partie_id":1,"nom":"Installation de Pycharm","slug":"3_installation_de_pycharm","utilite":"IDE pour une programmation agr\u00e9able en Python."},{"partie_id":1,"nom":"Structure du projet 'Robot'","slug":"5_structure_du_projet_robot","utilite":"Organisation des fichiers sur disque dur."},{"partie_id":1,"nom":"Fen\u00eatre du poste de contr\u00f4le","slug":"6_fenetre_du_poste_de_controle","utilite":"Cr\u00e9ation et affichage de la fen\u00eatre du PC."},{"partie_id":1,"nom":"TDD : D\u00e9veloppement dirig\u00e9 par les tests","slug":"60f_tdd_developpement_dirige_par_les_tests","utilite":"\u00c9crire du code robuste, de qualit\u00e9 et maintenable."},{"partie_id":11,"nom":"Pr\u00e9sentation","slug":"efb_presentation","utilite":"Aper\u00e7u des fonctionnalit\u00e9s"},{"partie_id":11,"nom":"Dessiner la fen\u00eatre avec Qt Designer","slug":"a1e_dessiner_la_fenetre_avec_qt_designer","utilite":"Programmation graphique d'une fen\u00eatre"},{"partie_id":11,"nom":"Designer \u2192 Python - Compilation manuelle","slug":"cb8_designer_python_compilation_manuelle","utilite":"Utiliser en Python les fichiers cr\u00e9\u00e9s avec Qt Designer"},{"partie_id":11,"nom":"Designer \u2192 Python - Compilation automatique","slug":"7c5_designer_python_compilation_automatique","utilite":"Utiliser en Python les fichiers cr\u00e9\u00e9s avec Qt Designer"},{"partie_id":11,"nom":"Bug de r\u00e9gression","slug":"b9a_bug_de_regression","utilite":"Intercepter les bugs le plus t\u00f4t possible"},{"partie_id":11,"nom":"Persistance de toutes les g\u00e9om\u00e9tries","slug":"46d_persistance_de_toutes_les_geometries","utilite":"G\u00e9om\u00e9trie de la fen\u00eatre principale et des dockables"},{"partie_id":11,"nom":"Refactoring","slug":"0fa_refactoring","utilite":"Am\u00e9lioration de la structure du projet"},{"partie_id":12,"nom":"Cr\u00e9ation d'un graphe","slug":"64a_creation_dun_graphe","utilite":"Base visuelle de la programmation graphique"},{"partie_id":12,"nom":"Ouvrir \/ fermer un graphe","slug":"1df_ouvrir_fermer_un_graphe","utilite":"Afficher dans des onglets les graphes choisis"},{"partie_id":12,"nom":"M\u00e9morisation de l'\u00e9tat des onglets","slug":"49d_memorisation_de_letat_des_onglets","utilite":"Persistance des onglets ouverts : ordre et s\u00e9lection"},{"partie_id":12,"nom":"Entrep\u00f4t des nodes","slug":"5d3_entrepot_des_nodes","utilite":"Rangement des mod\u00e8les de nodes dans des dossiers."},{"partie_id":12,"nom":"Peuplement des nodes","slug":"569_peuplement_des_nodes","utilite":"Affiche les icones de nodes dans toutes les cat\u00e9gories"},{"partie_id":14,"nom":"La sc\u00e8ne et la vue : r\u00e9ticule","slug":"e95_la_scene_et_la_vue_reticule","utilite":"Affichage des nodes et des edges sur un \u00e9cran r\u00e9ticul\u00e9"},{"partie_id":14,"nom":"Param\u00e8tres : 1 - Dictionnaires tri\u00e9s","slug":"3dd_parametres_1_dictionnaires_tries","utilite":"N\u00e9cessaires pour la gestion des param\u00e8tres"},{"partie_id":14,"nom":"Param\u00e8tres : 2 - Persistance","slug":"220_parametres_2_persistance","utilite":"Param\u00e8tres enregistr\u00e9s dans un fichier pickle"},{"partie_id":14,"nom":"Param\u00e8tres : 3 - \u00c9dition dans le dockable","slug":"661_parametres_3_edition_dans_le_dockable","utilite":"Confort dans l'\u00e9dition des param\u00e8tres"},{"partie_id":13,"nom":"Entr\u00e9e en sc\u00e8ne du premier node","slug":"350_entree_en_scene_du_premier_node","utilite":"Affichage du node au lancement de l'application"},{"partie_id":13,"nom":"Plusieurs nodes dans le graphe","slug":"910_plusieurs_nodes_dans_le_graphe","utilite":"Plusieurs nodes permettent les interconnexions"},{"partie_id":13,"nom":"Ajout et suppression de nodes depuis l'UI","slug":"d22_ajout_et_suppression_de_nodes_depuis_lui","utilite":"\u00c9dition simplifi\u00e9e de graphes, \u00e0 la souris et au clavier"},{"partie_id":13,"nom":"Sockets : ports d'entr\u00e9e-sortie","slug":"077_sockets_ports_dentree_sortie","utilite":"N\u00e9cessaires pour l'interconnexion des nodes"},{"partie_id":13,"nom":"Edges : 1 - Interconnexions des nodes.","slug":"3f6_edges_1_interconnexions_des_nodes","utilite":"Permet la mise en cascade de calculs"},{"partie_id":13,"nom":"Edges : 2 - Cr\u00e9ation par drag & drop, \u00e9dition","slug":"146_edges_2_creation_par_drag_drop_edition","utilite":"Cr\u00e9ation simple et ludique, par drag & drop"},{"partie_id":13,"nom":"Edges : 3 - Couleurs, court-circuits, croisements","slug":"791_edges_3_couleurs_court_circuits_croisements","utilite":"Customisation des liens"},{"partie_id":13,"nom":"Droit \u00e0 l'erreur : Undo & Redo","slug":"cef_droit_a_lerreur_undo_redo","utilite":"Parcours de l'historique par undo & redo"},{"partie_id":15,"nom":"Param\u00e8tres dynamiques d'un node","slug":"2ec_parametres_dynamiques_dun_node","utilite":"Transmission de signaux entre nodes"},{"partie_id":15,"nom":"Mise en conformit\u00e9 des types de node","slug":"e77_mise_en_conformite_des_types_de_node","utilite":"Standardiser la cr\u00e9ation de nodes"},{"partie_id":15,"nom":"Infrastructure","slug":"7cf_infrastructure","utilite":"Base de travail pour les graphes et les calculs"},{"partie_id":15,"nom":"G\u00e9n\u00e9ralisation des afficheurs","slug":"f00_generalisation_des_afficheurs","utilite":"Finalit\u00e9 du poste de contr\u00f4le"},{"partie_id":15,"nom":"Mod\u00e8les de calculs","slug":"6ef_modeles_de_calculs","utilite":"C'est la finalit\u00e9 du poste de contr\u00f4le."},{"partie_id":16,"nom":"Matplotlib","slug":"1df_matplotlib","utilite":"Compl\u00e9ment basique du poste de contr\u00f4le."},{"partie_id":16,"nom":"Interactions PC \u2192 Graphiques","slug":"207_interactions_pc_graphiques","utilite":"Modifications depuis le PC appliqu\u00e9es en direct"},{"partie_id":16,"nom":"Param\u00e9trage \u00e9tendu","slug":"8ed_parametrage_etendu","utilite":"D\u00e9cupler la puissance des nodes"},{"partie_id":16,"nom":"Plusieurs graphiques \u00e0 plusieurs signaux","slug":"555_plusieurs_graphiques_a_plusieurs_signaux","utilite":"Utile lorsque les signaux sont compl\u00e9mentaires"},{"partie_id":16,"nom":"Refactoring - am\u00e9liorations","slug":"a24_refactoring_ameliorations","utilite":"Moins de code, plus de rapidit\u00e9."},{"partie_id":17,"nom":"Moyennes mobiles - Calculs en cascade","slug":"716_moyennes_mobiles_calculs_en_cascade","utilite":"Propagation des calculs dans le graphe"},{"partie_id":17,"nom":"MACD - RSI - Mod\u00e8les yaml","slug":"657_macd_rsi_modeles_yaml","utilite":"Mod\u00e8les = Gain de temps lors des param\u00e9trages"},{"partie_id":17,"nom":"Check-list pour la cr\u00e9ation d'un node","slug":"752_check_list_pour_la_creation_dun_node","utilite":"Optimiser la cr\u00e9ation d'un node"},{"partie_id":17,"nom":"Calculs globaux, directs, diff\u00e9r\u00e9s","slug":"77b_calculs_globaux_directs_differes","utilite":"R\u00e9action rapide lors d'une modification des param\u00e8tres"},{"partie_id":18,"nom":"T\u00e9l\u00e9chargement d'historiques","slug":"e92_telechargement_dhistoriques","utilite":"Cr\u00e9er des strat\u00e9gies avec des donn\u00e9es r\u00e9elles"},{"partie_id":18,"nom":"La base de donn\u00e9es Candles","slug":"92f_la_base_de_donnees_candles","utilite":"Stockage local des cours de devises 'Candles'"},{"partie_id":18,"nom":"La base de donn\u00e9es Ticks","slug":"4b2_la_base_de_donnees_ticks","utilite":"Stockage local des cours en 'ticks' et en 'Renko'"},{"partie_id":18,"nom":"Le node g\u00e9n\u00e9rateur d'historiques","slug":"1c2_le_node_generateur_dhistoriques","utilite":"Serveur d'historiques r\u00e9els"},{"partie_id":19,"nom":"\u00c9laboration d'une strat\u00e9gie de trading","slug":"510_elaboration_dune_strategie_de_trading","utilite":"Programmation avanc\u00e9e. Suppression des limites."},{"partie_id":19,"nom":"Partie 1 : Voir les ouvertures et les fermetures","slug":"ccf_partie_1_voir_les_ouvertures_et_les_fermetures","utilite":"Aper\u00e7u visuel des gains d'une strat\u00e9gie de trading"},{"partie_id":19,"nom":"Partie 2 : Cr\u00e9er ses indicateurs","slug":"52c_partie_2_creer_ses_indicateurs","utilite":"Repousser les limites"},{"partie_id":19,"nom":"Partie 3 : Algorithmes g\u00e9n\u00e9tiques","slug":"e4b_partie_3_algorithmes_genetiques","utilite":"Optimise la recherche des meilleurs param\u00e8tres"},{"partie_id":19,"nom":"Indicateurs dynamiques","slug":"96c_indicateurs_dynamiques","utilite":"Ajout d'une dimension \u00e0 l'espace des recherches"},{"partie_id":19,"nom":"Prochainement ...","slug":"ad6_prochainement","utilite":"Tutos en pr\u00e9paration"}]
"cb8_designer_python_compilation_manuelle"