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

 
Artyom Trishkin:
Es reicht, wenn man weiß, welcher Wochentag der erste des Monats war. Der Rest wird berechnet.

Das ist so, als würde man sich mit der linken Hand am rechten Ohr kratzen.

 
Darirunu:

Es tut mir leid, aber Sie haben wahrscheinlich nicht auf die Frage geachtet.

Wie schreibt man die Bedingung in die vier: wenn der erste Freitag des Monats bullisch war und

der zweite Montag ist rückläufig, dann eröffnen wir ein Verkaufsgeschäft.

DayOfWeek()==1 Montag ist klar, aber welcher Montag des Monats?)

Ich hab's! Sie sprechen über Ihren Algorithmus, den nur Sie kennen. Ich habe geschrieben, bestimmen Sie den Tag der Woche für den ersten Tag des Monats! Und dann verwenden wir eine Tabelle oder zwei einfache Formeln, um die Daten der Tage, die uns interessieren, zu bestimmen.

Sehen Sie sich die Tabelle im Kalender an.

Wenn der erste Tag des Monats die 6 ist, ist die Nummer des ersten Freitags die 7. Ansonsten ist der erste Freitag gleich 6 - der Tag des Monatsanfangs.

Wenn der erste Tag des Monats < 2 ist, ist der zweite Montag gleich 9 - Tag des Monats. Ansonsten ist die zweite Montagsnummer die 16 - der Tag des Monats.

Mit den mathematischen Funktionen werden der Rest der Division und der Modulus viel kürzer sein

 
LRA:

Ich hab's! Sie sprechen über Ihren Algorithmus, den nur Sie kennen. Was ich damit sagen will, ist: Bestimmen Sie den Wochentag für den ersten Tag des Monats! Und dann verwenden wir eine Tabelle oder zwei einfache Formeln, um die Daten der interessanten Tage zu bestimmen.

Sehen Sie sich die Tabelle im Kalender an.

Wenn der erste Tag des Monats die 6 ist, ist die Nummer des ersten Freitags die 7. Ansonsten ist der erste Freitag gleich 6 - der Tag des Monatsanfangs.

Wenn der erste Tag des Monats < 2 ist, ist der zweite Montag gleich 9 - Tag des Monats. Ansonsten ist der zweite Montag gleich 16 - der Tag des Monats

Danke. Gott segne Sie... Ich werde nachsehen.
 
Darirunu:
Danke. Gott segne Sie. Ich werde weiter nachschauen.

Herzlichen Dank für Ihren Wunsch. Und setzen Sie trotzdem ein Leerzeichen nach dem Punkt und ein Leerzeichen vor dem Punkt. Es wird bei der Programmierung helfen. Viel Glück und, wenn Sie es brauchen, Gewinne!

 
LRA:

Vielen Dank für Ihre Vorschläge. Sie können auch ein Leerzeichen nach einem Punkt setzen und ein Leerzeichen vor einem Punkt weglassen. Es wird bei der Programmierung helfen. Viel Glück und, wenn Sie es brauchen, viel Glück!


Es kommt sehr kompliziert daher. Es muss eine einfachere Möglichkeit geben. Kann jemand etwas dazu sagen?

Angenommen, morgen ändert sich etwas an den Updates und wir müssen alles neu schreiben.

 
Darirunu:

Es kommt sehr kompliziert daher. Es muss eine einfachere Möglichkeit geben. Kann jemand etwas dazu sagen?

Nehmen wir an, morgen ändert sich etwas an den Updates und wir müssen alles neu schreiben.

Das ist gar nicht so schwierig. Aber für jede Situation müssen wir unterschiedliche Werte festlegen, wie viele Tagesbalken kopiert werden sollen und welche in die Strukturen importiert werden sollen.

/********************Script program start function********************/
void OnStart()
{
 MqlDateTime mqlDateTime0, mqlDateTime1;
 datetime arrDateTime[7];
 CopyTime(_Symbol, PERIOD_D1, 0, 7, arrDateTime);
 TimeToStruct(arrDateTime[0], mqlDateTime0);
 TimeToStruct(arrDateTime[6], mqlDateTime1);
 if(mqlDateTime0.day_of_week == FRIDAY && mqlDateTime0.mon != mqlDateTime1.mon)
  {
   Print("Ура!!! Сегодня первая пятница");
   // Дальше можно брать по времени пятницы открытие и закрытие бара и на основании этого определяем бычья или медвежья свеча...
  }
}/********************************************************************/

Es ist besser, die Candlestick-Parameter in die MqlRates-Struktur zu übernehmen

 
Alexey Viktorov:

Aber für jede Situation müssen Sie unterschiedliche Werte festlegen, wie viele Tagesbalken kopiert und welche in die Strukturen eingefügt werden sollen.



Das ist es, worüber ich spreche, und ich bin nur an MQL4 interessiert.

 
Darirunu:

Das ist es, was ich meine, und ich bin nur an MQL4 interessiert ... Wir müssen eine andere Lösung finden.

Genau das ist mql4.
Dateien:
00.mq4  2 kb
 
double ma;
   int    res;
   int nomber = OrdersHistoryTotal();
   int tip=OrderType();
   if(OrderSelect(nomber,SELECT_BY_POS,MODE_HISTORY))
   {
   tip=OrderType();
   }
   ma=iMA(NULL,0,MovingPeriod,120,MODE_SMA,PRICE_CLOSE,1);
   if(Bid<ma)
   if(tip!=OP_SELL)
   {
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,Bid-TP*Point,"",MAGICMA,0,Red);
      return;
     }



Guten Tag. Ich brauche etwas Hilfe. Wenn ein geschlossener Verkaufsauftrag vorliegt, kann der nächste Auftrag nur als Kaufauftrag eröffnet werden.
 
Darirunu:

Das ist es, was ich meine, und ich bin nur an MQL4 interessiert.

Ich habe auch diese Idee.

Wenn Sie den ersten Freitag benötigen, sollte die Zahl kleiner als 8 sein. Wenn der erste Freitag des Monats ein Freitag ist, ist der nächste Freitag der achte. Dementsprechend können wir leicht auf jeden beliebigen Wochentag und jeden beliebigen Tag, zweiten, dritten...

Grund der Beschwerde: