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

 
Artyom Trishkin:

Versuchen Sie es.

Versuchen Sie es. Der erste Eindruck ist, dass 3 oder 4 Werkzeuge geladen sind, während 10 benötigt werden.
Die Geschichten werden für alle hochgeladen.
 
Valeriy Yastremskiy:
Versuchen Sie es. Der erste Eindruck ist, dass 3 oder 4 Werkzeuge geladen werden, aber ich brauche 10
Die Geschichten sind auf allen von ihnen geladen.

Ich weiß es nicht - es ist lange her, dass ich ein Quad geöffnet habe.

 

Ich habe mt4 geöffnet, um den Algorithmus schnell zu überprüfen.

Es ist sehr seltsam, dass es in der Testversion korrekt funktioniert, aber nach der Installation auf einem echten Konto kehrt es die Trades um. Der Code ist einfach, nur 2 Indikatorpuffer


 
MakarFX:
Herzlichen Dank für Ihre Hilfe. Ich habe diesen Teil des Codes umgestaltet und mit dem aktivierten Preisfilter werden die schwebenden Aufträge jetzt ohne Fehler gesetzt. Es werden nur die Signale übersprungen, bei denen der Auftrag noch in der Schwebe ist. Wie beabsichtigt. Nochmals herzlichen Dank))) Ich habe nur eine Frage - es gibt einige Stellen, an denen es ein Signal gab, aber das ausstehende Signal war nicht gesetzt und es gab keine Fehler. Es gab also keine geeigneten Bedingungen an diesem Ort und das ist in Ordnung, Sie können damit leben?))) Und es gab auch keine ausstehenden Aufträge an diesem Ort...
 
DanilaMactep:
Herzlichen Dank für Ihre Hilfe. Ich habe diesen Teil des Codes umgestaltet und mit dem aktivierten Preisfilter werden die schwebenden Aufträge jetzt ohne Fehler gesetzt. Es werden nur die Signale übersprungen, bei denen sich der schwebende Auftrag noch in der Schwebe befindet. Wie beabsichtigt. Nochmals herzlichen Dank))) Ich habe nur eine Frage - es gibt einige Stellen, an denen es ein Signal gab, aber das ausstehende Signal war nicht gesetzt und es gab keine Fehler. Es gab also keine geeigneten Bedingungen an diesem Ort und es ist okay, Sie können ohne Sorgen leben?)))) Und es gab auch keine ausstehenden Aufträge an diesem Ort...
Wenn es keine geeigneten Bedingungen gab und es normal ist, kann man damit leben.
 
Artyom Trishkin:

Dann weiß ich nicht - es ist schon lange her, dass ich ein Quad geöffnet habe.

Falsch, die Daten der anderen Instrumente, die das Prüfgerät aufnimmt, sind aktuell. Nur von hier aus (von anderen Instrumenten) können Sie die Differenz zur aktuellen Zeit berechnen. Wenn sie nahe an der aktuellen Zeit liegt und die Historie geladen ist, können Sie eine Verschiebung zur Testerzeit vornehmen. Es ist eine Krücke).

 

Frage: Ein Panel wird mit einer Größe von 370 erstellt. Wie kann ich die Größe auf 200 ändern, wenn ich das Diagramm komprimiere?

#property strict

#property indicator_chart_window
#property indicator_buffers 0
#property indicator_plots   0

#include "PanelDialog.mqh"
//+------------------------------------------------------------------+
//| Global Variables                                                 |
//+------------------------------------------------------------------+
CPanelDialog ExtDialog;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit(void)
  {
//--- create application dialog
   if(!ExtDialog.Create(0,"Spread",0,12,12,250,370))
     return(INIT_FAILED);
//--- run application
   if(!ExtDialog.Run())
     return(INIT_FAILED);
//--- ok
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- destroy application dialog
   ExtDialog.Destroy(reason);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
//---
 
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   ExtDialog.ChartEvent(id,lparam,dparam,sparam);
  }
//+------------------------------------------------------------------+
 
Vitaly Muzichenko:

Frage: Ein Panel wird mit einer Größe von 370 erstellt. Wie kann ich die Größe auf 200 ändern, wenn ich das Diagramm komprimiere?

Und wie definieren Sie die Grafikkomprimierung?
 
MakarFX:
Und wie definieren Sie die Grafikkomprimierung?
   if(id==CHARTEVENT_CHART_CHANGE) {
      // ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS); // Высота графика
   }
 
Vitaly Muzichenko:

Wenn Kompression in der Höhe

   int ChartHigh=(ChartGetDouble(0,CHART_PRICE_MAX,0)-ChartGetDouble(0,CHART_PRICE_MIN,0))/Point; //высота графика в пунктах
   if(ChartHigh>500)  
      ExtDialog.Create(0,"Spread",0,12,12,250,200)
   else
      ExtDialog.Create(0,"Spread",0,12,12,250,370)

wenn die Kompression über die Breite

   if(ChartGetInteger(0,CHART_SCALE,0)>2) 
      ExtDialog.Create(0,"Spread",0,12,12,250,200)
   else
      ExtDialog.Create(0,"Spread",0,12,12,250,370)
in der Breite können Sie auch CHART_VISIBLE_BARS