ProRealTime
Forum dédié à ProRealTime cfds à risque limité : les questions sur les cfds à risque limité à risque limité, les trucs et astuces sur l'interface de trading...

PureDeal > Comment forcer une position en permanence

par falex » 21 nov. 2013 15:35

Sur l'interface Web (PureDeal), nous nous sommes tous fait avoir avec la case "Position Forcé" qui est décoché par défaut.
L'interface d'IG étant du Web+Javascript j'ai commencé à regarder s'il était possible de faire un script de type GreaseMonkey pour forcer la case à chaque ouverture de ticket.

La case n'est "qu'une simple" checkbock d'un formulaire Web "<input type=checkbox">".
En utilisant l'outils "Examiner (dans Dev Web)" et en pointant la checkbox je trouve l'Id forceOpenCheckbox_1 de cet élement.

Avec l'ardoise Javascript de Firefox si je rentre un code du style

Code : #

    var x=document.getElementById("forceOpenCheckbox_1");
    if (x !== null) { x.checked = true; }
ça me check la case, mais j'ai un souci :

Le Panel d'ouverture de ticket est un objet dynamique instancié au moment où on clique sur le sous-jacent. Le "Input" peut avoir un id forceOpenCheckbox_1 ou forceOpenCheckbox_9 ...

De plus si j'ai bien compris le fonctionnement de greasemonkey, celui-ci exécute le code Javascript au moment du chargement de la page, pas après.

Donc est-ce que quelqu'un pourrait m'aider à trouver une solution pour récuperer l'ID au moment du clique (il n'y a pas de load/reload de la page) et executer les deux lignes ci-dessus à ce moment là ?

J'ai pensé à rajouter un EventListener mais je ne sais pas que quel Event écouter ...
Et firebug ne m'aide pas à trouver quel Event est associé à cette satané case.

Est-ce qu'il y a un pro de la programmation Javascript sur ce forum ?

Re: PureDeal > Comment forcer une position en permanence

par Benoist Rousseau » 21 nov. 2013 15:44

Sans moi hélas je ne connais pas du tout JavaScript

Re: PureDeal > Comment forcer une position en permanence

par falex » 22 nov. 2013 09:43

MErci c'est gentil.

Faite la chasse aux développeurs web/JS voilà ce qu'il nous faut (en plus je suis sûr que le "truc" prend 5 minutes à un gars qui fait du dev ou de l'assurance qualité ou du debug de JS à longueur de journée).

En parcourant les forum autour de javascript, je m'aperçois que c'est comme pour le trading : bneaucoup d'ignorant et de "malcromprenant" et très peu d'expert.
Je ne desespère pas ... mais j'ai pas énormément de temps pour creuser plus pour l'instant.

C'est un peu comme une recette de cuisine, je laisse un peu reposé pour ingurgiter la tonne d'info que je me suis prise en lisant/comprenantn le fonctionnement du DOM/JS interne des navigateurs.

Re: PureDeal > Comment forcer une position en permanence

par Rogue » 22 nov. 2013 09:50

Oui, désolé Huggy, mais je n'ai jamais touché à Javascript... :?

Juste une question : le ticket d'opération ig est une nouvelle fenêtre de navigateur ou est-il intégré à la page web ?

Re: PureDeal > Comment forcer une position en permanence

par frigolite » 22 nov. 2013 09:56

Rogue K. a écrit :Oui, désolé Huggy, mais je n'ai jamais touché à Javascript... :?

Juste une question : le ticket d'opération IG est une nouvelle fenêtre de navigateur ou est-il intégré à la page web ?
C'est une fenêtre intégrée à la page web :mrgreen: .
Ce n'est pas une nouvelle fenêtre Firefox par exemple.

Re: PureDeal > Comment forcer une position en permanence

par Rogue » 22 nov. 2013 10:01

Donc si on fait un refresh de la page, cette fenêtre disparaît ?

Re: PureDeal > Comment forcer une position en permanence

par frigolite » 22 nov. 2013 10:17

Rogue K. a écrit :Donc si on fait un refresh de la page, cette fenêtre disparaît ?
http://www.dailymotion.com/video/x8vncq_tout-a-fait-thierry_sport
Spoiler:
la réponse est dans le :mrgreen:

Re: PureDeal > Comment forcer une position en permanence

par Rogue » 22 nov. 2013 10:19

frigolite a écrit :
Rogue K. a écrit :Donc si on fait un refresh de la page, cette fenêtre disparaît ?
http://www.dailymotion.com/video/x8vncq_tout-a-fait-thierry_sport
Spoiler:
la réponse est dans le :mrgreen:
Merci Jean Mimi ! :mrgreen:

Re: PureDeal > Comment forcer une position en permanence

par falex » 22 nov. 2013 10:42

J'ai regardé vite faite avec DOM Inspector (add-on pour FF) mais celui-ci ne pointe pas sur le code JS directement donc c'est un peu hard a décompiler ...

Disons que pour vous faire une image de ce que je cherche :
1) sur le serveur web tu as des fichiers de type .HTML, .JS qui sont le code de base de l'interface.
2) ton navigateur va chercher ces fichiersr et les inspects.
3) Là il va créer en interne un DOM (une sorte d'arbre où l'ensemble des objets sont insérer dans les feuilles de l'arbre).
En plus de ça tu as le code Javascript qui va :
- soit modifier des propriétés des objets à la création du DOM
- soit modifier la feuille dans le DOM sur un évenement (li.e onclick()).

Donc le code d'IG est simple à résumer : Quand je clique sur un sous-jacent (le fameux Event que je n'arrive pas à trouver), je créer un nouveau DIV qui a pour Id divTicket-X.

Une fois le DIV créé il est très simple d'aller faire un bout de script qui va changer l'attribut par défaut du bouton "Position forcée". C'est ce que j'ai posté dans mon premier post.

Mais vous l'aurez compris, il manque le chainon qui est : "J'intercepte la demande d'ouverture du DIV" et je récupère son index (le X dans divTicket-X), car à se moment là tout se passe en interne sur la page.

Re: PureDeal > Comment forcer une position en permanence

par Rogue » 22 nov. 2013 10:49

Et évidemment le divTicket-X a une valeur X variable... :|

Bah, bon courage alors.

Re: PureDeal > Comment forcer une position en permanence

par Rogue » 25 nov. 2013 08:12

Tu as lu ça falex ? Intéressant non pour pouvoir recharger la fenêtre et avoir la valeur de ton divTicket-X non ?

Re: PureDeal > Comment forcer une position en permanence

par falex » 25 nov. 2013 09:38

Hello,

Je vais regarder, ça pourrait être une première piste, effectivement.

Sinon en creusant, la page web d'ig utilise JQuery, donc s'il y a des pro en JQuery, un petit MP, par exemple.

Re: PureDeal > Comment forcer une position en permanence

par Amarantine » 25 nov. 2013 09:39

:top:

Re: PureDeal > Comment forcer une position en permanence

par GOLDS » 25 nov. 2013 10:43

:? désolé je peux pas t'aider non plus je suis un ane en informatique :oops:

Re: PureDeal > Comment forcer une position en permanence

par falex » 25 nov. 2013 12:34

Alors petit point d'étape :
1) j'ai le bout de code qui permet de cocher les cases "Position forcée" quelque soit l'Id et le nombre de ticket ouvert (c-a-d X dans "divTicket-X")
2) mais pour l'instant ce code est de type "exécution manuel".
-> Il me reste à trouver comment l'accrocher à la page web (Sur quel Event pour parler technique) et qu'il soit exécuter à l'ouverture d'un ticket.

L'aventure continue ...
Spoiler:
J'sais pas pourquoi mais j'ai comme la vague impression qu'IG ne vas pas forcément apprécier ce que je suis en train de faire ...

Re: PureDeal > Comment forcer une position en permanence

par falex » 25 nov. 2013 14:21

EDIT du 28/11/2013 :
Ne marche pas. Je continue mon investigation.
Spoiler:
YESSSSSSSSSSSSSSSSSS !!! appelez moi Maitre (mon égo y tiens beaucoup) LOL

A y est j'ai fait un script greasemonkey qui coche la case "Position forcé" dès qu'un ticket est ouvert et que vous bougez la souris.

Pour l'utiliser :
1) Il faut un compte IG (pour les comptes en marque blanche comme TradeBox, je ferais la modif après).
2) il faut installer Greasemonkey sur votre firefox.
3) Vous cliquer sur le singe puis Nouveau script utilisateur
4) copie/coller du code ci-dessous.
5) Refresh de la page et y'a plus qu'à tester.

Pour que ça marche : Vous cliquez sur un sous-jacent et dès que vous bougez la souris : Hop la case est coché.

Attention avec cette méthode si vous décochez la case elle sera automatiquement recoché au moindre mouvement de souris.

Code : #

// ==UserScript==
// @name        ForcePosition_externe
// @namespace   https://www.marketdatasystems.com
// @include     https://deal.ig.com/dealing/*
// @version     1
// ==/UserScript==

var IG_ForcedPosition = function() {
	var z = document.getElementsByClassName('forceOpenCheckbox');
	for (var i = 0; i < z.length; ++i) {
		var div = z[i]; 
		var item = div.getElementsByClassName('check hasListeners');
		for (var j=0; j < item.length; ++j) {
			item[j].checked =  true;
		}
	} 
}

document.addEventListener('mousemove', IG_ForcedPosition, true);

Re: PureDeal > Comment forcer une position en permanence

par Amarantine » 25 nov. 2013 14:30

J'y comprends rien mais comme je tiens à soigner ton égo: http://www.servimg.com/image_preview.php?i=3094&u=11654795

Re: PureDeal > Comment forcer une position en permanence

par falex » 25 nov. 2013 14:34

Merci Amarantine, Il t'en remercie. :lol:

Re: PureDeal > Comment forcer une position en permanence

par Rogue » 25 nov. 2013 14:35

Bravo falex !! :bravo:

Re: PureDeal > Comment forcer une position en permanence

par frigolite » 25 nov. 2013 14:52

falex a écrit :YESSSSSSSSSSSSSSSSSS !!! appelez moi Maitre (mon égo y tiens beaucoup) LOL
Bravo Maitre, bravo Falex
falex a écrit :

Code : #

// ==UserScript==

// @include     https://deal.ig.com/dealing/mot censuré merci de rester poli/*
Arf :lol: :lol: :lol:

Sujets similaires
Code pour forcer la cloture d'une position
par dd75000 » 01 juil. 2015 23:39 (2 Réponses)
PureDeal > Comment mettre le bouton "Compte" à gauche
par Amarantine » 27 nov. 2013 10:59 (4 Réponses)
Direct Market Live depuis PureDeal
Fichier(s) joint(s) par swapping » 29 mars 2015 11:06 (0 Réponses)
IG PureDeal > Fin le 31 mars 2024
Fichier(s) joint(s) par ChristelleP » 13 mars 2024 14:17 (7 Réponses)
Forcer l'horizontalité sur les tracés de segments
par Clive » 18 déc. 2016 19:32 (2 Réponses)
Faut-il se forcer à investir dans l’immobilier ?
par fabrelaurent » 26 déc. 2018 16:17 (80 Réponses)
PRT 11 / Forcer l'affichage pour inclure les indicateurs
Fichier(s) joint(s) par OpenBar » 13 août 2021 12:58 (1 Réponses)
Fermer une position en ouvrant une position inverse.
Fichier(s) joint(s) par Ariath » 20 sept. 2017 16:42 (24 Réponses)
comment vendre 3 lots sur 4 d une position ?
par falex » 06 avr. 2013 15:34 (16 Réponses)