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 sept. 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 : #

//+------------------------------------------------------------------+
//|                                         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 sept. 2014 21:00

Merci pour le code je regarderai lundi.

Re: MT4 et affichage en %

par kim47 » 21 sept. 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 : #

//+------------------------------------------------------------------+
//|                                         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 sept. 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 sept. 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 sept. 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...
Pièces jointes
fonctionel sans &quot;cours d'ouverture&quot;
fonctionel sans "cours d'ouverture"
fonctionel avec &quot;cours d'ouverture&quot; connu
fonctionel avec "cours d'ouverture" connu

Re: MT4 et affichage en %

par falex » 23 sept. 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 sept. 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 sept. 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.

Sujets similaires
Problème affichage MT4
par Amarantine » 08 mars 2020 19:15 (1 Réponses)
affichage de l'heure du message
par Amarantine » 03 août 2013 02:34 (2 Réponses)
Affichage du CCI avec XTB
par Fresh » 16 déc. 2013 20:50 (1 Réponses)
Affichage des graphiques en Bid/Ask sous Prorealtime
Pièces jointes par tontondubled » 16 févr. 2014 19:23 (9 Réponses)
Affichage des positions sur les graphes IG
par falex » 21 févr. 2014 10:33 (3 Réponses)
PRT / Indice / Affichage des 00/25/50/75
Pièces jointes par falex » 18 avr. 2014 11:01 (34 Réponses)
Affichage écran et échelle de cours
Pièces jointes par sobear » 25 nov. 2014 10:33 (3 Réponses)
Probléme d'affichage PRT IG 10.1
Pièces jointes par bobskye » 26 nov. 2014 15:02 (9 Réponses)
Affichage caratéristiques transactions
par dede6363 » 27 janv. 2015 19:16 (5 Réponses)
affichage de la première fenêtre sur le bureau
par lemerou » 03 mars 2015 17:10 (3 Réponses)