Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 553

 
splxgf:
Das ist kein Fehler, sondern eine Funktion. Sie können hier gehen https://www.mql5.com/ru/articles/1388

YOOOOOOO Dankeschön! Oh, Mann. Mit einem Klick war das Problem gelöst.
 
AlexeyVik:

In der Mathematik ist 0 gleich 0, und in Ihrem Fall ist 0 ein Preis, mit dem alles begann.

Wenn der Eröffnungskurs 1,3926 beträgt, wie splxgf vorschlug, dann liegt 0 bei 1,3926/123*100=1,1322 oder 1,3926/1,23=1,1322.

1% dieser Kursbewegung wäre (1,3926-1,1322)/100=0,0026

Außerdem hoffe ich, dass Sie es selbst herausfinden werden.


Meine Damen und Herren, das ist Unsinn. Fibo ist auf 2 Punkten aufgebaut, lesen Sie, was ich früher geschrieben habe. Aus einem Punkt 1,3926 kann man nichts berechnen. Schauen Sie sich an, als der EUR bei 1,13 stand :)

Der Referenzpreis ist die 0-Ebene des Fibo (Minimum/Maximum von 4H, Tag, Woche, Monat, Jahr...) und es ist ein ganz bestimmter Preis und nicht eine mathematische 0. Null und 100% Fibo sind Minimum und Maximum des Preises für den Zeitraum. Dann ist auch 23% als Einstiegspunkt von 0 Niveau verständlich und der TP bei 38% usw.

 
splxgf:


In diesem Fall ist es eine andere Geschichte und kann auf der Ebene der elementaren Mathematik mit Prozentsätzen gelöst werden.

PercentStep=(OrderTakeProfit-OrderOpenPrice)/(138-23) - Dies wäre 1% in Papageien. Ehrlich gesagt, müssen Sie manchmal die Operanden vertauschen, je nach Art der Reihenfolge oder des Moduls.

Dann

StoplossLevel = OrderOpenPrice + PercentStep*(51-23) //LevelWLoss in Kims Worten, aber dies sollte für jeden Auftrag berechnet werden

MoveStoplossLevel = OrderOpenPrice + PercentStep*(76-23) //LevelProfit - siehe oben.


Vielen Dank für Ihre Antwort und die Formel. Ich werde es ausprobieren.
 

Ich kann den Wert des vierten Puffers nicht herausfinden. Was mache ich falsch?

#property indicator_separate_window
#property indicator_buffers 4
#property  indicator_color1 Lime
#property  indicator_color2 Yellow
#property  indicator_color3 Red
#property  indicator_color4 Aqua
//--- input parameters
extern int       Period_MA_1=14;
extern int       p2          =7;
//--- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,ExtMapBuffer3);
   SetIndexStyle(3,DRAW_LINE);
   SetIndexBuffer(3,ExtMapBuffer4);
   IndicatorDigits(Digits+1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted(),                      
    limit;
    double MA_1_t,MA_2_t;
    if(counted_bars>0)
    counted_bars--;
    limit=Bars-counted_bars;
    
   for(int i=0;i<limit;i++)
   {
   ExtMapBuffer1[i]=Close[i]-Close[i+Period_MA_1];
   ExtMapBuffer2[i]=MathAbs(ExtMapBuffer1[i]);
   ExtMapBuffer3[i]=ExtMapBuffer1[i]/ExtMapBuffer2[i];
   ExtMapBuffer4[i]=iMAOnArray(ExtMapBuffer3, 0, p2, 0, MODE_SMA,i);
   }
   
   return(0);
  }
 
Forexman77:

Ich kann den Wert des vierten Puffers nicht herausfinden. Was mache ich falsch?


Ich hatte mehrere Schleifen in meinem Beispiel. Sind Sie die unnötigen losgeworden?
 

Hallo.

Können Sie mir bitte sagen, warum ich im EA-Einstellungsfenster das Kontrollkästchen "DLL-Aufrufe zulassen" nicht aktivieren kann?

In den Terminaleinstellungen ist sie ebenfalls aktiviert. Bei anderen EAs ist es in Ordnung.

Ich versuche gerade, diesen EA selbst zu schreiben. Er verwendet den iCustom-Indikator und iCustom muss auf die DLL zugreifen.

Vielen Dank für die Hilfe.

 
Vinin:

Ich hatte mehrere Schleifen in meinem Beispiel. Haben Sie sich von unnötigen Dingen getrennt?
Ich habe verschiedene Möglichkeiten ausprobiert, aber wenn ich das tue:
#property indicator_separate_window
#property indicator_buffers 4
#property  indicator_color1 Lime
#property  indicator_color2 Yellow
#property  indicator_color3 Red
#property  indicator_color4 Aqua

//--- input parameters
extern int       Period_MA_1=14;
extern int       p2          =7;
extern int       p3          =5;
extern int       p4          =3;
//--- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_NONE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,ExtMapBuffer3);
   SetIndexStyle(3,DRAW_LINE);
   SetIndexBuffer(3,ExtMapBuffer4);
   IndicatorDigits(Digits+1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted(),
   i,limit1,limit2,limit3,limit4;
   limit1=Bars-counted_bars-1;
   limit2=limit1;
   limit3=limit2;
   limit4=limit3;
   if(limit1>0) 
     {
      limit1=Bars-Period_MA_1-1;
      limit2=limit1-p2;
      limit3=limit2-p3;
      limit4=limit3-p4;
     }

   for(i=limit1;i>=0;i--) ExtMapBuffer1[i]=Close[i]-Close[i+Period_MA_1];
   for(i=limit2;i>=0;i--) ExtMapBuffer2[i]=MathAbs(ExtMapBuffer1[i]);
   for(i=limit3;i>=0;i--) ExtMapBuffer3[i]=ExtMapBuffer1[i]/ExtMapBuffer2[i];
   for(i=limit4;i>=0;i--) ExtMapBuffer4[i]=iMAOnArray(ExtMapBuffer3, 0, p2, 0, MODE_SMA,i);

   return(0);
  }

Der dritte und vierte Puffer zählen nicht. Ich weiß nicht, wo der Fehler liegt. Meine Kenntnisse auf diesem Gebiet reichen nicht aus.

Es wäre schön, wenn man nicht alles in verschiedene Puffer packen müsste, sondern den Hauptteil so berechnen könnte:

 ExtMapBuffer1[i]=(Close[i]-Close[i+Period_MA_1])/MathAbs(Close[i]-Close[i+Period_MA_1]);
aber in diesem Fall gibt es überhaupt nichts.
 
Forexman77:
Ich habe verschiedene Möglichkeiten ausprobiert, aber wenn ich das tue:

Der dritte und vierte Puffer zählen nicht. Ich weiß nicht, wo der Fehler liegt. Meine Kenntnisse auf diesem Gebiet reichen nicht aus.

Es wäre gut, nicht alles in verschiedene Puffer zu gießen, sondern den Hauptteil so zu berechnen:

aber in diesem Fall gibt es gar nichts.


Nach Ihrer Formel wird das Ergebnis 1 oder -1 sein. Stimmt das oder haben Sie ein anderes Ergebnis erwartet?
 
Vinin:

Nach Ihrer Formel wird das Ergebnis 1 oder -1 sein. Stimmt das oder erwarten Sie ein anderes Ergebnis?

Ja, der dritte Puffer wird 1 oder -1 sein. Und der vierte Puffer berechnet den gleitenden Durchschnitt dieser Parameter.

Im dritten Puffer wird der Wert, der dividiert, mit 100 multipliziert, aber das ist kein Problem.

 
Forexman77:

Ja, der dritte Puffer wird 1 oder -1 sein. Und der vierte Puffer berechnet den gleitenden Durchschnitt dieser Parameter.

Im dritten Puffer wird der Wert, der dividiert, mit 100 multipliziert, aber das ist kein Problem.


//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 2
#property  indicator_color1 Lime
#property  indicator_color2 Yellow

//--- input parameters
extern int       Period_MA_1=14;
extern int       p2=7;
//--- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtMapBuffer2);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int counted_bars=IndicatorCounted(),
   i,limit1,limit2;
   limit1=Bars-counted_bars-1;
   limit2=limit1;
   if(limit1>0)
     {
      limit1=Bars-Period_MA_1-1;
      limit2=limit1-p2;
     }

   for(i=limit1;i>=0;i--) 
     {
      ExtMapBuffer1[i]=1;
      if(Close[i]<Close[i+Period_MA_1])
         ExtMapBuffer1[i]=-1;
     }
   for(i=limit2;i>=0;i--) ExtMapBuffer2[i]=iMAOnArray(ExtMapBuffer1,0,p2,0,MODE_SMA,i);

   return(0);
  }
//+------------------------------------------------------------------+
Grund der Beschwerde: