Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 673

 

D.h. es würde etwa so ablaufen:

// Простой параболик. Переворотная стратегия.
// В условиях, когда в терминале уже есть открытые позиции по другим инструментам.

input double TakeProfit    =2500;
input double StopLoss      =400;
input double Lots          =1;
input double TrailingStop  =100;

input double Parameter1    =0.02; // Параметры индикатора PSAR
input double Parameter2    =0.2;
   
static int ticket_sell     =0;

void OnTick()
{
 

Hallo. Kann mir jemand zeigen, wie man Comment(TimeToStr(TimeLocal(),TIME_SECONDS)) einfügt;

Ich habe es oder die Zeit (lokal) wird nur mit einem neuen Tick aktualisiert (unser Internet ist schlecht), oder die Zeit ist korrekt und der Expert Advisor funktioniert nicht mehr

 
Irina_:

Hallo. Kann mir jemand zeigen, wie man Comment(TimeToStr(TimeLocal(),TIME_SECONDS)) einfügt;

Ich habe es oder die Zeit (lokal) wird nur mit einem neuen Tick aktualisiert (unser Internet ist schlecht), oder die Zeit ist korrekt und der Expert Advisor funktioniert nicht mehr


Sie sollten die Uhr in OnTimer() so schreiben, dass sie nicht von Ticks abhängt.
 

Ich habe OnTimer() noch nie benutzt, wie würde es aussehen? Ich bin eine Anfängerin.

Jetzt habe ich es so gemacht:


int start()

{ hier ist der Eulencode

- - - - - - - - - - - - - - - -

am Ende habe ich :

while(!IsStopped())

{

Comment(TimeToStr(TimeLocal(),TIME_SECONDS) +""+TimeToStr(TimeCurrent(),TIME_SECONDS) )

}

zurück(0);

}

Es scheint zu funktionieren, aber der Kommentar erscheint auf dem Diagramm einige Zeit später, nach 15 Minuten, wenn der EA bereits einige Aufträge geöffnet hat. Warum?

 
Irina_:

Ich habe OnTimer() noch nie benutzt, wie würde es aussehen? Ich bin eine Anfängerin.

Jetzt habe ich es so gemacht:


int start()

{ hier ist der Eulencode

- - - - - - - - - - - - - - - -

am Ende habe ich :

while(!IsStopped())

{

Comment(TimeToStr(TimeLocal(),TIME_SECONDS) +""+TimeToStr(TimeCurrent(),TIME_SECONDS) )

}

zurück(0);

}

Es scheint zu funktionieren, aber der Kommentar erscheint auf dem Diagramm einige Zeit später, nach 15 Minuten, wenn der EA bereits einige Aufträge geöffnet hat. Warum?


int OnInit()
{

EventSetTimer(нужное количество секунд);
   




   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
   EventKillTimer();
   



}
//+------------------------------------------------------------------+
void OnTick()
{

   
}
//+------------------------------------------------------------------+
void OnTimer()
{


Comment(TimeToStr(TimeLocal(),TIME_SECONDS));
} //+------------------------------------------------------------------+
 
Danke, ich werde es ausprobieren.
 
vadynik:

Um den Wert nicht zu verlieren, benötigen Sie eine globale Variable, verschieben Sie ihre Deklaration außerhalb vonOnTick() oder machen Sie sie statisch
Sie müssen sie nicht aus dem globalen Bereich herausnehmen und statisch machen. Innerhalb der Funktion. Neben position_exists.
 
simpleton:
Es ist nicht notwendig, sie herauszunehmen und global zu machen, es reicht, sie statisch zu machen. Innerhalb der Funktion. Neben position_exists.

Also, was habe ich geschrieben? OR
 
rusa:
Funktionieren EAs aus Metatrader 4 auf dem Android-Terminal?
Nein. Es gibt dort überhaupt keine Bestimmungen für EAs.
 
Mr.Profit:

Es stellt sich heraus, dass SymbolSelect("AUDUSD", true) nur dann true zurückgibt, wenn AUDUSD nicht in MarketWatch enthalten ist, d.h. wenn das Paar zu MarketWatch hinzugefügt wird. Sobald das Paar in MarketWatch ist, geben nachfolgende Aufrufe false zurück.

Dieses Verhalten entspricht in keiner Weise dem Handbuch für diese Funktion.

Ich musste eine selbst geschriebene Funktion verwenden, die alleSymbolName(i, true) für i=0...SymbolsTotal(true) durchsucht.

Alles passt.

Der zweite Parameter in der Funktion ist ein Schalter.

1. Wenn Sie true senden, müssen Sie das Symbol in Market Watch auswählen.

1.1 Wenn es nicht bereits vorhanden ist, wird es ausgewählt und die Funktion gibt true zurück.

1.2 Wenn sie bereits vorhanden ist, funktioniert die Funktion nicht (nichts auszuwählen) und gibt false zurück.

2. Wenn Sie false senden, sollte das Symbol aus dem Market Watch entfernt werden.

2.1 Wenn es vorhanden ist und es keine offenen Charts und/oder offenen Positionen für dieses Symbol gibt, dann wird das Symbol aus der Marktbeobachtung entfernt und die Funktion gibt true zurück.

2.2 Wenn es vorhanden ist, aber es gibt offene Charts mit diesem Symbol und/oder es gibt offene Positionen mit diesem Symbol, wird die Funktion nicht funktionieren und falsch zurückgeben.

2.3 Wenn sie nicht vorhanden ist, funktioniert die Funktion nicht (es gibt nichts zu entfernen) und gibt false zurück.

Es geht so...

Grund der Beschwerde: