Aide à la mise à niveau vers MetaTrader 5 sans perte de données - page 12

 
vdv2001:

Un peu de peinture sur les niveaux de Murray

J'ai téléchargé cet indicateur. J'ai reçu une erreur à la ligne 228 lors de la compilation. Je n'ai pas été en mesure de le dessiner, alors veuillez me croire sur parole. Je veux utiliser l'indicateur que j'utilise sur MT5, c'est pourquoi je suis ici, je n'ai pas pu le faire moi-même. Peut-être que tu peux le réécrire pour moi. Je ne peux pas l'écrire moi-même. Merci.
Dossiers :
 

Bon après-midi. Les personnes intelligentes doivent vraiment traduire l'indicateur de corrélation dans MT5.

Dossiers :
iCorel_v3.mq4  11 kb
 
C'est un bon, un utile aussi. C'est bon pour tout le monde.
Dossiers :
 
Pourquoi les lignes ne sont-elles pas tracées ?


#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots 2
#propriété indicator_color1 clrDeepSkyBlue
#property indicator_color2 clrDeepSkyBlue
#property indicator_chart_window
double UpBuffer[] ;
double DnBuffer[] ;
int OnInit()
{
SetIndexBuffer(0,UpBuffer) ;
SetIndexBuffer(1,DnBuffer) ;
PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE) ; PlotIndexSetInteger(0,PLOT_DRAW_TYPE,PLOT_LINE_WIDTH,3) ; PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE) ;
PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE) ; PlotIndexSetInteger(1,PLOT_DRAW_TYPE,PLOT_LINE_WIDTH,3);PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE) ;
retour(0) ;
}
//+------------------------------------------------------------------+
//| Fonction d'itération de l'indicateur personnalisé |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,const int prev_calculated,const datetime &time[],const double &open[],const double &high[],const double &low[],const double &close[],const long &tick_volume[],const long &volume[],const int &spread[])
{ int i ;
for(i=1000;i>0;i--)
{ UpBuffer[i]=1.428 ; DnBuffer[i]=1.41 ;
}
retour(0) ;
}
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5
 
fellow:
Pourquoi les lignes ne sont-elles pas tracées ?



Ça devrait être quelque chose comme ça, croyez-le ou non, ça marche.

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots 2
#property indicator_color1 clrDeepSkyBlue
#property indicator_color2 clrDeepSkyBlue

double UpBuffer[];
double DnBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,UpBuffer);
   SetIndexBuffer(1,DnBuffer);

   PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE);
   PlotIndexSetInteger(0,PLOT_DRAW_TYPE,PLOT_LINE_WIDTH,3);

   PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE);
   PlotIndexSetInteger(1,PLOT_DRAW_TYPE,PLOT_LINE_WIDTH,3);

//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   for(int i=rates_total-1000;i<rates_total;i++)
     {
      UpBuffer[i]=1.428;
      DnBuffer[i]=1.41;
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
voinG:
Cet indicateur a été téléchargé. Lors de la compilation, une erreur s'est produite à la ligne 228. Je n'ai pas pu faire d'image, alors croyez-moi sur parole. Je veux utiliser l'indicateur que j'utilise sur MT5, c'est pourquoi je suis ici, je n'ai pas pu le faire moi-même. Peut-être que tu peux le réécrire pour moi. Merci.
L'action de sauvegarde de l'ensemble des données est-elle terminée ? Tout ce que vous pouvez me dire.
 

Aidez-moi, s'il vous plaît.

J'ai essayé de réécrire WATL, j'ai presque réussi. Les lignes ne sont pas tracées correctement, c'est à cause d'un calcul LWMA tordu. Et surtout, le graphique réserve parfois des surprises :

Surprise

Une ligne de points est parfois identique aux points sur lesquels le WATL est calculé.

Ou parfois, le graphique est tourné et tous les points sont dupliqués sur la barre adjacente.

Merci d'avance pour toute aide =)

Dossiers :
WATL.mq5  41 kb
 

Peut-être que quelqu'un a vu cet indicateur dans des transformations MQL5 ? http://www.kimiv.ru/index.php?option=com_remository&amp;Itemid=13&func=fileinfo&id=67

Автоматизация торговли на финансовых рынках - Скачать i-Spread3.rar
  • www.kimiv.ru
Оглавление файлового архива  Разработки на MQL4 Индикаторы   Очень хорошую доработку индикатора i-Spread предложил пользователь pavik. Суть доработки в добавлении отображения минимальных значений спрэда за последние час, четыре часа и сутки. А также...
 
Aide à la conversion en mq5. Sans eux, c'est comme si on n'avait pas de mains !
 

Bonjour,

Je ne pouvais pas faire ce que je voulais.

J'ai un tampon de mouillage différent dans ma tête, j'ai une paire différente, que celle que j'avais dans ma tête.

[code]
#propriété indicator_separate_window
#property indicator_buffers 6
#property indicator_plots 2
#property indicator_type1 DRAW_COLOR_LINE
#property indicator_type2 DRAW_COLOR_LINE
#propriété indicator_color1 clrBlue
#property indicator_color2 clrRed
#propriété indicator_style1 STYLE_SOLID
#propriété indicator_style2 STYLE_SOLID

entrée int period_1 = 20 ;
entrée int period_2 = 100 ;
entrée ENUM_MA_METHOD ma_method = MODE_SMA ;
input ENUM_APPLIED_PRICE applied_price = PRICE_CLOSE ;

double ExtMapBuffer1[] ;
double ExtMapBuffer2[] ;
int EMHandle1=0 ;
int EMHandle2=0 ;
int EMHandle11=0 ;
int EMHandle22=0 ;
MqlParam params[] ; // Structure pour la sauvegarde des paramètres de l'indicateur
double ma1[],ma2[],ma3[],ma4[];//tampons temporels

int OnInit()
{
//--- cartographie des tampons indicateurs
SetIndexBuffer(0, ExtMapBuffer1, INDICATOR_DATA) ;
SetIndexBuffer(1, ExtMapBuffer2, INDICATOR_DATA) ;
SetIndexBuffer(2, ma1, INDICATOR_DATA) ;
SetIndexBuffer(3, ma2, INDICATOR_DATA) ;
SetIndexBuffer(4, ma3, INDICATOR_DATA) ;
SetIndexBuffer(5, ma4, INDICATOR_DATA) ;

PlotIndexSetInteger(0, PLOT_SHIFT, 0) ;
PlotIndexSetInteger(1, PLOT_SHIFT, 0) ;

PlotIndexSetInteger(0,PLOT_LINE_STYLE,STYLE_SOLID) ;
PlotIndexSetInteger(1,PLOT_LINE_STYLE,STYLE_SOLID) ;
//---
PlotIndexSetInteger(0,PLOT_LINE_COLOR,clrBlue) ;
PlotIndexSetInteger(1,PLOT_LINE_COLOR,clrRed) ;

PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_LINE) ;
PlotIndexSetInteger(1,PLOT_DRAW_TYPE,DRAW_LINE) ;
IndicatorSetString(INDICATOR_SHORTNAME, "2_2_MA") ;
//--- définir la précision
IndicatorSetInteger(INDICATOR_DIGITS,4) ;
//---
ArrayResize(params,4) ;
params[0].type =TYPE_INT ;
params[0].integer_value=period_1 ;
// Décalage
params[1].type =TYPE_INT ;
params[1].integer_value=0 ;
// Méthode de calcul : moyenne simple
params[2].type =TYPE_INT ;
params[2].integer_value=MODE_SMA ;
// type de prix pour le calcul : prix de clôture
params[3].type =TYPE_INT ;
params[3].integer_value=PRICE_CLOSE ;

EMHandle1 = IndicatorCreate(_Symbol, 0, IND_MA, 4, params ;)
ArrayResize(params,4) ;
params[0].type =TYPE_INT ;
params[0].integer_value=period_2 ;
params[1].type =TYPE_INT ;
params[1].integer_value=0 ;
params[2].type =TYPE_INT ;
params[2].integer_value=MODE_SMA ;
params[3].type =TYPE_INT ;
params[3].integer_value=PRICE_CLOSE ;

EMHandle2 = IndicatorCreate(_Symbol, 0, IND_MA, 4, params ;)
ArrayResize(params,4) ;
params[0].type =TYPE_INT ;
params[0].integer_value=period_1 ;
params[1].type =TYPE_INT ;
params[1].integer_value=0 ;
params[2].type =TYPE_INT ;
params[2].integer_value=MODE_SMA ;
params[3].type =TYPE_INT ;
params[3].integer_value=PRICE_CLOSE ;

EMHandle11 = IndicatorCreate(_Symbol, 0, IND_MA, 4, params ;)
ArrayResize(params,4) ;
params[0].type =TYPE_INT ;
params[0].integer_value=period_2 ;
params[1].type =TYPE_INT ;
params[1].integer_value=0 ;
params[2].type =TYPE_INT ;
params[2].integer_value=MODE_SMA ;
params[3].type =TYPE_INT ;
params[3].integer_value=PRICE_CLOSE ;

EMHandle22 = IndicatorCreate(_Symbol, 0, IND_MA, 4, params ;)

retour(0) ;
}
int OnCalculate (const int rates_total,// taille du tableau price[] ;
const int prev_calculated,// nombre de barres disponibles ;sur l'appel précédent ;
const int begin,// quel index dans le tableau price[] commencera les données valides ;
const double &price[]) // tableau, sur lequel l'indicateur sera calculé ;
{
int i ;
ArraySetAsSeries(ma1, true) ;
ArraySetAsSeries(ma2, true) ;
ArraySetAsSeries(ma3, true) ;
ArraySetAsSeries(ma4, true) ;

if(CopyBuffer(EMHandle1, 0, 0, 1, ma1) < 0){Print("CopyBuffer ma1 error =", GetLastError());}
if(CopyBuffer(EMHandle2, 0, 0, 1, ma2) < 0){Print("CopyBuffer ma2 error =", GetLastError());}
if(CopyBuffer(EMHandle11, 0, 0, 1, ma3) < 0){Print("CopyBuffer ma3 error =", GetLastError());}
if(CopyBuffer(EMHandle22, 0, 0, 0, 1, ma4) < 0){Print("CopyBuffer ma4 error =", GetLastError());}
int limite ;
//if(prev_calculated<1)
//limite=period_1 ;
limit=prev_calculated-1 ;
for( i=0 ; i<limit ; i++)
ExtMapBuffer1[0]=calculé ;
ExtMapBuffer2[0]=calculer ;

Commentaire(
"\n=====================",
"\n ma1[0] : ",DoubleToString(ma1[0],5),
"\n ma2[0] : ",DoubleToString(ma2[0],5),
"\n ma3[0] : ",DoubleToString(ma3[0],5),
"\n ma4[0] : ",DoubleToString(ma4[0],5),
"\n ExtMapBuffer1[0] : ",DoubleToString(ExtMapBuffer1[0],4),
"\n ExtMapBuffer2[0] : ",DoubleToString(ExtMapBuffer2[0],4)
) ;
retour(taux_total) ;
}
void OnDeinit(const int reason)
{
Commentaire (") ;
}
[/code]

Lorsque 0 au lieu de i (pour une barre) je vois le résultat, lorsque la barre (courant = i) montre que je ne peux pas trouver de données pour la deuxième paire.

Le graphique de la paire est ouvert, dans la fenêtre du marché, je ne sais pas où je confonds les choses.

Deux paires différentes dans un seul indicateur - alors où est mon erreur ?

J'essaie de mettre 0 et de voir le résultat sous forme de commentaire, mais je n'ai pas de ligne.

Pour clarifier : j'ai mis ma1 et ma2 sur une paire et ma3 et ma4 sur l'autre paire.

Merci.