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

 
psyman:

Für den nächsten Code, eine Geschichte in Bildern:


Trennen Sie das Netzwerk und fügen Sie einen Indikator hinzu

Ich wechsle zur nächsten Tabelle


y2 geänderter Wert, ich gehe zurück


y2 hat seinen Wert zurückgegeben, aber die Markierung wird um den Wert "gone" gezählt! Ich drehe das Mausrad.

Der Marker ist wieder an seinem Platz!

Beim Umschalten auf das benachbarte Diagramm werden alle inaktiven Fenster nicht auf Vollbild erweitert. Das heißt, sie sind kleiner als im aktiven Zustand. Daher erhalten Objekte kleinere Koordinaten aus der oberen linken Ecke des Diagramms. Wenn Sie dann das Fenster aktivieren, müssen Sie warten, bis das Diagramm aktualisiert wird, oder es zwangsweise aktualisieren. Dies geschieht durch Drehen des Scrollrads.

 
psyman:

Für den nächsten Code, eine Geschichte in Bildern:


Trennen Sie das Netzwerk und fügen Sie einen Indikator hinzu

Zur nächsten Karte gewechselt


y2 geänderter Wert, ich gehe zurück


y2 hat seinen Wert zurückgegeben, aber die Markierung wird um den Wert "gone" gezählt! Ich drehe das Mausrad.

Die Markierung ist wieder an ihrem Platz!

Sie könnenChartTimePriceToXY
verwerfenund reinen Text(OBJ_TEXT) + 1-3 Takte in die Zukunft drucken, er wird immer dort sein, wo Sie ihn brauchen)

 
Taras Slobodyanik:

Sie könnenChartTimePriceToXY
verwerfenund reinen Text(OBJ_TEXT) + 1-3 Takte in die Zukunft drucken, er wird immer dort sein, wo Sie ihn haben wollen)

Nur wenn Sie die Verschiebung der Leiste nach rechts deaktivieren, wird der Text außerhalb des Fensters angezeigt.

Die Idee ist richtig, aber offenbar fehlt es an Erfahrung.

 
Alexey Viktorov:

Nur wenn Sie die Verschiebung der Leiste nach rechts deaktivieren, wird der Text außerhalb des Fensters angezeigt.

Das ist eine gute Idee, aber Sie sind wahrscheinlich noch sehr unerfahren.

Wenn Sie möchten, dass die Markierung auf der rechten Seite liegt, können Sie einfach den Balken ganz rechts im Diagramm nehmen und darauf zeichnen.

 

Guten Tag.
Könnten Sie mir bitte sagen, wie ich Variablen vom globalen Typ in EA erstellen kann, damit diese Daten beim Aufruf neuer Funktionen nicht gelöscht werden?

Rufen Sie die variablen Daten über :

bool  GlobalVariableGet( string  "name", double "var"  ); // К примеру

Wo dann "var" in Operationen eingefügt werden kann.

Und sie werden mit der Funktion erstellt:

datetime  GlobalVariableSet( 
   string  name,      // имя 
   double  value      // устанавлимое значение 
   );

Ich versuche nur, alles zu verstehen. Es gibt keine Beispiele und ich bin mir nicht ganz sicher, wie die Daten funktionieren werden, wenn einesdatetime und das anderebool ist? Keine Fehler?

 
psyman:

Für den nächsten Code, eine Geschichte in Bildern:

Trennen Sie das Netzwerk und fügen Sie einen Indikator hinzu

Ich wechsle zur nächsten Tabelle

y2 geänderter Wert, ich gehe zurück

y2 hat seinen Wert zurückgegeben, aber die Markierung wird um den Wert "gone" gezählt! Ich drehe das Mausrad.

Die Markierung ist wieder an ihrem Platz!

//+------------------------------------------------------------------+
//|                                              !_clr_indicator.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_plots 0

string objname="Bid";
input color Bid_color = clrCrimson;

//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason) 
   { 
   ObjectDelete(0,objname);
   } 
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   SetTXT();
   return(rates_total);
}

//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam) 
{ 
   if(id==CHARTEVENT_CHART_CHANGE) 
      SetTXT();
}

//+------------------------------------------------------------------+
void SetTXT() 
{
int      first_bar=(int)ChartGetInteger(0,CHART_FIRST_VISIBLE_BAR,0);
int      width_bar=(int)ChartGetInteger(0,CHART_WIDTH_IN_BARS,0);
double   label_price=iClose(_Symbol,_Period,0);
datetime label_time=0;

   if(width_bar>first_bar)
      label_time=iTime(_Symbol,_Period,1)+(width_bar-first_bar)*PeriodSeconds();
   else
      label_time=iTime(_Symbol,_Period,first_bar-width_bar+1);

   if(ObjectFind(0,objname)<0)
      {
      ObjectCreate(0, objname, OBJ_TEXT,0,0,0);
      ObjectSetInteger(0, objname, OBJPROP_FONTSIZE, 12);
      ObjectSetInteger(0, objname, OBJPROP_COLOR, Bid_color);
      ObjectSetString(0, objname, OBJPROP_FONT, "Verdana");
      ObjectSetInteger(0,objname,OBJPROP_ANCHOR,ANCHOR_RIGHT_UPPER);
      ObjectSetInteger(0,objname,OBJPROP_BACK,false);
      ObjectSetInteger(0,objname,OBJPROP_SELECTABLE,false);
      }
   
   ObjectSetString(0,objname,OBJPROP_TEXT,DoubleToString(label_price, _Digits-1)); 
   ObjectMove(0,objname,0,label_time,label_price);
   
   ChartRedraw();
}
 
Taras Slobodyanik:


Vielen Dank, morgen werde ich einen Weg finden, iTime und iClose zu ersetzen, da ich auf XP sitze.

 
Guten Tag an Sie alle!
Frage für Programmierer.
Bitte um Rat!
Bei einigen Brokern ist es nicht möglich, eine Order mit einem Take-Profit- und einem Stop-Loss-Kurs zu eröffnen.

Nur eine Funktion OrderSend().

Vielmehr wird mit OrderSend() ein Auftrag eröffnet, aber der Stop- und der Gewinnkurs fehlen in diesem Auftrag.

Diese Order muss in den nachfolgenden Codezeilen mit OrderModify() geändert werden, wobei Stop und Profit zur Order hinzugefügt werden.


Die Frage ist also, wer und wie einen Fall in der Funktion des Kaufs oder Verkaufs bearbeitet oder versichert
wenn z. B. OrderSend() funktioniert, OrderModify() aber aus irgendeinem Grund nicht funktioniert und die
ein offener Auftrag ohne Stopp oder Gewinn vorliegt?

Wie würde ich mich gegen ein solches Ereignis versichern und/oder wie würde ich damit umgehen?
Bitte beraten Sie mich.
Wenn Sie nicht wissen, wie man Astrakhan benutzt, verwenden Sie bitte nicht den Code von Astrakhan.

Zeit, aber ich kann keine Informationen darüber finden.

Ich glaube, dass die Breakeven-Funktion eine gewisse Absicherung bietet, aber nur, wenn der Kurs ins Minus gegangen ist.

Wenn der Kurs in den Verlust gedreht hat, aber kein Stop-Loss vorhanden ist?

Ich bin Ihnen sehr dankbar für Ihre Antwort!
 

Hallo zusammen!

Können Sie mir bitte sagen, warum ich seine Eigenschaften nicht eingeben kann, wenn der EA funktioniert? Früher konnte ich das, aber jetzt kann ich die Eigenschaften nicht mehr öffnen. Einmal half ein Neustart des Terminals, aber das Problem trat nach einer Minute wieder auf. Expert Advisor ist neu, das Terminal funktioniert auch seit kurzem. Was ist das Problem mit den EA-Eigenschaften?

Ich danke Ihnen!

 
demonRDV:

Hallo zusammen!

Können Sie mir bitte sagen, warum ich seine Eigenschaften nicht eingeben kann, wenn der EA funktioniert? Früher konnte ich das, aber jetzt kann ich die Eigenschaften nicht mehr öffnen. Einmal half es, das Terminal neu zu starten, aber das Problem trat nach einer Minute wieder auf. Expert Advisor ist neu, das Terminal funktioniert auch seit kurzem. Was ist das Problem mit den EA-Eigenschaften?

Ich danke Ihnen!

Drücken Sie den Hotkey F7 :-)

Das Anklicken des EA-Symbols ist nicht immer möglich - das Symbol könnte von anderen Objekten verdeckt sein, der EA könnte die Nachrichtenwarteschlange überlasten und 100500 andere Gründe

Grund der Beschwerde: