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

 
-Aleks-:

Sind Sie sicher, dass Sie sich den letzten von Ihnen geposteten Code angesehen haben? Wenn ja, brauche ich eine Pause... Ich danke Ihnen.
Verfolgen Sie die Variable"c".
 
Artyom Trishkin:
Verfolgen Sie die Variable"c".

Ja, ich danke Ihnen! Ich verstehe - aber ich kann mit diesem Code noch nicht viel anfangen - ich werde experimentieren!

Victor Nikolaev- vielen Dank für Ihre Hilfe!

 

Guten Tag zusammen!

Bitte sagen Sie mir, ob Sie den Wert der MAJIC NUMBER in einem Auftrag ändern können, der bereits abgeschlossen wurde und in der Liste der abgeschlossenen Aufträge erscheint.

D.h., ändern Sie den Wert von MAJIC NUMBER , nachdem der Auftrag abgeschlossen ist.

Wenn dies möglich ist, welche Funktion sollte dann verwendet werden, um sie zu ändern. Ich habe eine solche Funktion in Kims Arbeit nicht gefunden.

Ich danke Ihnen.
 
ANDREY:

Guten Tag zusammen!

Bitte sagen Sie mir, ob Sie den Wert der MAJIC NUMBER in einem Auftrag ändern können, der bereits abgeschlossen wurde und in der Liste der abgeschlossenen Aufträge erscheint.

D.h., ändern Sie den Wert von MAJIC NUMBER , nachdem der Auftrag abgeschlossen ist.

Wenn dies möglich ist, welche Funktion sollte dann verwendet werden, um sie zu ändern. Ich habe eine solche Funktion in Kims Arbeit nicht gefunden.

Ich danke Ihnen.

Das können Sie nicht. Und warum brauchen Sie es überhaupt - vielleicht gibt es eine andere Lösung für das Problem?
 
-Aleks-:

Das können Sie nicht. Warum wollen Sie das überhaupt tun - gibt es eine andere Lösung für das Problem?

Danke für den Hinweis.

Während ich auf eine Antwort wartete, kam mir etwas in den Sinn. Wenn es nicht klappt, schreibe ich auf, was ich brauche.

Können Sie mir einen Tipp geben?

if(OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY)) // if LAST order
if ( OrderType ()==OP_SELL)// SEL

X = OrderProfit( );// Speichern des TakeProfit-Wertes

if (OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY)) // if LAST order
if ( OrderType ()==OP_SELL)// SEL

wenn(X < 0)// und wenn dieser Verkauf beim Stopp geschlossen wurde

EINEN WEITEREN AUFTRAG ERÖFFNEN

QUESTION

Wie man einen Nachtrag zu diesen Bedingungen kodiert.

Nicht nur der letzte, sondern auch der vorletzte und der vorvorletzte Auftrag sollten mit einem Stopp geschlossen werden.

und erst dann

UM EINEN WEITEREN AUFTRAG ZU ERÖFFNEN.

Ich danke Ihnen.



 
geratdc:Ich habe die empfohlenen Änderungen am Code vorerst in Notepad vorgenommen. Bitte prüfen Sie, ob ich den Code richtig korrigiert habe?

Ich habe es mir angeschaut. Korrigiert. Das Ergebnis nach 3 Monaten im Testgerät ist folgendes

Der Rückstand ist groß.

 
Können Sie mir bitte sagen, wie ich die Zahlen der letzten 5 Überschreitungen am aktuellen Tag herausfinden kann?
 
missha32: So finden Sie die Anzahl der Balken, die von einer Mach-Anzahl von, sagen wir, 5 letzten Kreuzungen für den aktuellen Tag gekreuzt werden

Wenn um 4 Uhr morgens - nicht viele Bars noch für heute. Auf H4 gibt es nur 6 Balken pro Tag. Sie müssen die Anzahl der zu suchenden Balken oder die Anzahl der Crossovers festlegen.

//+-------------------------------------------------------+
//| Подсчет пересечений MA                    PROBA_MA.mq4|
//+-------------------------------------------------------+
#property strict

extern int Баров = 500;  // Баров для подсчета пересечений МА
extern int MA_1  =10;
extern int MA_2  =100;

void OnStart()
{
  int Бар, Счетчик;
  double MA_1_Предыдущая, MA_2_Предыдущая,
         MA_1_Следующая,  MA_2_Следующая;

  ObjectsDeleteAll(); // Удалить вертикальные линии

  for(Счетчик=0, Бар=0; Бар<Баров; Бар++) // Начинаем с послнего бара
  {
    MA_1_Предыдущая = iMA(_Symbol,0,MA_1,0,MODE_EMA,PRICE_CLOSE,Бар+1);
    MA_1_Следующая  = iMA(_Symbol,0,MA_1,0,MODE_EMA,PRICE_CLOSE,Бар);
    MA_2_Предыдущая = iMA(_Symbol,0,MA_2,0,MODE_EMA,PRICE_CLOSE,Бар+1);
    MA_2_Следующая  = iMA(_Symbol,0,MA_2,0,MODE_EMA,PRICE_CLOSE,Бар);

    if((MA_1_Предыдущая>=MA_2_Предыдущая && MA_1_Следующая<=MA_2_Следующая) ||
       (MA_1_Предыдущая<=MA_2_Предыдущая && MA_1_Следующая>=MA_2_Следующая))
    {
      Счетчик++;
      Alert(Счетчик, "  Бар = ", Бар, "  T = ",Time[Бар]);

      // Создать вертикальную линию
      ObjectCreate( (string)Счетчик+"_"+(string)Бар,OBJ_VLINE,0,Time[Бар],0);

      if(Счетчик == 5) break;  // 5 линий есть - выход
    }
  }
}

Abstände groß = Trend

 

Können Sie mir einen Tipp geben?

if(OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY)) // if LAST order
if ( OrderType ()==OP_SELL)// SEL

X = OrderProfit( );// den TakeProfit-Wert speichern

if (OrderSelect (Ht-1,SELECT_BY_POS, MODE_HISTORY)) // if LAST order
if ( OrderType ()==OP_SELL)// SEL

wenn(X < 0)// und wenn dieser Verkauf beim Stopp geschlossen wurde

EINEN WEITEREN AUFTRAG ERÖFFNEN

QUESTION

Wie man einen Nachtrag zu diesen Bedingungen kodiert.

Nicht nur der letzte, sondern auch der vorletzte und der vorvorletzte Auftrag sollten mit einem Stopp geschlossen werden.

und erst dann

UM EINEN WEITEREN AUFTRAG ZU ERÖFFNEN.

Ich danke Ihnen.
 

Ich brauche eine Art von Indikator, um den Indikator zu ändern, ich möchte eine Linie von hoch zu niedrig auf dem Stunden-Chart alle 24 Stunden zu zeichnen, und erhalten die Daten über die Länge der Linie und die Steigung und in der Lage sein, mit diesen Daten in den Code zu arbeiten, ich bin nicht ein großer Experte auf mql4, wenn ich von Grund auf neu zu schreiben, großes Problem?

Ich habe eine gestreckte Linie mit zwei Koordinaten, egal wie ich sie drehe und wende, es ist ein einziges Durcheinander, bitte helfen Sie mir, vielleicht hätte ich nicht damit herumspielen sollen.

#property indicator_chart_window
//---- input parameters
extern int   CountDays     =22;
extern int   GMT           =0;
extern color pivot         =Gold;
extern color day           =Yellow;
extern color metka         =MidnightBlue;

//---- indicator buffers
double range[];
double ny_close[];
double low[];
double high[];
datetime time1;
datetime time2;
datetime ny_time[];

int shift, num;
int ny_shift[];
datetime prevDay=0;
bool fTime;
// ----
void ObjDel()
{
   if (ObjectsTotal() > 0)
   for (num=0;num<=CountDays;num++)
   {
   ObjectDelete("PPw["+num+"]");   
          
   }
   ObjectDelete("mPw");           
}
// ----
void PlotLine(string name,double value,double value1,double line_color,double style)
{
   double valueN=NormalizeDouble(value,Digits);
   double valueN1=NormalizeDouble(value1,Digits);
   bool res = ObjectCreate(name,OBJ_TREND,0,time1,valueN,time2,valueN1);
   ObjectSet(name, OBJPROP_WIDTH, 1);
   ObjectSet(name, OBJPROP_STYLE, style);
   ObjectSet(name, OBJPROP_RAY, false);
   ObjectSet(name, OBJPROP_BACK, true);
   ObjectSet(name, OBJPROP_COLOR, line_color);
} 
//***********
void PlotVLine(string name,double tm,double line_color)
{
   bool res = ObjectCreate(name,OBJ_VLINE,0,tm,0);
   ObjectSet(name, OBJPROP_WIDTH, 0);
   ObjectSet(name, OBJPROP_STYLE, 2);
   ObjectSet(name, OBJPROP_COLOR, line_color);
} 
//***********
void PlotPrice(string name, double value, double line_color)
{
    double valueN=NormalizeDouble(value,Digits);
    bool res = ObjectCreate(name, OBJ_ARROW, 0, time2,valueN);
    ObjectSet(name, OBJPROP_COLOR, line_color);
    ObjectSet(name, OBJPROP_WIDTH, 1);
    ObjectSet(name, OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE);
}       
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
{
   fTime = true;
   IndicatorBuffers(2);
   SetIndexBuffer(0,range);
   SetIndexBuffer(1,ny_close);
   return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+   
int deinit()
{
   ObjDel();
   Comment("");
   return(0);
}
//+------------------------------------------------------------------+
//| LNX_Pivots_v3.1                                                    |
//+------------------------------------------------------------------+
int start()
{
   int i;
   double P;
  
   datetime cDay = iTime(NULL,PERIOD_D1,0) + (GMT-Period()/60.0)*3600;
   if (cDay != prevDay || fTime)  
   {
   ObjDel();
   ArrayResize(ny_time,CountDays+1);
   ArrayResize(ny_shift,CountDays+1);
   ArrayResize(high,CountDays+1);
   ArrayResize(low,CountDays+1); 
   ArrayResize(range,CountDays+1);    
      for (shift=0;shift<=CountDays;shift++)
      {
      ny_time[shift]  = iTime(NULL,PERIOD_D1,shift) + (GMT-Period()/60.0)*3600;
      ny_shift[shift] = iBarShift(NULL,0,ny_time[shift]);
      ny_close[shift] = iClose(NULL,0,ny_shift[shift]);        
      }
     
 for (shift=0;shift<=CountDays-1;shift++)
      {
      int length = ny_shift[shift+1]-ny_shift[shift];
   
      high[shift] = High[iHighest(NULL,0,MODE_HIGH,length,ny_shift[shift])];
      low[shift]  = Low[iLowest(NULL,0,MODE_LOW,length,ny_shift[shift])];
      range[shift] = high[shift] - low[shift]; 
      }
  
  for (shift=0;shift<=CountDays-1;shift++)
      {
  
           
      P  = (ny_close[shift]+high[shift]+low[shift])/3;
      

      time1 = ny_time[shift]+Period()*60;    
         
         if (shift==0) 
         {
         time2 = ny_time[shift] + 24*3600+Period()*60 ;
         PlotVLine("pV0",time2,day);
         PlotPrice("mPw",P,metka);
                 
         }
         else
         time2 = ny_time[shift-1]+Period()*60;
         PlotVLine("pV["+shift+"]",time1,day);
            
      int pstyle=0;
   PlotLine("PPw["+shift+"]",P,P,pivot,pstyle); // *********две координаты*******

}
   fTime = false;
   prevDay = cDay;
   }           
   return(0);
}
//+------------------------------------------------------------------+
Grund der Beschwerde: