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

 
Igor Makanu:

Ich habe es gesehen, ich bezweifle, dass er in der Lage sein wird, alles selbst rückgängig zu machen, deshalb habe ich vorgeschlagen, die bewährte Methode des Schließens einer ausgewählten Bestellung über OrderSelect() mit ClosePosBySelect() zu verwenden - das kann er tun, zumindest habe ich gesehen, wie er mit dem Konstruktor )))) Codes für sich selbst erstellt hat.

ZZY: Ich habe einen anderen Verdacht, dass er eine Bestellung zweimal abschließt, aber Kims f-Funktion wird im Protokoll ausgedruckt, nicht wie separate Schleifen, die bei der zweiten Bedingung geschlossen werden

:-) Ja.

Artyom Trishkin:

Es ist klar, dass Igors Funktionen alles für den Benutzer tun (und selbst dann schaffen es einige Benutzer, einen Fehler mit ihnen zu machen). Aber dann wird er selbst nicht lernen, wie man etwas tut. Obwohl, natürlich - ihre Wahl.

Meine Herren - ich werde heute Abend hier schreiben...

Es scheint, als ob die Lebensdauer des Kontos abgelaufen ist. Es ist nur nicht der übliche Fehler...

Der Screenshot ist genau das.

P.S. Ich kann programmieren und bin dafür ausgebildet, wenn überhaupt! :-) es ist zu der Frage der Sammlung von Code Konstruktor!!!!!!!!!!!!!!! :-)

PPS Wecken Sie bitte nicht die Bestie in mir, den Trottel... :-)

ICH BIN GUT IM PROGRAMMIEREN UND NICHT NUR DAS, ICH KANN AUCH GUT BIETEN!

 
Roman Shiredchenko:

:-) Ja, das stimmt.

Meine Herren - ich werde heute Abend hier posten...

Es sieht so aus, als ob die Laufzeit des Kontos dort abgelaufen ist. Es ist nur nicht der übliche Fehler...

Der Screenshot ist genau das.

P.S. Ich kann programmieren und bin dafür ausgebildet, wenn überhaupt! :-) es ist zu der Frage der Sammlung von Code Konstruktor!!!!!!!!!!!!!!! :-)

PPS wecken Sie bitte nicht die Bestie in mir, den Trottel... :-)

ICH BIN EINE NIETE IM CODE UND NICHT NUR DAS, AUCH IM BIETEN!

Jede Menge Buchstaben. Was soll das bringen? Es gibt keine Prüfung, um einen Preis zu erhalten. Und der Fehler, Positionen zu Nullkursen zu schließen.

Das ist die Sache mit "fähig und ausgebildet".

 
Artyom Trishkin:

Er hat dort einen Nullpreisabschluss.

Folglich muss ich überwachen, was die MarketInfo-Funktion zurückgegeben hat, aber es gibt keine Kontrolle. Allerdings, wie üblich auf der vier, sind einige Leute verwendet, um zu schreiben - etwas erhalten, was - nicht überprüft haben, aber das Argument gesendet.

YEAH. Das habe ich gesehen.

Es sieht so aus, als ob die Laufzeit des Kontos dort abgelaufen ist...

Als ich versuchte, es manuell zu schließen, erschien auf dem Bildschirm die Meldung "GENERAL ERROR".

Vorhin - es scheint, dass die Funktion funktioniert hat, ich hatte nur keine Zeit, sie zu überprüfen.

Der Name der Funktion ist gut geschrieben. Ja - Schlupf in Brotaufstrichen, na und?

Ich werde die TOTALS heute Abend hier veröffentlichen.

Laden Sie die Geschäfte auf ein neues Konto um.

 
Roman Shiredchenko:

Meine Herren - ich werde heute Abend hier posten...

Es sieht so aus, als ob die Laufzeit des Kontos abgelaufen ist. Es ist nur ein ungewohnter Fehler...

Falsch! Warum soll ich raten, wo der Fehler liegt, wenn Sie ihn ausgedruckt haben? - Oder war die Frage ursprünglich für Telepathen ... nein, Tushkas gedacht? )))


Roman Shiredchenko:

Beim Versuch, das Programm manuell zu schließen, erschien auf dem Bildschirm die Meldung "GENERAL ERROR".

Vielleicht ist der Handelsfluss beschäftigt, vielleicht requoten sie dich, deshalb kann der allgemeine Fehler bedeuten, was immer du willst - der gleiche "Hut" war letztes Jahr bei Insta - die Aufträge wurden genau 5 Minuten pro Stück geschlossen - und der Code, wie er sein sollte, mit allen Kontrollen und Druckern ;)

 
Artyom Trishkin:

Eine Menge Buchstaben. Was soll das bringen? Es gibt keine Kontrolle des Preisnachweises. Und es ist kein Fehler, Positionen zu Nullkursen zu schließen.

Das ist die Sache mit dem "Können und Lernen".

Ja, denn ich schreibe bereits von einem Blatt Papier in Word - gud. sofort. ICH HABE KEINEN ZUGANG ZUM TERMINAL.

Zugang zum Terminal - nein. Werde am Abend in Moskau sein - ich werde hier schreiben.

 
Igor Makanu:

Warum sollte ich den Fehler erraten, wenn Sie ihn in gedruckter Form ausgedruckt haben? - oder war die Frage ursprünglich an Telepathen ... nein, an Tushkas gerichtet? )))

О! Das ist besser - mehr Lächeln... :-)

Ja. Die Ausdrucke wurden nicht über die Registerkarte "EXPERTEN" gedruckt... richtig. Es war einfach zu viel los... ich hatte keine Zeit.

 
Igor Makanu:

Warum sollte ich raten, wo der Fehler liegt, wenn Sie ihn ausgedruckt haben? - oder war die Frage ursprünglich für Telepathen ... nein, Tushkas gedacht? )))


kann ein geschäftiger Fluss sein, Requotes, so dass man raten muss - der allgemeine Fehler könnte alles Mögliche bedeuten - auf der Insta letztes Jahr war derselbe "Hut" da, die Bestellungen brauchten 5 Minuten bis zum Abschluss - und der Code sollte mit allen Schecks und Druckern gedruckt werden ;)

Ok. :-)

PS: Ich werde das Ergebnis heute Abend hier veröffentlichen.

 
 #property  indicator_chart_window
#property  indicator_buffers 1
#property  indicator_plots 1
#include  "Includes//Symbol.mqh"
enum price_types
  {
   Bid,
   Ask
  };
input datetime start_date = D'2019.10.07 00:00:00' ;
input int Chops = 10 ;
input price_types applied_price= 0 ; //Price
int data_filled = 0 ;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string symbol_custom= StringFormat ( "%s_%dsec" , _Symbol ,Chops);
long chart_id = 0 ;
datetime start;
void OnInit ()
  {
//CustomSymbolDelete(symbol_custom);
   start=start_date- 60 ;
   Print ( "Ticks History Deleted : " , CustomTicksDelete (symbol_custom, 0 , LONG_MAX ));
   data_filled = 0 ;

   const SYMBOL SYMB(symbol_custom);
   SYMB.CloneProperties( _Symbol );
   SYMB.On();
   MqlTick ticks_add[];
   int len = CopyTicksRange ( _Symbol ,ticks_add, COPY_TICKS_INFO , ulong (start_date)* 1000 , ulong ( TimeCurrent ())* 1000 );
   Print ( "Ticks: " ,len);
   start = start - (len* 60 );
   Print ( "Start Date : " ,start);
   for ( int i= 0 ; i<len && ! IsStopped (); i++)
     {
       if (data_filled%Chops== 0 )
        {
         start = start+ 60 ;
         start = datetime ( TimeToString (start, TIME_DATE )+ " " + TimeToString (start, TIME_MINUTES )+ ":00" );
        }
       else
        {
         start++;
        }
      ticks_add[i].time = start;
      ticks_add[i].time_msc = long (ticks_add[i].time)* 1000 ;
      data_filled++;
     }
//Print(SYMB.CloneTicks(ticks_add));
   Print ( CustomTicksAdd (symbol_custom,ticks_add));
   chart_id = ChartOpen (symbol_custom, _Period );
   Print ( GetLastError ());
  }
void OnDeinit ( const int r)
  {
   if (chart_id != 0 )
     {
       ChartClose (chart_id);
     }
   return ;
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
   if (rates_total <= 0 )
       return 0 ;
   MqlTick ticks[ 1 ];
   CopyTicks ( _Symbol ,ticks, COPY_TICKS_INFO , ulong ( TimeCurrent ())* 1000 , 1 );
   if (data_filled%Chops== 0 )
     {
      start = start+ 60 ;
      start = datetime ( TimeToString (start, TIME_DATE )+ " " + TimeToString (start, TIME_MINUTES )+ ":00" );
     }
   else
     {
      start++;
     }
   Print (start);
   ticks[ 0 ].time = start;
   ticks[ 0 ].time_msc = long (start)* 1000 ;
   data_filled++;

   Print ( CustomTicksAdd (symbol_custom,ticks));
   Print ( GetLastError ());

   return (rates_total);
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

Warum werden die Häkchen nicht zu meiner benutzerdefinierten Figur hinzugefügt?

Dateien:
Symbol.mqh  7 kb
 
Igor Makanu:

Was ist der Fehler? falscher Bildschirm

Theoretisch sollte es funktionieren, aber ich habe noch keine so ausgeklügelte Schließung gesehen, die den Spread berücksichtigt und ihn als Slippage hinzufügt - imho ist Slippage nicht das Wichtigste, worauf man achten muss, wenn man sich für eine Schließung entscheidet, wichtiger sind Schließungsfehler, dann Requotes, dann ist die Verbindung komplett verloren


Nehmen Sie OrderClose(....) weg und ersetzen Sie es durch Kims ClosePosBySelect()https://www.mql5.com/ru/forum/131859/page2#comment_3359664

verwenden, dann werden Sie deutlich sehen, wo es bricht - entweder in Ihren Bedingungen für das Schließen, oder der Server hat eine Art Trick

Artyom Trishkin:

Der Preis liegt dort bei Null. Wir sollten prüfen, was von der MarketInfo-Funktion zurückgegeben wurde, aber wir haben keine Kontrolle. Allerdings, wie üblich auf die vier einige Leute verwendet werden, um zu schreiben - etwas erhalten, was - nicht überprüfen, aber ein Argument gesendet.

Kolleginnen und Kollegen, ich danke Ihnen von ganzem Herzen für die rechtzeitige Hilfe im Code, kein Scherz, Sie haben mir schon immer geholfen und helfen.

Alle Funktionen auf der letzten Seite zum Abschluss von Geschäften funktionieren einwandfrei. Hier gab es ein Problem mit dem Ende des Demo-Kontos, deshalb gab es keinen Abschluss zu den Bedingungen, einschließlich der Null-Kurse...

Ich habe das Konto aktualisiert und setze die Tests fort.

 
jaffer wilson :

Warum werden die Häkchen nicht zu meiner benutzerdefinierten Figur hinzugefügt?

@ Artyom Trishkin

Können Sie bitte meine Frage beantworten? Ich glaube nicht, dass das jemanden interessiert.

Grund der Beschwerde: