Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 117

 
Rustam Bikbulatov:
würde ich dafür bezahlen?
Wenn jemand, der viel Zeit hat, dies tun kann, haben Sie vielleicht Glück. Aber ansonsten, ja, Zeit ist Geld, sorry ;)

Oder versuchen Sie, es selbst zu tun, dann bekommen Sie hier Hilfe - Hilfe ist nur für diejenigen, die selbst lernen und etwas nicht schaffen.
 
Artyom Trishkin:
Beginnen Sie zu schreiben. Was nicht klappt - fragen Sie uns - wir helfen Ihnen.

Oder wollen Sie, dass wir das für Sie tun?
Ich wollte diese Indikatoren verbinden, aber es gibt einen Fehler. Ich habe den ganzen Tag damit zu kämpfen
Dateien:
tyyu.mq4  5 kb
 
Rustam Bikbulatov:
Ich wollte diese Indikatoren verbinden, aber es gibt einen Fehler. Ich habe den ganzen Tag versucht, dies zu tun.
Zeigen Sie mir Ihren Code, wo Sie versuchen, sie zu verbinden, und was ist falsch?

Bitte fügen Sie den Code mit dem SRC-Button ein, um zu sehen, was Sie zu tun versuchen, anstatt diese Codes in Ihr System hochzuladen, sie sind schon zu viel.
 
Rustam Bikbulatov:
Ich habe versucht, diese Indikatoren zu verbinden, aber es kommt ein Fehler. Ich habe den ganzen Tag versucht, dies zu tun.
'start' - Funktion ist bereits definiert und hat einen Körper sound Moving Averages.mq4 178 5

Dateien:
 
Artyom Trishkin:
Zeigen Sie Ihren Code, wo versuchen Sie, sie zu verbinden, und woran scheitern Sie dabei?

Bitte verwenden Sie die SRC-Schaltfläche, um zu sehen, was Sie zu tun versuchen, anstatt diesen Code in Ihr System hochzuladen - es gibt bereits zu viele davon.
Ich wünschte, ich wüsste, was dieser magische Knopf ist.
 
Rustam Bikbulatov:
wenn ich wüsste, was der magische Knopf ist.

Tja.

Lesen Sie die Hilfe zur Benutzung des Forums. Möchten Sie einen Link, oder können Sie ihn selbst finden?

 
//+------------------------------------------------------------------+
//|                                        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= ");
      }
  }
//+------------------------------------------------------------------+
 

eine weitere lustige Sache

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

Ich verstehe nicht, seit wann man 5 durch 100 teilen muss, um 0,5 zu erhalten.

Ich habe es herausgefunden - das Terminal unterstützt aus irgendeinem Grund keine verschiedenen Farben, es übernimmt einfach das, was bereits in anderen Funktionen vorhanden ist

 
trader781:
...

das Terminal unterstützt keine verschiedenen Farben und nimmt etwas, das bereits in anderen Funktionen vorhanden ist

In Objekten? Blödsinn.
 
Artyom Trishkin:
Objekte? Blödsinn.
Artyom, der Code, den ich oben eingegeben habe
Grund der Beschwerde: