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

 
Artyom Trishkin:
Überprüfen Sie also die Anzahl der offenen Positionen an der M15-Nullkerze. Wenn Sie bereits eine Position haben und diese bei einer M15-Nullkerze offen ist, dann eröffnen Sie keine weitere.
Ich weiß nicht viel über das Programmieren, aber dieses Modul befasst sich mit diesem Thema
b=0;
    for (i=OrdersTotal()-1;i>=0;i--)  
       {
        RefreshRates();
        if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
       }
Aber das Problem ist, dass, wenn der Auftrag durch SL oder TP geschlossen wird, das nächste Signal bei M15 ihn wieder öffnen wird.
 
customer03:
Ich bin nicht sehr gut im Programmieren, aber dieses Modul schafft es
b=0;
       }
Aber das Problem ist, dass, wenn der Auftrag durch SL oder TP geschlossen wird, das nächste Signal auf M15 ihn wieder öffnen wird.

Versuchen Sie, ein Steuerelement für einen neuen Balken auf H1 zu erstellen

b=0;
    for (i=OrdersTotal()-1;i>=0;i--)  
       {
        RefreshRates();
        if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
       }

      
if(  stM1 <= 20 && stM0 > 20  && stH0 > 70  && b==0   && opp != iTime(_Symbol,PERIOD_H1,0)) // покупка
      {
       opp = iTime(_Symbol,PERIOD_H1,0);

    RefreshRates();
    op = Ask;
 
Vitaly Muzichenko:

Versuchen Sie eine neue Balkensteuerung auf H1

b=0;
    for (i=OrdersTotal()-1;i>=0;i--)  
       {
        RefreshRates();
        if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
       }

      
if(  stM1 <= 20 && stM0 > 20  && stH0 > 70  && b==0   && opp != iTime(_Symbol,PERIOD_H1,0)) // покупка
      {
       opp = iTime(_Symbol,PERIOD_H1,0);

    RefreshRates();
    op = Ask;
Ich habe es versucht, aber es hat sich nichts geändert.
 
customer03:
Ich bin nicht sehr gut im Programmieren, aber dieses Modul macht das
b=0;
    for (i=OrdersTotal()-1;i>=0;i--)  
       {
        RefreshRates();
        if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
       }
Aber wenn der Auftrag durch SL oder TP geschlossen wird, wird er durch das nächste Signal auf M15 wieder geöffnet.

Nein, das ist definitiv nicht das, was dieses Stück Code tut.

Sie müssen prüfen, ob der Positionseröffnungsbalken in der M15-Periode nicht gleich Null ist - dann können Sie eine Position eröffnen:

if(iBarShift(Symbol(),PERIOD_M15,OrderOpenTime())!=0)
  {
   // код открытия позиции
  }
 

Hallo! Helfen Sie mir mit den Klassen, was mache ich falsch?

Klasse ASD
{
privat:
// Hier befinden sich Variablen und Funktionen, die nur innerhalb der Klasse verfügbar sind
int c (int m_a,int m_b)
{ int m_d = m_a+m_b;}

öffentlich:
void d (int a,int b )
{
m_a=a+b;
}
// Hier befinden sich Variablen und Funktionen, die außerhalb der Klasse verfügbar sind
};
 
Vikon:

Hallo! Helfen Sie mir mit den Klassen, was mache ich falsch?

Klasse ASD
{
privat:
// Hier befinden sich Variablen und Funktionen, die nur innerhalb der Klasse verfügbar sind
int c (int m_a,int m_b)
{ int m_d = m_a+m_b;}

öffentlich:
void d (int a,int b )
{
m_a=a+b;
}
// Hier befinden sich Variablen und Funktionen, die außerhalb der Klasse verfügbar sind
};
Beginnen Sie mit der Lektüre des Artikels.
 
Artyom Trishkin:
Beginnen Sie mit der Lektüre des Artikels.

Ich lese sie zwar, aber ich verstehe sie nicht richtig.

Ich bekomme Folgendes:

Klasse:

class ASD

  {

private:

   // Здесь располагаются переменные и функции, доступные только внутри класса

   int c(int m_a,int m_b)

     {
      m_a=a+b; m_b=a-b;

      int m_d=m_a+m_b;

      d=m_d;

      return(c(m_a,m_b));
     }

public:

   int               a;

   int               b;

   int               d;

  };

Drehbuch:

#include <ASD.mqh>


ASD ar;
//+------------------------------------------------------------------+

//| Script program start function                                    |

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

void OnStart()

  {

   ar.a=1;

   ar.b=3;

   Alert(ar.d);

  }
//+------------------------------------------------------------------+

Alert gibt Null aus. Was ist los?

 
Vikon:

Ich lese sie zwar, aber ich verstehe sie nicht richtig.

Ich bekomme Folgendes:

Klasse:


Alert gibt Null aus. Was ist los?

Ist es schwierig, den Code über die Schaltfläche SRC einzufügen?

Ich habe den richtigen Code für Sie eingefügt.

 
Vikon:

Ich lese sie zwar, aber ich verstehe sie nicht richtig.

Ich bekomme Folgendes:

Klasse:

class ASD

  {

private:

   // Здесь располагаются переменные и функции, доступные только внутри класса

   int c(int m_a,int m_b)

     {
      m_a=a+b; m_b=a-b;

      int m_d=m_a+m_b;

      d=m_d;

      return(c(m_a,m_b));
     }

public:

   int               a;

   int               b;

   int               d;

  };

Drehbuch:

#include <ASD.mqh>


ASD ar;
//+------------------------------------------------------------------+

//| Script program start function                                    |

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

void OnStart()

  {

   ar.a=1;

   ar.b=3;

   Alert(ar.d);

  }
//+------------------------------------------------------------------+

Alert gibt Null aus. Was ist los?

Nehmen Sie innerhalb der Klasse Drucke auf Werte vor. Und dann schauen Sie im Protokoll nach, was beim Ausführen des Skripts ausgegeben wird ;)
 
Artyom Trishkin:
Nehmen Sie innerhalb der Klasse Drucke für die Werte vor. Und dann sehen Sie im Protokoll nach, was ausgedruckt wird, wenn das Skript läuft ;)
Drucke können nur innerhalb einer Funktion eingefügt werden, aber wie man diese Funktion aufruft, damit der Druck oder die Meldung funktioniert, verstehe ich nicht. Können Sie mir helfen, meinen Code mit drei einfachen Variablen zu reparieren? Ich mache alles wie im Artikel beschrieben, aber der Editor akzeptiert es nicht oder es fehlt etwas, auf jeden Fall eine Wand, deshalb bitte ich um Hilfe. Danke für SKC.
Grund der Beschwerde: