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

 
Roger:

Ich glaube es nicht, dieser EA kann weder in der Realität noch in der Testversion funktionieren.


Und warum? Liegt ein Irrtum vor? Erklären Sie das.

Dies ist nur ein Teil des Codes, der für die Umwandlung von horizontalen Linien in Reihenfolgen verantwortlich ist.

 
Bitte um Hilfe. Wie kann man einen EA dazu bringen, in einem Abstand von 20-30 Bars zu Null zu optimieren. Ganz am Ende der Karte......
 

Hilfe, um den Indikator zu verstehen, kann ich nicht verstehen, warum während der Signale nicht in Echtzeit angezeigt werden, sondern nur, wenn Sie den Zeitrahmen zu wechseln, in der Visualisierung Tester alles gerendert wird, wie es sein sollte.

vor der Aktualisierung http://charts.mql5.com/2/379/eurusd-m-m1-roboforex.png

nach http://charts.mql5.com/2/379/eurusd-m-m1-roboforex-2.png

//+------------------------------------------------------------------+
//|                                                           t27_zz |
//|                                                          tommy27 |
//|                                        SKYPE:       t.o.m.m.y.27 |
//|                                        MAIL: tommy27fx@gmail.com |
//+------------------------------------------------------------------+
#property copyright "tommy27"
#property link      "tommy27fx@gmail.com"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 DodgerBlue
#property indicator_color2 FireBrick

extern int DeepBars = 5000;
double buf_1[];
double buf_2[];
//+------------------------------------------------------------------+
//| Функция инициализации, запускается один раз                      |
//+------------------------------------------------------------------+
int init() 
  {
   SetIndexBuffer(0,buf_1);
   SetIndexBuffer(1,buf_2);

   SetIndexStyle (0,DRAW_ARROW, STYLE_SOLID, 2);
   SetIndexStyle (1,DRAW_ARROW, STYLE_SOLID, 2);
   SetIndexArrow (0,108);
   SetIndexArrow (1,108);

   SetIndexEmptyValue(0,0.0);
   SetIndexEmptyValue(1,0.0);
   IndicatorShortName("t27_zz");
   return(0);
  }
//+------------------------------------------------------------------+
//| Основная Функция, запускается на каждом тике                     |
//+------------------------------------------------------------------+
int start() 
  {
   if (Bars <= 100) return(0);
   int ExtCountedBars = IndicatorCounted();
   if (ExtCountedBars < 0) return(-1);
   if (ExtCountedBars > 0) ExtCountedBars--;
   for (int i=DeepBars-ExtCountedBars-1; i>=0; i--)
     { 
      if (Bar1(i)==1)   buf_1[i+1] = Low[i+1]-5*Point;//UP
      if (Bar1(i)==2)   buf_2[i+1] = High[i+1]+5*Point;//DOWN
     }
   return(0);
  }
//---- end
//------------------------------------------------------------------------
int Bar1(int i)
{
 if(Low[i+1] <= Low[i+2] && Low[i+1] <= Low[i])//UP
  return(1);
 if(High[i+1] >= High[i+2] && High[i+1] >= High[i])//DOWN
  return(2);
 return(0);
} 
 
tommy27:

Hilfe, um den Indikator zu verstehen, kann ich nicht verstehen, warum während der Signale nicht in Echtzeit angezeigt werden, sondern nur, wenn Sie den Zeitrahmen zu wechseln, in der Visualisierung Tester, alle gerendert, wie es sollte.



Ich muss mit der DeepBars-Variable umgehen.

 
splxgf:


Umgang mit der Variablen DeerBars.


Herzlichen Dank! Entfernt DeerBars und es funktionierte alles, können Sie mir auch sagen, wie man die angezeigte Tiefe richtig dann, was zu ersetzen DeerBars mit jetzt einstellen ?
 

Warum soll sie ersetzt werden?

if (ExtCountedBars > 0) ExtCountedBars--;
int recalc=Bars-ExtCountedBars;//добавить
for (int i=recalc; i>=0; i--)//поправить
 
splxgf:

Warum soll sie ersetzt werden?


Ja, ich habe es so korrigiert:

if (ExtCountedBars > 0) ExtCountedBars--;
   for (int i=Bars-ExtCountedBars-1; i>=0; i--)

und mit DeepBars wollte ich die Anzahl der Balken so einstellen, dass nicht die ganze Geschichte angezeigt wird, sondern nur die letzten DeepBars - das kann ich aus irgendeinem Grund nicht tun.

 
<br / translate="no">

Und mit DeepBars wollte ich die Anzahl der Balken festlegen, damit nicht die gesamte Historie, sondern nur die letzten DeepBars angezeigt werden - aus irgendeinem Grund geht das nicht.


if (ExtCountedBars > 0) ExtCountedBars--;
int recalc=Bars-ExtCountedBars;
if (recalc>DeepBars) recalc=DeepBars;
 
Vielen Dank für Ihre Hilfe, Sie haben mir sehr geholfen.
 
Dozol:


Und warum? Liegt ein Irrtum vor? Erklären Sie das.

Dies ist nur der Teil des Codes, der für die Umwandlung von horizontalen Linien in Aufträge zuständig ist.

Nach Ihrem Code wird die Linie nach dem ersten Tick gelöscht, d.h. es gibt keine Preisverfolgungsfunktion und es funktioniert wie ein Skript - Sie zeichnen manuell eine horizontale Linie, eine Order wird eröffnet oder nicht, aber die Linie wird sofort gelöscht. Sellstop-Bestellungen mit diesem Code werden nie geöffnet.