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

 

Hier sind die Indikatoren und Vorlagen, ich hoffe, sie helfen jemandem.

http://depositfiles.com/folders/8KVJ9L02I

 

Könnten Sie dem Expert Advisor bitte erklären, wie er sich verhalten soll?

die Werte des VolumeHist-Indikators (vertikale Volumina), d.h. um sie auf dem Diagramm zu bestimmen

oder nur Zählen? (wenn er ihn berechnet, braucht er einen Block, um den ~Budgetpreis zu analysieren und den Wert dieses Indikators zu berechnen)

zum Beispiel ein Expert Advisor denkt und das Ergebnis BUY.LONG ist

Ich muss ein paar Extremitäten finden und die beste auswählen, richtig?

wenn Sie irgendwelche Erfahrungen mit diesem Indikator in der automatisierten System haben, plz teilen!


 

Hallo.

Ich kann mir auf den ersten Blick nicht vorstellen, ob das möglich ist:

Es gibt eine Funktion, die true zurückgibt, wenn die Bedingungen erfüllt sind
z. B. C[0]>C[1]+n*Point (genau C[0], daher die Frage).

Wie kann ich in dieser Funktion angeben, dass die Bedingung auch dann ausgeführt wird, wenn sie einmal ausgeführt wird?

Bedingung, true wird eine bestimmte Zeitspanne (X) zurückgegeben.

Ich danke Ihnen.

 
Telemah >> :

Hallo.

Ich kann mir auf den ersten Blick nicht vorstellen, dass dies möglich ist:

Es gibt eine Funktion, die true zurückgibt, wenn die Bedingungen erfüllt sind
z. B. C[0]>C[1]+n*Point (genau C[0], daher die Frage).

Wie kann ich in dieser Funktion festlegen, dass die Bedingung nur einmal ausgeführt wird?

einmalige Ausführung einer Bedingung, true wird zu einem bestimmten Zeitpunkt (X) zurückgegeben.

Ich danke Ihnen.


Das können Sie nicht. MQL4 ist kein OOP. Daher kann die Funktion nur einen Wert zurückgeben.

Es gibt jedoch mehrere Umgehungsmöglichkeiten:


1. Senden Sie ein Array per Referenz an die Funktion und speichern Sie die gewünschten Werte darin während der Ausführung der Funktion, um sie später zu lesen.

2. statische Variablen deklarieren, während der Funktionsausführung Werte in sie eingeben und sie danach auslesen

 
Reshetov >> :

Das können Sie nicht. MQL4 ist kein OOP. Daher darf die Funktion nur einen Wert zurückgeben.

Es gibt jedoch mehrere Umgehungsmöglichkeiten:


1. Übergeben Sie ein Array per Verweis an eine Funktion und speichern Sie die erforderlichen Werte darin während der Ausführung der Funktion, damit sie später gelesen werden können.

Deklarieren Sie statische Variablen, geben Sie Werte in sie zur Ausführungszeit der Funktion ein und lesen Sie sie danach aus

Ich danke Ihnen für Ihre Antwort.

 
Meine Herren, beraten, was das Problem, ist es notwendig, dass jede neu erschien anhängig löschen die vorherige, scheint es richtig, aber es funktioniert nicht, wie es sollte, wenn es eine anhängige für den Kauf, dann die anhängige für den Verkauf es entfernt (und umgekehrt), und wenn es zu kaufen und es gibt einen neuen Kauf (dh in die gleiche Richtung) dann nicht funktionieren cheh (mit dem Verkauf plus Verkauf die gleiche Sache). Ich verstehe etwas nicht, was ist los?
bool SELLSTOP; bool BUYSTOP;
  if(...... && BUYSTOP == false)
     {
     int BuyTicketStop = OrderSend(Symbol(),OP_BUYSTOP, Lots, SB,4, SB - StopLoss*Point, SB + TakeProfit*Point,"Покупаем",658932,0,Green);
        if ( BuyTicketStop > 0)
        {
        BUYSTOP = true;
        PlaySound("recharge.wav");
        }
        else 
        {
        Print("Ошибка: ", Error(GetLastError()));
        PlaySound("timeout.wav");
        }
      }  

  if(....... && SELLSTOP == false)
     {
     int SellTicketStop = OrderSend(Symbol(),OP_SELLSTOP, Lots, SS,4, SS + StopLoss*Point, SS - TakeProfit*Point,"Продаем",658932,0,Red);
        if ( SellTicketStop > 0)
        {
        SELLSTOP = true;
        PlaySound("recharge.wav");
        }
        else 
        {
        Print("Ошибка: ", Error(GetLastError()));
        PlaySound("timeout.wav");
        }
     }
     
 int M;
 for( M = OrdersTotal() - 1; M >= 0; M--)
     {
     OrderSelect( M, SELECT_BY_POS, MODE_TRADES);
     
          if ( SELLSTOP == true){if(OrderType() == OP_BUYSTOP) 
          {bool ODBS = OrderDelete(OrderTicket());
          if( ODBS){ BUYSTOP = false; PlaySound("ok.wav");}
          else { BUYSTOP = true; Print("Ошибка: ", Error(GetLastError())); PlaySound("timeout.wav");}}}
          
          if ( BUYSTOP == true){if(OrderType() == OP_SELLSTOP) 
          {bool ODSS = OrderDelete(OrderTicket());            
          if( ODSS){ SELLSTOP = false; PlaySound("ok.wav");}
          else { SELLSTOP = true; Print("Ошибка: ", Error(GetLastError())); PlaySound("timeout.wav");}}}
 
 

Guten Tag. Frage an die Experten.

Ich optimiere mit einem variablen Spread.

Wie berücksichtigt der Prüfer die Streuung bei der Optimierung?

Wird bei jedem Durchlauf die neue Stromspanne berücksichtigt?

Oder werden alle Optimierungsläufe unter Berücksichtigung der Streuung durchgeführt, die der Tester vor dem Drücken der Taste OPTIMIERUNG gespeichert hat?

 
Rita писал(а) >>

Guten Tag. Frage an die Experten.

Ich optimiere mit variabler Streuung.

Wie berücksichtigt der Prüfer die Streuung bei der Optimierung?

Wird bei jedem Durchlauf die neue Stromspanne berücksichtigt?

Oder basieren alle Optimierungsläufe auf der Spanne, die der Tester vor dem Drücken der OPTIMIERUNGstaste gespeichert hat?

Wird die letzte bekannte Version verwendet?

 
Rita писал(а) >>

Guten Tag. Frage an die Experten.

Ich optimiere mit einem variablen Spread.

Wie berücksichtigt der Prüfer die Streuung bei der Optimierung?

Wird bei jedem Durchlauf die neue Stromspanne berücksichtigt?

Oder basieren alle Optimierungsläufe auf der Spanne, die der Tester vor dem Drücken der OPTIMIERUNGstaste gespeichert hat?

Wird die letzte bekannte Version verwendet?

 

Ich danke Ihnen. Aber es ist immer noch nicht ganz klar.

Zuletzt bekannt vor jedem Lauf?

Oder das letzte bekannte Datum vor Beginn der Optimierung?

Grund der Beschwerde: