[Archiv!] Ich schreibe jeden Experten oder Indikator kostenlos. - Seite 89

 
Vinin:
Nicht einfacher. Nicht genug Puffer.
Es gäbe nicht genug Puffer. Aber der Autor wollte nur Histogramme :))
"Ich meine 3 Histogramme mit unterschiedlichen Werten"
 
granit77:
Das ist nicht gut genug. Aber der Autor wollte nur Histogramme :))
"Ich meine 3 Histogramme mit unterschiedlichen Werten"

Es ist also nicht realistisch, 3 Histogramme zu erstellen? Verschwende ich mit dem Code nur meine Zeit?
 
Ich habe diese als Grundlage verwendet. Ich kann nicht herausfinden, wie man ein drittes Histogramm hinzufügt. Ich weiß nicht, was ich tun soll. Außer, dass ich auf dem Kopf stehe.
 
alkeon:
Es ist also nicht realistisch, 3 Histogramme zu erstellen? Habe ich mir die ganze Mühe, den Code zu knacken, umsonst gemacht?
Nichts ist umsonst. Die Erfahrung ist wertvoller als das Ergebnis.
In diesem speziellen Fall hängt es von der Anzahl der MACD-Kopien ab, die Sie benötigen. Für eine Kopie werden zwei Puffer (Histogramm und Signalleitung) benötigt, insgesamt also acht Puffer. Das heißt, drei Kopien benötigen sechs Puffer und es bleibt noch etwas übrig.
Wie sieht es mit Ihrer Agonie aus? Wo ist der Code?

P.S.
Ihr Prototyp gefällt mir nicht. Es handelt sich nicht um zwei MACDs, sondern um eine sequenzielle Glättung. Nehmen Sie lieber einen einfachen klassischen MACD und verdreifachen Sie ihn.
Dateien:
macd.mq4  3 kb
 
Das Hauptmobbing liegt bei der Arbeit am Computer. Aber das ist kein Problem, ich habe ihn schon so oft gequält, dass ich auswendig weiß, was ich wiederholen muss.
 
Es ist nur einfacher (wie ich dachte). Vielen Dank für den Hinweis, ich werde mich jetzt an die Arbeit machen.
 

Hier ist, wo ich aufgehört habe. Völlig verwirrt über die Formeln. Was ist los?

Dies ist die aktuellste Version, die keine Fehler aufweist. Aber es ist auch eine Sauerei.

Dateien:
macd_3.mq4  5 kb
 
Im Allgemeinen ist die Richtung richtig, die Fehler werden behoben und es wird funktionieren. Ich werde sie nicht korrigieren, sondern in Worten erklären.

//+------------------------------------------------------------------+
//|                                                  Custom MACD.mq4 |
//|                      Copyright © 2004, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property  copyright "Copyright © 2004, MetaQuotes Software Corp."
#property  link      "http://www.metaquotes.net/"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 6
#property  indicator_color1  Silver
#property  indicator_color2  Red
#property  indicator_color3  Silver
#property  indicator_color4  Red
#property  indicator_color5  Silver
#property  indicator_color6  Red
#property  indicator_width1  2
//---- indicator parameters
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
extern int FastEMA1=12;
extern int SlowEMA1=26;
extern int SignalSMA1=9;
extern int FastEMA2=12;
extern int SlowEMA2=26;
extern int SignalSMA2=9;
//---- indicator buffers
double     MacdBuffer[]; //Проверить соответствие нумерации
double     SignalBuffer[];
double     MacdBuffer1[];
double     SignalBuffer2[];
double     MacdBuffer3[];
double     SignalBuffer4[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- drawing settings
   SetIndexStyle(0,DRAW_HISTOGRAM);// нумерация буферов должна идти подряд от 0 до 6
   SetIndexStyle(1,DRAW_LINE);
   SetIndexDrawBegin(1,SignalSMA);
   IndicatorDigits(Digits+1);
    SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexDrawBegin(1,SignalSMA);
   IndicatorDigits(Digits+1);
    SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexDrawBegin(1,SignalSMA);
   IndicatorDigits(Digits+1);
//---- indicator buffers mapping
   SetIndexBuffer(0,MacdBuffer);
   SetIndexBuffer(1,SignalBuffer);
   SetIndexBuffer(0,MacdBuffer);
   SetIndexBuffer(1,SignalBuffer);
   SetIndexBuffer(0,MacdBuffer);
   SetIndexBuffer(1,SignalBuffer);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("MACD("+FastEMA+","+SlowEMA+","+SignalSMA+","+FastEMA1+","+SlowEMA1+","+SignalSMA1+","+FastEMA2+","+SlowEMA2+","+SignalSMA2+")");
   SetIndexLabel(0,"MACD");
   SetIndexLabel(1,"Signal");
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| Moving Averages Convergence/Divergence                           |
//+------------------------------------------------------------------+
int start()
  {
   // Эта часть пишется только 1 раз
   int limit;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   //-------------------------------  
//---- macd counted in the 1-st buffer
   for(int i=0; i<limit; i++)
      MacdBuffer[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- signal line counted in the 2-nd buffer
   for(i=0; i<limit; i++)
      SignalBuffer[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
      
      
      int limit;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- macd counted in the 1-st buffer
   for(int i=0; i<limit; i++)
      MacdBuffer1[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- signal line counted in the 2-nd buffer
   for(i=0; i<limit; i++)
      SignalBuffer2[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
      
      
      int limit;
   int counted_bars=IndicatorCounted();
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
//---- macd counted in the 1-st buffer
   for(int i=0; i<limit; i++)
      MacdBuffer3[i]=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- signal line counted in the 2-nd buffer
   for(i=0; i<limit; i++)
      SignalBuffer4[i]=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
      
//---- done
   return(0);
  }
//+------------------------------------------------------------------+
 

Guten Tag lieber kubodel, bitte korrigieren Sie den Berater, um ein Geschäft nicht um 00 Minuten eines jeden Zeitrahmens zu eröffnen

und nach 30 Sekunden ab Beginn des Kerzenzeitrahmens

 
abolk:

die Puffernummern bis zu einer ersten Annäherung optimiert - dann liegt es an Ihnen:

Andrej Nikolajewitsch, warum haben Sie es so eilig? Er hätte es selbst herausgefunden, aber er hätte es sich besser gemerkt.
Grund der Beschwerde: