[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 127

 
Nein.
 

Diese Frage: Der Standard-OA-Indikator verwendet 2 zusätzliche Indexpuffer, die nicht an der Darstellung des Indikators beteiligt sind:

//+------------------------------------------------------------------+
//|                                                  Accelerator.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2005, MetaQuotes Software Corp."
#property  link      "http://www.metaquotes.net/"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 3
#property  indicator_color1  Black
#property  indicator_color2  Green
#property  indicator_color3  Red
//---- indicator buffers
double     ExtBuffer0[];
double     ExtBuffer1[];
double     ExtBuffer2[];
double     ExtBuffer3[];
double     ExtBuffer4[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- 2 additional buffers are used for counting.
   IndicatorBuffers(5);
//---- drawing settings
   SetIndexStyle(0,DRAW_NONE);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexStyle(2,DRAW_HISTOGRAM);
   IndicatorDigits(Digits+2);
   SetIndexDrawBegin(0,38);
   SetIndexDrawBegin(1,38);
   SetIndexDrawBegin(2,38);
//---- 4 indicator buffers mapping
   SetIndexBuffer(0, ExtBuffer0);
   SetIndexBuffer(1, ExtBuffer1);
   SetIndexBuffer(2, ExtBuffer2);
   SetIndexBuffer(3, ExtBuffer3);
   SetIndexBuffer(4, ExtBuffer4);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("AC");
   SetIndexLabel(1,NULL);
   SetIndexLabel(2,NULL);
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Accelerator/Decelerator Oscillator                               |
//+------------------------------------------------------------------+
int start()
  {
   int    limit;
   int    counted_bars=IndicatorCounted();
   double prev, current;
//---- last counted bar will be recounted
   if( counted_bars>0) counted_bars--;
   limit=Bars- counted_bars;
//---- macd counted in the 1-st additional buffer
   for(int i=0; i& lt; limit; i++)
      ExtBuffer3[ i]=iMA(NULL,0,5,0,MODE_SMA,PRICE_MEDIAN, i)-
                    iMA(NULL,0,34,0,MODE_SMA,PRICE_MEDIAN, i);
//---- signal line counted in the 2-nd additional buffer
   for( i=0; i< limit; i++)
      ExtBuffer4[ i]=iMAOnArray( ExtBuffer3,Bars,5,0,MODE_SMA, i);
//---- dispatch values between 2 buffers
   bool up=true;
   for( i= limit-1; i>=0; i--)
     {
      current=ExtBuffer3[ i]- ExtBuffer4[ i];
      prev=ExtBuffer3[ i+1]- ExtBuffer4[ i+1];
      if( current> prev) up=true;
      if( current& lt; prev) up=false;
      if(! up)
        {
         ExtBuffer2[ i]= current;
         ExtBuffer1[ i]=0.0;
        }
      else
        {
         ExtBuffer1[ i]= current;
         ExtBuffer2[ i]=0.0;
        }
       ExtBuffer0[ i]= current;
     }
//---- done
   return(0);
  }
//+------------------------------------------------------------------+

Wie Sie sehen können, werden in diesen Feldern nur Berechnungen durchgeführt. Ich verstehe nicht, warum diesen Arrays der Status eines Indexpuffers zugewiesen werden sollte?

 
neoclassic писал(а) >>

Diese Frage: Der Standard-OA-Indikator verwendet 2 zusätzliche Indexpuffer, die nicht an der Darstellung des Indikators beteiligt sind:

Wie Sie sehen können, werden in diesen Feldern nur Berechnungen durchgeführt. Ich verstehe nicht, warum diesen Arrays der Status von Indexpuffern zugewiesen werden muss?

um die Größe des Arrays festzulegen!

 

Hallo Forenbenutzer!

Ich bin ein absoluter MQL-Programmierer. Aber ich würde gerne einen einfachen EA wie diesen haben. Öffnet Pose mit etwas Los. Ich habe sofort einen festen Stop gesetzt (20-30 Pips). Nach Erreichen eines bestimmten Gewinns (20-30 Pips) schließen wir einen Teil der Position (50%), und für die verbleibenden Positionen wird der Stop auf Breakeven verschoben. Für den Rest der Position wird ein Gewinnauftrag erteilt oder sie wird manuell überwacht. Hier ist eine Idee. Für Antworten wäre ich sehr dankbar.

 
vvavva >> :

um die Größe des Arrays festzulegen!

aber was ist zu tun, wenn Sie eine große Anzahl von Arrays verwenden müssen? >> (mehr als 8)

 

reguläre Arrays statt Pufferarrays verwenden

anstelle von

SetIndexPuffer(3,ExtPuffer3);SetIndexPuffer(4,ExtPuffer4);

verwenden.

ArrayResize(ExtBuffer3,Bars); ArrayResize(ExtBuffer4,Bars);

 
keekkenen >> :

reguläre Arrays statt Pufferarrays verwenden

anstelle von

SetIndexPuffer(3,ExtPuffer3);SetIndexPuffer(4,ExtPuffer4);

verwenden.

ArrayResize(ExtBuffer3,Bars); ArrayResize(ExtBuffer4,Bars);


Ich danke Ihnen!!!

 
neoclassic писал(а) >>

Was ist, wenn eine große Anzahl von Arrays verwendet werden muss? (mehr als 8)

Arrays zum Zeichnen im Indikator dürfen die angegebene Grenze nicht überschreiten (ich glaube, es sind 8)!

Arrays für Berechnungen haben auch Grenzen, aber die Zahl ist größer!

um mit Arrays die Grenzen zu umgehen, müssen Sie Bibliotheken verwenden!

 
Ich habe eine Frage. Ist es möglich, einen Nachrichtenkellner zu machen. Sagen wir, heute werden die Nachrichten genaue Zeit ist nicht bekannt ungefähre Text ein Wort, ich brauche einen längeren und lauteren Piepton kann es tun.
 
Hallo, plz sagen Sie mir so viele mögliche Gründe, warum die Variable k=Bars ändern kann, wenn ein neuer Balken noch nicht begonnen hat, zu bilden (alle möglichen Situationen), sagen Sie das Währungspaar, Zeitrahmen, einige mt4 Update oder in dc geändert.
Grund der Beschwerde: