Frage für Kenner - Seite 11

 
Urain >> :

Acronis True Imidge Software zum Erstellen und Wiederherstellen von Back Up . Sichern Sie Ihr Laufwerk C.

Sichern und das System ist wieder so, wie es bei der Erstellung war.

Die Back-up-Zeit beträgt 4 Minuten.

Auch Ihnen vielen Dank.

 
rid >> :

>> Auch Ihnen vielen Dank.

Liebe rid, könnten Sie mir bei einer Frage helfen? https://forum.mql4.com/ru/15972/page145

 
MQLBankir >> :
Guten Tag!
Ich habe erst im ersten Monat EAs geschrieben.
Die einfachen habe ich verstanden: Sie bekommen ein Signal und eröffnen eine Position. Was ist, wenn ich mehrere Signale benötige?
Zum Beispiel.
Das 1. Signal eines Indikators
Das 2. Signal kommt später, aber die 1. Bedingung ist bereits FALSCH. Ich verstehe, dass das Programm bei jedem Tick ausgeführt wird, aber ich muss daran denken, dass die erste Bedingung (Signal) wahr ist und noch nicht aufgehoben wurde.
Ich dachte, ich könnte sie in eine Datei schreiben. Aber ich verstehe es noch nicht wirklich.
Vielleicht gibt es einen anderen Ausweg, eine Funktion oder etwas anderes?
Können Sie mir einen Tipp geben?

Ich bin nicht wirklich gut darin.

Aber ich nehme an, wenn Sie nach dem 1. Signal die Fahne "hängen", lassen Sie sie hängen.

Auch wenn sich das 1. Signal bereits erschöpft hat!

Dann wird das 2. Signal ein Signal zum Öffnen geben, ohne dass es Probleme gibt.

Wenn ich die Frage richtig verstehe...

 
Infinity >> :

Liebe rid, könnten Sie mir bei einer Frage helfen? https://forum.mql4.com/ru/15972/page145

Ist das der Punkt, an dem Sie nach dem Abschluss fragen? Siehe hier.

'Positionen schließen. Auf ein Signal von einem Indikator'.

//------------------------

Dort habe ich mich seinerzeit mit dem Thema beschäftigt.

Aber in dem Code, den Sie gepostet haben, ist es schwer zu verstehen, und ich sehe überhaupt keinen Abschnitt zum Schließen.

Hier ist ein Beispiel für einen Abschlussblock für Sie:

//********* Закрытие позиций ****************************************
if ( AutoClose) { //если выключатель закрытия включен 
//----переменные для закрытия позиций ----
double Stochast_0 =iStochastic(NULL,0, Stochastic_period,3,3,MODE_SMA,0,MODE_MAIN,0);
double Stochast_1 =iStochastic(NULL,0, Stochastic_period,3,3,MODE_SMA,0,MODE_MAIN,1);
//----------------------------------------------------------------------
  for (int v=0; v<OrdersTotal(); v++)                             {       
      if (OrderSelect( v, SELECT_BY_POS, MODE_TRADES))               {           
        if (OrderSymbol()==Symbol()&& OrderMagicNumber()== MagicNum)   { 
//-----------------------------------------------------                  
if (OrderType() == OP_BUY) { 
      if( Stochast_1>75 && Stochast_0<75)     {
           OrderClose(OrderTicket(),OrderLots(),Bid,3,Green); // закрываем позицию
                 //return(0); // выходим
                }       
     }  
 //--------------------------------------------------------
if (OrderType() == OP_SELL) { 
      if( Stochast_1<25 && Stochast_0>25)    {
                 OrderClose(OrderTicket(),OrderLots(),Ask,3,Green); // закрываем позицию
                // return(0); // выходим
                }       
     }  
 //-------------------------------------------------------                       
    }  // Symbol()  
  } // select
 } //total
} //Close_
 
rid >> :

Ich bin nicht wirklich ein Experte auf diesem Gebiet.

Es wird jedoch davon ausgegangen, dass man die Fahne nach dem ersten Signal "hängen" lässt.

Auch wenn das 1. Signal bereits erschöpft ist!

Dann wird das 2. Signal ein Signal zum Öffnen geben, ohne dass es Probleme gibt.

Wenn ich die Frage richtig verstehe...



wenn das zweite Signal nach dem ersten kommt, ..... und nur so, aber... vielleicht durch die Überprüfung der 2. Signal zu öffnen, die 1. Signal wird bereits von falsch zu wahr, dann wird es notwendig sein, um die Berechnung der 2.

 
rid >> :

Ist das der Punkt, an dem Sie nach dem Abschluss fragen? Siehe hier.

'Positionen schließen. Auf ein Signal von einem Indikator'.

//------------------------

Dort habe ich mich seinerzeit mit diesem Thema beschäftigt.

Aber in dem Code, den Sie gepostet haben, ist es schwer zu verstehen, und ich sehe den Abschnitt über das Schließen überhaupt nicht.

Nun, sie ist nicht da, .... Ich kann die Nummer eines offenen Auftrags nicht abrufen, um den Auftrag zu schließen, ich erhalte immer wieder eine Fehlermeldung... auch wenn die Nummer über andere Funktionen gefunden wird.

 

Siehe oben. Ich habe dort ein Beispiel hinzugefügt.

Nur anstelle von MagicNum fügen Sie Ihr mn ein

Bei den externen Parametern ist hinzuzufügen

extern bool AutoClose = true;

 
rid >> :

Nur anstelle von MagicNum fügen Sie Ihr mn ein

Fügen Sie bei den externen Parametern Folgendes hinzu

extern bool AutoClose = true;

>> Ja, ja, danke, ich hab's verstanden.)

 
Infinity >> :

Nun, sie ist nicht da, .... Ich kann die Nummer eines offenen Auftrags nicht abrufen, um ihn zu schließen, es wird immer wieder ein Fehler angezeigt... selbst wenn die Nummer über andere Funktionen gefunden wird.

Versuchen Sie, den Auftrag nach Position auszuwählen: Die Funktion gibt ein Ticket t Position des Auftrags in der Liste der Handelsaufträge.

int Select_POS(int t)
{//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if(OrderSelect( t, SELECT_BY_POS, MODE_TRADES)) TIC[ t]=OrderTicket();
else TIC[ t]=-1;
return( TIC[ t]);
}//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
t = OrdersTotal() und verringern sich mit jeder bearbeiteten Bestellung.
 
Urain >> :

Versuchen Sie, einen Auftrag nach Position auszuwählen: Die Funktion gibt die Ticket t-Position des Auftrags in der Liste der Handelsaufträge an.

t = OrdersTotal() und verringern sich mit jeder bearbeiteten Bestellung.


Danke für die Hilfe! Das würde wahrscheinlich auch funktionieren!!! Ich werde es mir auf jeden Fall ansehen!

Der abschließende Code funktioniert.... Jetzt funktioniert alles, das Problem lag wirklich bei der Definition des offenen Auftrags. Nochmals vielen Dank an alle!