[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 149

 

Hier habe ich kürzlich eine analoge Frage beantwortet.

https://www.mql5.com/ru/forum/109048/page11

-nachschlagen.

In Ihrem Fall könnten Sie wahrscheinlich so vorgehen:

if ( AutoClose) { //если выключатель закрытия включен 

//----------------------------------------------------------------------
  for (int v=0; v<OrdersTotal(); v++)                             {       
      if (OrderSelect( v, SELECT_BY_POS, MODE_TRADES))               {           
        if (OrderSymbol()==Symbol()&& OrderMagicNumber()== MagicNum)   { 
//-----------------------------------------------------                  
if (OrderType() == OP_BUY) { 
      
           OrderClose(OrderTicket(),OrderLots(),Bid,3,Green); // закрываем позицию
                 //return(0); // выходим
                }       
      
 //--------------------------------------------------------
if (OrderType() == OP_SELL) { 
     
                 OrderClose(OrderTicket(),OrderLots(),Ask,3,Green); // закрываем позицию
                // return(0); // выходим
                }       
   
 //-------------------------------------------------------                       
    }  // Symbol()  
  } // select
 } //total
} //Close_
 

Meine Herren, bitte erklären Sie den Unterschied zwischen

NormalizeDouble(High[iHighest(NULL,0,MODE_HIGH,10,0)],4)
von
NormalizeDouble(High[iHighest(NULL,0,MODE_HIGH,iBarShift(NULL,0,Time[1],FALSE),1)] + 10 * Point,4)

Ich verstehe nicht, was iBarShift ist und was es bewirkt

 
rid >> :

Hier habe ich kürzlich eine analoge Frage beantwortet.

Eine Frage für Kenner".

-Siehe dies.

In Ihrem Fall könnten Sie wahrscheinlich so vorgehen:


Danke, rid!

Bei mir hat es funktioniert, ich habe es so gemacht.

   if (( Close_P)&& TimeCurrent()>=StrToTime( CloseHour+":00")){  // даже по времени сделал
   int slippage=3;
   for (int i=OrdersTotal()-1; i>=0; i--)
   {
    if (!OrderSelect( i, SELECT_BY_POS, MODE_TRADES)) break;
    if (OrderType()==OP_BUY ) OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID), slippage);
    if (OrderType()==OP_SELL) OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK), slippage);
    }
    }


 
Dimoncheg >> :

Meine Herren, könnten Sie bitte den Unterschied erklären zwischen

von

Ich verstehe nicht, was iBarShift ist und was es bewirkt

int iBarShift( string symbol, int timeframe, datetime time, bool exact=false)
Suche nach einem Takt nach Zeit. Die Funktion gibt den Offset des Taktes zurück, zu dem die angegebene Zeit gehört. Gibt es für die angegebene Zeit keinen Balken ("Loch" in der Historie), gibt die Funktion, je nach genauem Parameter, -1 oder den Offset des nächstgelegenen Balkens zurück.
Parameter:
Symbol - Symbolname des Instruments. NULL bedeutet aktuelles Symbol.
Zeitrahmen - Zeitraum. Kann einer der Zeitrahmen eines Diagramms sein. 0 bedeutet die Periode des aktuellen Diagramms.
Zeit - Zeitwert, nach dem gesucht werden soll.
genau - Rückgabewert, wenn kein Balken gefunden wird. FALSE - iBarShift gibt den nächsten Wert zurück. TRUE - iBarShift liefert -1.
 
1Rakso >> :
int iBarShift(string symbol, int timeframe, datetime time, bool exact=false)
Balkensuche nach Zeit. Die Funktion gibt den Offset des Taktes zurück, zu dem die angegebene Zeit gehört. Gibt es für die angegebene Zeit keinen Balken (ein "Loch" in der Historie), gibt die Funktion -1 oder den Offset des nächstgelegenen Balkens zurück, je nach dem genauen Parameter.
Parameter:
Symbol - Symbolname des Instruments. NULL bedeutet aktuelles Symbol.
Zeitrahmen - Zeitraum. Kann einer der Zeitrahmen eines Diagramms sein. 0 bedeutet die Periode des aktuellen Diagramms.
Zeit - Zeitwert für die Suche.
genau - Rückgabewert, wenn kein Balken gefunden wird. FALSE - iBarShift gibt den nächsten Wert zurück. TRUE - iBarShift liefert -1.

Ich habe die Referenz gelesen, aber ich verstehe nicht, was dort steht: "Die Funktion gibt die Verschiebung des Balkens zurück" - was bedeutet das? Wenn ich das erste gelesen habe, bedeutet es einfach die Anzahl der Kerzenständer und das zweite bedeutet eine Verschiebung. Ich denke, ich brauche das nächste Hoch nach einigen Bedingungen, der erste Fall wird nicht funktionieren, weil ich nicht sehen kann max 10 Bars (und kann nicht sehen, max 20 oder 30 entweder), wie sollte ich es richtig beschreiben (das nächste Hoch zum Beispiel nach dem Überschreiten 2 Mascos)?

 
Dimoncheg >> :

Ich habe die Hilfe gelesen, aber ich verstehe nicht, was es heißt: "Die Funktion gibt die Verschiebung des Balkens zurück" - was bedeutet das? Wenn ich die erste gelesen habe, bedeutet sie einfach die Anzahl der Kerzenständer, und die zweite bedeutet eine Verschiebung. Ich denke, ich brauche das nächste Hoch nach einigen Bedingungen, der erste Fall wird nicht funktionieren, weil ich nicht sehen kann max 10 Bars (und kann nicht sehen, max 20 oder 30 entweder), was wird der richtige Weg, es zu tun (das nächste Hoch nach 2 Mascos Kreuzung zum Beispiel)?

ibarshift zeigt an, in welchem Balken vom Anfang des Diagramms der n-te zweite Zeitpunkt

 
Dimoncheg >> :

Ich habe es gelesen, aber ich verstehe nicht, was dort steht: "Die Funktion gibt die Taktverschiebung zurück" - was bedeutet das? Wenn ich die erste gelesen habe, bedeutet sie einfach die Anzahl der Kerzenständer, aber die zweite bedeutet eine Verschiebung. Ich denke, ich brauche die nächstgelegene hoch nach einigen Bedingungen, der erste Fall wird nicht funktionieren, weil ich möglicherweise nicht sehen, max 10 Bars (und möglicherweise nicht sehen, max 20 oder 30 entweder), was ist der richtige Weg, es zu tun (die nächstgelegene hoch nach Kreuzung 2 Mascos)?

Du gibst ihm Zeit und du bekommst ein Geschenk.

Angenommen, Sie kennen die Zeit des Nulltakts.

Einige Ereignisse sind vergangen,

Die Situation hat sich geändert, und Sie möchten die Position des Balkens mit dieser Zeit im Vergleich zum Null-Balken überprüfen.

Hierfür benötigen Sie diese Funktion.

 

Dimoncheg

Ich bin selbst Kunde in diesem Bereich)

======================

Ich habe noch eine weitere Frage: Wie kann man den Balken ZZ halbieren, um seine Höhe zu berechnen und auf dieser Höhe eine Befestigung vorzunehmen?


   double ind1. up = iCustom(Symbol(), PERIOD_H1, "ZigZag_NK", ZZ_Depth1, 5, 3, 0, 0);
   double ind1. dn = iCustom(Symbol(), PERIOD_H1, "ZigZag_NK", ZZ_Depth1, 5, 3, 1, 0);
   if ( ind1. up != EMPTY_VALUE  ) ind1. arr_1 =- 1;
	else if ( ind1. dn != EMPTY_VALUE )   ind1. arr_1 = 1;  
   

   if (( Close_P)&& ind. arr_1 /2*Point){   // как вписать формулу что я не так делаю? 
   
   int slippage=3;
   for (int i=OrdersTotal()-1; i>=0; i--)
   {
    if (!OrderSelect( i, SELECT_BY_POS, MODE_TRADES)) break;
    if (OrderType()==OP_BUY ) OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID), slippage);
    if (OrderType()==OP_SELL) OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK), slippage);
    }
    }
 
Mein Indikator innerhalb des Codes wird reinitialisiert, ich muss den Zustand davor und danach kennen, damit ich vergleichen kann. Wie lässt sich dieser Prozess am besten umsetzen?
 
1Rakso >> :

Dimoncheg

Ich bin selbst Kunde in diesem Bereich)

======================

Ich habe noch eine weitere Frage: Wie kann man den Balken ZZ halbieren, um seine Höhe zu berechnen und auf dieser Höhe eine Befestigung vorzunehmen?


Der Zickzackkurs wird nicht am letzten Punkt berechnet. In der Regel kann sie auch auf dieser Ebene nicht behoben werden.

Grund der Beschwerde: