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...

MT4 et affichage en %

par falex » 31 Juil 2014 15:09

Hello les spécialistes de MT4.

Bon alors ce vieux machin (désolé :( ) est-il capable d'afficher une prix en valeur relatif (en % par rapport à un 0) et non uniquement le prix en valeur absolue ?

Typiquement je voudrais afficher -1.02% par rapport à une valeur X et non 9655 pour le DAX.

Merci.

Re: MT4 et affichage en %

par kim47 » 20 Sep 2014 20:00

salut, bien sur que tu peux le faire, il te suffit de programmer ça sur mql4... un genre de cadrant comme bfm-business...
Metatrader a son propre forum spécialisé mais en anglais... j ai squatté pas mal la bas...

tu te fais ta petite formule et pour l affichage...bon bouge pas !


Code: Tout sélectionner
//+------------------------------------------------------------------+
//|                                         cours en pourcentage.mq4 |
//|                        Copyright 2014, kim47.
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, kim47"
#property link      "http://www.mql5.com"
#property version   "1.00"
#property strict
#define NL     "\n" //commentaire



extern double opendax30=-1;
extern double opencac40=-1;
extern double openeurusd=-1;
extern double openxauusd=-1;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//cours actuel
double dax30=MarketInfo("#FDXZ4",MODE_BID);   // attention ,symbol cfd à risque limité et futur sont differents...
double cac40 = MarketInfo("#FCEZ4",MODE_BID);
double eurusd = MarketInfo("EURUSD",MODE_BID);
double xauusd = MarketInfo("GOLD",MODE_BID);

//si l'eimpreinte n'est pas rélevée une alerte est lancé pour le rentrer manuellement
if (opendax30 ||opencac40 ||openeurusd ||openxauusd<=0){ 
Alert("Empreinte impossible, veuillez entrer manuellement, merci!");
if (opendax30 &&opencac40 &&openeurusd &&openxauusd>0){
Alert("Empreinte enregistrées, merci!");
}}

//Empreinte selon horaire des marchés
if (Hour() == 0){ // forex
        if (Minute() == 0){
        if (Seconds() == 1){
        openeurusd = Bid; openxauusd =Bid; }}}

if (Hour() == 9){ //indice
        if (Minute() == 0){
        if (Seconds() == 1){
        opendax30 = Bid ; opencac40 = Bid; }}}
       
//calcul
 dax30= (100 / opendax30 * dax30 - 100); // Ta formule dax 30
 cac40= (100 / opencac40 * cac40 - 100); // Ta formule cac40
 eurusd= (100 / openeurusd * eurusd - 100); // Ta formule eurusd
 xauusd= (100 / openxauusd * xauusd - 100); // Ta formule pour l'or

//AFFICHAGE
Comment("DAX30 = ",(DoubleToStr(dax30,2))," %"+NL+  //affichage à 2 chiffre après la virgule
        "CAC40 = ",(DoubleToStr(cac40,2))," %"+NL+
        "EURUSD = ",(DoubleToStr(eurusd,2))," %"+NL+
        "XAUUSD = ", (DoubleToStr(xauusd,2))," %"+NL);


// le graphe doit être impérativement ouvert avant l'ouverture sinon il ne récupère pas l'empreinte du premier mouvement....
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+


// le graphe doit être impérativement ouvert avant l'ouverture sinon il ne récupère pas l'empreinte du premier mouvement.... Autrement, tu l' enregistre manuellement

manuellement c'est OK, mais automatique en backtest... j'peux pas encor confirmer, bye

Re: MT4 et affichage en %

par falex » 20 Sep 2014 21:00

Merci pour le code je regarderai lundi.

Re: MT4 et affichage en %

par kim47 » 21 Sep 2014 17:24

Nouvelle version mise a jour V1.1
Backtest ok !

Pour entrer les prix d' ouvertures manuellement, clique-gauche sur le smiley :cry: du graphique en question et entrer les valeurs demandées.

Code: Tout sélectionner
//+------------------------------------------------------------------+
//|                                         cours en pourcentage.mq4 |
//|                        Copyright 2014, kim47.
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, kim47"
#property link      "http://www.mql5.com"
#property version   "1.1"
#property strict
#define NL     "\n" //commentaire


// le graphe doit être impérativement ouvert avant l'ouverture sinon il ne récupère pas l'empreinte du premier mouvement....
extern double opendax30;
extern double opencac40;
extern double openeurusd;
extern double openxauusd;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---


//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
   //cours actuel
double dax30 = MarketInfo("#FDXZ4",MODE_BID);   // attention ,symbol cfd à risque limité et futur sont differents...
double cac40 = MarketInfo("#FCEZ4",MODE_BID);   // possibilité de changer les symboles a votre convenance
double eurusd = MarketInfo("EURUSD",MODE_BID);
double xauusd = MarketInfo("GOLD",MODE_BID);    // exemple GOLD par XAUUSD (ou autre) mais il va falloir modifier l'affichage aussi dans la partie 'comment' !!!


// pour backtest seulement !!! à griser en mode "live"
//if ((dax30<=0)||(cac40<=0)||(eurusd<=0)||(xauusd<=0)){dax30=10000; cac40=5000; eurusd=1.50; /*xauusd= 2000;*/}


//si l'eimpreinte n'est pas rélevée une alerte est lancé pour l'entrer manuellement
if (opendax30 && opencac40 && openeurusd && openxauusd >0 ){ 
   /* Alert("Empreintes enregistrées, merci!");*/
//calcul
    double calc_dax30 = (100 / opendax30 * dax30 - 100); // Ta formule dax 30
    double calc_cac40 = (100 / opencac40 * cac40 - 100); // Ta formule cac40
    double calc_eurusd = (100 / openeurusd * eurusd - 100); // Ta formule eurusd
    double calc_xauusd = (100 / openxauusd * xauusd - 100); // Ta formule pour l'or
//AFFICHAGE
      Comment((DoubleToStr(Hour(),0))," H "+(DoubleToStr(Minute(),0))," min "+(DoubleToStr(Seconds(),0))," Sec"+ NL+
            "DAX30 = ",(DoubleToStr(calc_dax30,2))," %"+" OPEN = ",(DoubleToStr(opendax30,2))+" DAX30 = ",(DoubleToStr(dax30,2))+NL+  //affichage à 2 chiffre après la virgule
            "CAC40 = ",(DoubleToStr(calc_cac40,2))," %"+" OPEN = ",(DoubleToStr(opencac40,2))+" CAC40 = ",(DoubleToStr(cac40,2))+NL+
            "EURUSD = ",(DoubleToStr(calc_eurusd,2))," %"+" OPEN = ",(DoubleToStr(openeurusd,5))+" EURUSD = ",(DoubleToStr(eurusd,5))+NL+
            "XAUUSD = ", (DoubleToStr(calc_xauusd,2))," %"+" OPEN = ",(DoubleToStr(openxauusd,2))+" XAUUSD = ", (DoubleToStr(xauusd,2))+NL);

}  else {
        Comment("Empreinte impossible, veuillez entrer manuellement, merci !");
     
       //pour bakctest seulement !!! à griser en mode "live"
       /*opendax30=9845;
       opencac40=4453;
       openeurusd=1.29203;
       openxauusd=1224;*/

}

//Empreinte selon horaires d'ouverture des marchés
if (Hour() == 0){ // forex
        if (Minute() == 0){
        if (Seconds() <= 1){
        openeurusd = eurusd;}}}
       
if (Hour() == 1){ // forex
        if (Minute() == 0){
        if (Seconds() <= 1){
        openxauusd = xauusd;}}}
       
if (Hour() == 9){ //indice
        if (Minute() == 0){
        if (Seconds() <=1){
        opendax30 = dax30 ; opencac40 = cac40; }}} // cac trop court =problem
               




   
  }
//+------------------------------------------------------------------+

Re: MT4 et affichage en %

par falex » 21 Sep 2014 17:44

J'ai bienfait d'attendre avant de tester :)

Tu as encore 12/13H devant toi pour une V1.2 :lol:

Re: MT4 et affichage en %

par falex » 22 Sep 2014 15:34

Je viens de tester la v1.1 : Bizare ça n'affiche rien.

J'ai remplacé le "code" Dax FD.. par "Dax 30" et rien ?
Tu aurais un screenshot du résultat s'il te plait ?

Idem pour EURUSD (ou le code est le même).

A chaque fois mes graphe sont bien ouvert avant que je charge l'indicateur.

Re: MT4 et affichage en %

par kim47 » 23 Sep 2014 15:07

slt, voila pour l'aperçu, je te confirme qu'il est opérationnel...

par contre si tu n'a aucun de ces 2 affichages c'est que le fichier n'est pas au bon endroit sur ton pc et j'ai une petite idée du problème...

Mt4 : fichier / ouvrir le dossier des données / mql4 / experts / ici !!! et normalement c'est bon...

tiens moi au jus...
Fichiers joints
fonctionel sans "cours d'ouverture"
fonctionel avec "cours d'ouverture" connu

Re: MT4 et affichage en %

par falex » 23 Sep 2014 15:39

Ok merci pour l'export.

Je vais regarder pourtant quand j'ai fini la compile et que je lance le terminal il est bien dans la liste à gauche ...

J'ai compris pourquoi ça n'affiche rien, tu l'a codé comme un EA pas comme un indic' ...
et moi j'ai copié/collé en tant qu'indic

---

Curieux malgré le fait que j'ai changé les codes des sous-jacent je suis obligé de rentrer le cours à la main ?

Re: MT4 et affichage en %

par kim47 » 23 Sep 2014 16:14

non, tu doit rentrer le cours d'ouverture (la première fois), pas le cours actuel, lol, ensuite il boss tout seul...

Re: MT4 et affichage en %

par falex » 23 Sep 2014 16:44

Oui j'avais bien vu ça dans ton code. mais tu avais écris en commentaire que si le graphe était ouvert il n'y avait pas besoin d'écrire le cours d'ouverture, c'est de la que vient mon étonnement.

Articles en relation
affichage permanent du RSI
par kamyero » 18 Mar 2015 17:20 (4 Réponses)
affichage point vs €
par plataxis » 19 Mar 2015 10:32 (7 Réponses)
Problème affichage
par Benoist Rousseau » 13 Juin 2016 09:30 (8 Réponses)
Affichage des positions sur les graphes IG
par falex » 21 Fév 2014 11:33 (3 Réponses)
Affichage caratéristiques transactions
par dede6363 » 27 Jan 2015 20:16 (5 Réponses)
Affichage graphique X ticks IG
par Math974 » 19 Oct 2015 14:55 (4 Réponses)
Affichage sur le carnet d'ordre
par Sips » 18 Mar 2017 11:47 (5 Réponses)
Limite affichage intra-day
Fichier(s) joint(s) par Arnaud.sw » 31 Mar 2019 16:00 (0 Réponses)
Affichage des graphiques en Bid/Ask sous Prorealtime
Fichier(s) joint(s) par tontondubled » 16 Fév 2014 20:23 (9 Réponses)
Plate-forme IG affichage en tick
par plataxis » 05 Déc 2015 21:01 (7 Réponses)

ProRealTime