Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 117

 
Rustam Bikbulatov:
Est-ce que je vais payer pour ça ?
Si quelqu'un qui a beaucoup de temps peut le faire, vous pourriez avoir de la chance. Mais sinon, oui, le temps c'est de l'argent, désolé ;)

Ou essayez de le faire vous-même, et vous obtiendrez de l'aide ici - l'aide n'est destinée qu'à ceux qui apprennent par eux-mêmes et ne réussissent pas quelque chose.
 
Artyom Trishkin:
Commencez à écrire. Ce qui ne fonctionne pas - demandez - nous vous aiderons.

Ou voulez-vous que nous le fassions pour vous ?
Je voulais connecter ces indicateurs, mais il y a une erreur. J'ai lutté toute la journée.
Dossiers :
tyyu.mq4  5 kb
 
Rustam Bikbulatov:
J'ai essayé de connecter ces indicateurs mais il y a une erreur. J'ai essayé toute la journée.
Montrez-moi votre code, où vous essayez de les connecter, et ce qui ne va pas ?

Veuillez coller le code avec le bouton SRC pour voir ce que vous essayez de faire, au lieu de télécharger ces codes dans votre système, ils sont déjà trop nombreux.
 
Rustam Bikbulatov:
J'ai essayé de connecter ces indicateurs, mais une erreur est apparue. J'ai essayé de le faire toute la journée.
start' - fonction déjà définie et ayant un corps sound Moving Averages.mq4 178 5

Dossiers :
 
Artyom Trishkin:
Montrez votre code, où essayez-vous de les connecter, et qu'est-ce que vous n'arrivez pas à faire ?

Veuillez utiliser le bouton SRC pour voir ce que vous essayez de faire au lieu de télécharger ce code sur votre système - il y en a déjà trop.
J'aimerais savoir ce qu'est ce bouton magique.
 
Rustam Bikbulatov:
si je savais quel était le bouton magique.

Oh bien.

Lisez l'aide sur la façon d'utiliser le forum. Voulez-vous un lien, ou pouvez-vous le trouver vous-même ?

 
//+------------------------------------------------------------------+
//|                                        Custom Moving Average.mq4 |
//|                      Copyright © 2004, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- indicator parameters
extern int MA_Period=13;
extern int MA_Shift=0;
extern int MA_Method=0;
extern double Alert_Level = 0;
//---- indicator buffers
double ExtMapBuffer[];
double Buffer2[];
//----
int ExtCountedBars=0;
int br1=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   int    draw_begin;
   string short_name;
//---- drawing settings
   SetIndexStyle(0,DRAW_LINE);
   SetIndexShift(0,MA_Shift);
   IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
   if(MA_Period<2) MA_Period=13;
   draw_begin=MA_Period-1;
//---- indicator short name
   switch(MA_Method)
     {
      case 1 : short_name="EMA(";  draw_begin=0; break;
      case 2 : short_name="SMMA("; break;
      case 3 : short_name="LWMA("; break;
      default :
         MA_Method=0;
         short_name="SMA(";
     }
   IndicatorShortName(short_name+MA_Period+")");
   SetIndexDrawBegin(0,draw_begin);
//---- indicator buffers mapping
   SetIndexBuffer(0,ExtMapBuffer);
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   if(Bars<=MA_Period) return(0);
   ExtCountedBars=IndicatorCounted();
//---- check for possible errors
   if (ExtCountedBars<0) return(-1);
//---- last counted bar will be recounted
   if (ExtCountedBars>0) ExtCountedBars--;
//----
   switch(MA_Method)
     {
      case 0 : sma();  break;
      case 1 : ema();  break;
      case 2 : smma(); break;
      case 3 : lwma();
     }
//---- done
   return(0);
  }
//+------------------------------------------------------------------+
//| Simple Moving Average                                            |
//+------------------------------------------------------------------+
void sma()
  {
   double sum=0;
   int    i,pos=Bars-ExtCountedBars-1;
//---- initial accumulation
   if(pos<MA_Period) pos=MA_Period;
   for(i=1;i<MA_Period;i++,pos--)
      sum+=Close[pos];
//---- main calculation loop
   while(pos>=0)
     {
      sum+=Close[pos];
      ExtMapBuffer[pos]=sum/MA_Period;
           sum-=Close[pos+MA_Period-1];
           pos--;
     }
//---- zero initial bars
   if(ExtCountedBars<1)
      for(i=1;i<MA_Period;i++) ExtMapBuffer[Bars-i]=0;
  }
//+------------------------------------------------------------------+
//| Exponential Moving Average                                       |
//+------------------------------------------------------------------+
void ema()
  {
   double pr=2.0/(MA_Period+1);
   int    pos=Bars-2;
   if(ExtCountedBars>2) pos=Bars-ExtCountedBars-1;
//---- main calculation loop
   while(pos>=0)
     {
      if(pos==Bars-2) ExtMapBuffer[pos+1]=Close[pos+1];
      ExtMapBuffer[pos]=Close[pos]*pr+ExtMapBuffer[pos+1]*(1-pr);
           pos--;
     }
  }
//+------------------------------------------------------------------+
//| Smoothed Moving Average                                          |
//+------------------------------------------------------------------+
void smma()
  {
   double sum=0;
   int    i,k,pos=Bars-ExtCountedBars+1;
//---- main calculation loop
   pos=Bars-MA_Period;
   if(pos>Bars-ExtCountedBars) pos=Bars-ExtCountedBars;
   while(pos>=0)
     {
      if(pos==Bars-MA_Period)
        {
         //---- initial accumulation
         for(i=0,k=pos;i<MA_Period;i++,k++)
           {
            sum+=Close[k];
            //---- zero initial bars
            ExtMapBuffer[k]=0;
           }
        }
      else sum=ExtMapBuffer[pos+1]*(MA_Period-1)+Close[pos];
      ExtMapBuffer[pos]=sum/MA_Period;
           pos--;
     }
  }
//+------------------------------------------------------------------+
//| Linear Weighted Moving Average                                   |
//+------------------------------------------------------------------+
void lwma()
  {
   double sum=0.0,lsum=0.0;
   double price;
   int    i,weight=0,pos=Bars-ExtCountedBars-1;
//---- initial accumulation
   if(pos<MA_Period) pos=MA_Period;
   for(i=1;i<=MA_Period;i++,pos--)
     {
      price=Close[pos];
      sum+=price*i;
      lsum+=price;
      weight+=i;
     }
//---- main calculation loop
   pos++;
   i=pos+MA_Period;
   while(pos>=0)
     {
      ExtMapBuffer[pos]=sum/weight;
      if(pos==0) break;
      pos--;
      i--;
      price=Close[pos];
      sum=sum-lsum+price*MA_Period;
      lsum-=Close[i];
      lsum+=price;
     }
//---- zero initial bars
   if(ExtCountedBars<1)
      for(i=1;i<MA_Period;i++) ExtMapBuffer[Bars-i]=0;
  }
//+------------------------------------------------------------------+

int start()
   {int limit;
    int counted_bars = IndicatorCounted();
//---- check for possible errors
    if(counted_bars < 0)
        return(-1);
//---- last counted bar will be recounted
    if(counted_bars > 0)
        counted_bars--;
    limit = Bars - counted_bars;
    if(counted_bars==0) limit--;
//----
    for(int i = limit; i >=0; i--)
    //for(int i = 1000; i >=0; i--)
       {
        Buffer2[i]=iMA(NULL,1,60,0,1,6,0);
       }
    if(((Buffer2[2]<0 && Buffer2[1]>Alert_Level) ||
        (Buffer2[2]>0 && Buffer2[1]<Alert_Level)) && br1<Bars  )
      {
       PlaySound("alert.wav"); Sleep(500);
       PlaySound("alert.wav"); Sleep(500);
       PlaySound("alert.wav"); br1=Bars;
       Alert("На ",Symbol()," \"", "\" пересечение с =0= ");
       Print("На ",Symbol()," \"", "\" пересечение с =0= ");
      }
  }
//+------------------------------------------------------------------+
 

autre chose de drôle

double OP = 5.00000

TP = (OP/100) ;

Print("TP= ",TP) ;

2017.02.09 21:36:03.650 2015.01.05 04:00:00 martin H1-1 USDJPY,H1 : TP= 0.5

Je ne comprends pas depuis quand on divise 5 par 100 pour obtenir 0,5.

J'ai compris - pour une raison quelconque, le terminal ne supporte pas les différentes couleurs et prend ce qui existe déjà dans d'autres fonctions.

 
trader781:
...

le terminal ne supporte pas les différentes couleurs et prend quelque chose qui existe déjà dans d'autres fonctions

En objets ? Conneries.
 
Artyom Trishkin:
Des objets ? Conneries.
Artyom, le code que j'ai jeté ci-dessus
Raison: