Fehler, Irrtümer, Fragen - Seite 2224

 
fxsaber:

Die aktualisierte Änderungszeit hat keinen Einfluss auf das Ergebnis. EA

Ja, ich danke Ihnen. Ich habe das Problem gefunden.

Es wird in naher Zukunft eine Lösung geben. Die aus dem gemeinsamen Ordner verwendeten Dateien können jedoch weiterhin nicht kontrolliert werden. Nur die in #property tester_file angegebenen Dateien

 

Als ich das Prüfgerät nach einem Durchlauf im Visualisierungsmodus wieder einschalte, stelle ich fest, dass ich die falschen Einstellungen vorgenommen habe, und das Prüfgerät bleibt für einige Minuten hängen.

2018.07.11 17:03:05.992 Core 8  disconnected
2018.07.11 17:03:05.992 Core 8  connection closed
2018.07.11 17:03:09.241 Core 8  connecting to 127.0.0.1:3000
2018.07.11 17:03:18.308 Tester  stopped by user
2018.07.11 17:03:19.241 Core 8  tester agent authorization error
 
//Определение экстремума
for(int i=NBars;i<=NumBars;i++)
     {
      xMinL=ArrayMinimum(MinBuffer,0,i);
      xMinLD=ArrayMinimum(MinBuffer,0,i+NBars);
      if((MinBuffer[xMinL]<=MinBuffer[xMinLD])&&(xMinL>=NBars))
        {
         Minimum=MinBuffer[xMinL];
         break;}}

//Проверка если ордера с такой же ценой не существует         
   for (int r=0; r<=OrdersTotal(); r++)
   {if (OrderSelect(OrderGetTicket(r)))
    {if (StringToDouble(OrderGetString(ORDER_COMMENT))==NormalizeDouble(Minimum,_Digits))    
       {x2=1;
        break;}
     else x2=0;}}

//Проверка если Позиции с такой же ценой не существует     
   for (int l=0; l<=PositionsTotal(); l++)
   {if (PositionSelectByTicket(PositionGetTicket(l)))
    {if (StringToDouble(PositionGetString(POSITION_COMMENT))==NormalizeDouble(Minimum,_Digits))     
       {y2=1;
        break;}
     else y2=0;}}

//Если проверка отрицательная, открываем ордер        
   if ((x2==0)&&(y2==0))
   m_trade.SellStop(Volume,NormalizeDouble(Minimum,_Digits),_Symbol,NormalizeDouble(Minimum+(SL_ATR*ATR2),_Digits),NormalizeDouble(Minimum-(TP_ATR*ATR2),_Digits),ORDER_TIME_GTC,0,DoubleToString(Minimum,_Digits));
Hallo liebe Forumsnutzer. Dies ist ein Auszug aus dem Code, der Extrema erkennt und schwebende Aufträge auf ihnen platziert. Es scheint zu funktionieren, aber manchmal fängt es an, an einem Ende endlose Pausen zu setzen, als ob es das Stoppkriterium nicht sieht. Ich habe mir bereits den Kopf zerbrochen.
 
Dmitri Custurov:
Hallo liebe Forumsnutzer. Dies ist ein Auszug aus dem Code, der Extrema identifiziert und schwebende Aufträge auf ihnen platziert. Es scheint zu funktionieren, aber manchmal fängt es an, an einem Ende endlose Pausen zu setzen, als ob es das Stoppkriterium nicht sieht. Ich habe mir bereits den Kopf zerbrochen.

Ist es also richtig, zu vergleichen?

if (StringToDouble(PositionGetString(POSITION_COMMENT))==NormalizeDouble(Minimum,_Digits)){.....}
 

Im Indikator

Druck im visuellen Strategietester-Modus, da mein Gehirn bereits übergekocht ist - konnte den Fehler in der Logik nicht finden:

Print(iHigh(Symbol(),PERIOD_CURRENT,i+1), "  ",sqh_buffer[i+1]);

Startdatum 01.01.2018 Protokoll

2018.07.11 17:19:07.770 2018.01.01 00:00:00   58148.0  0.0
2018.07.11 17:19:07.770 2018.01.01 00:00:00   58149.0  0.0
2018.07.11 17:19:07.770 2018.01.01 00:00:00   58146.0  0.0
2018.07.11 17:19:07.770 2018.01.01 00:00:00   58140.0  0.0
2018.07.11 17:19:07.770 2018.01.01 00:00:00   58139.0  0.0
2018.07.11 17:19:07.863 2018.01.03 10:00:00   58139.0  58391.79995461365
2018.07.11 17:19:07.863 2018.01.03 10:00:00   58135.0  58391.71051866656
2018.07.11 17:19:07.906 2018.01.03 10:00:20   58135.0  58463.08874123808

Natürlich gibt es keine wirklichen Angebote zu diesem Datum, die Leute haben Urlaub, was sind dann diese magischen Zahlen, und überhaupt, wie bekomme ich Informationen für das erste Date????

 

Frage:

Woran erkenne ich, dass die Zeitschaltuhr eingeschaltet ist, und wie häufig ist sie eingeschaltet?

Lese ich die Hilfe nicht richtig oder ist das nicht möglich?

 
Nikolai Semko:

Frage:

Woran erkenne ich, dass die Zeitschaltuhr eingeschaltet ist, und wie häufig ist sie eingeschaltet?

Oder lese ich die Hilfe nicht richtig, oder ist es nicht möglich?

Nach dem Schweigen zu urteilen, ist eine solche Möglichkeit nicht gegeben. :((

Aber wie kommt das - es ist eine sehr einfache und nützliche Funktion!

Ich erstelle zum Beispiel eine Klasse, die Timer verwendet. Und innerhalb der Klasse kann ich den Timer ein- und ausschalten und seine Periodizität ändern. Für eine konfliktfreie Arbeit mit dem Rest des Programms muss die Klasse jedoch wissen, ob der Timer ein- oder ausgeschaltet ist und welche Periodizität er hat.

 
Nikolai Semko:

Nach dem Schweigen zu urteilen, gibt es diese Möglichkeit wahrscheinlich gar nicht. :((

Aber wie kann das sein - es ist doch eine sehr einfache und nützliche Funktion!

Ich erstelle zum Beispiel eine Klasse, die einen Timer verwendet. Und innerhalb der Klasse kann ich den Timer ein- und ausschalten und seine Periodizität ändern. Die Klasse muss jedoch wissen, ob der Timer ein- oder ausgeschaltet ist und welche Periodizität er hat, um eine konfliktfreie Zusammenarbeit mit dem Rest des Programms zu gewährleisten.

Sie sind also willkommen, oder besser gesagt, die Klasse.

 
Sergey Dzyublik:

Flagge auf dem Spielplatz, oder besser gesagt im Klassenzimmer.

Es wird nicht helfen. Vor allem, wenn der Timer bereits läuft, bevor er in der Klasse aktiviert wird, z. B. in Abständen von einigen Stunden oder Tagen. Dann wird eine solche Klasse die gesamte Logik des Programms ruinieren.

 
Sergey Dzyublik:

Ist der Vergleich also korrekt?

Ich habe sowohl Feng Shui als auch das hier ausprobiert - das Ergebnis ist das gleiche. Die Sache ist die, dass alles 99 % der Zeit funktioniert, und ich brauche 100 %. Im Moment geht es mir vor allem darum, die Logik richtig hinzubekommen, und ich kann mich später um die Schönheit kümmern.

Ich habe nur vergessen, hinzuzufügen, dass der oben erwähnte Fehler im Testprogramm auftritt. Wenn ich es in einem Diagramm öffne, sehe ich es nicht, oder ich muss nur auf das gewünschte Extremum warten, bei dem dieser Fehler wieder auftritt.