Fragen von Anfängern MQL4 MT4 MetaTrader 4 - Seite 84

 
Arseniy Barudkin:   Hallo meine Herren, bitte helfen Sie mir, diese Funktion zu schreiben.

Alles Gute zum Tag des Sieges!!! Es sind schon 4 Tage vergangen - keine Antwort. Versuchen wir es mal... Unzufriedene Menschen schreiben persönlich!!!

//+-------------------------------------------------------+
//| функция перебрала открытые ордера на графике          |
//| и выделила: 1) с самым маленьким лотом и --- профитом |
//| 2) с самым большим лотом и +++ профитом.       скрипт |
//| Предполагается, что такие есть. И удалила    PROBA.mq4|
//+-------------------------------------------------------+
// Назначение функций OrdersTotal, OrderSelect, OrderClose
// и прочих узнаем поставив на них курсор и нажав F1

#property strict

void OnStart()
{
   int    Проскальзывание=20;
   int    Тикет1 =0,  Тикет2=0;
   double Лот1=100000, Лот2=0;
   bool   Результат;     //  Чтоб избежать лишних предупреждений

   // Выделение
   for(int Тикет=OrdersTotal()-1; Тикет>=0; Тикет--)
   {
     if(!OrderSelect(Тикет,SELECT_BY_POS)) continue; // Что-то помешало - идем к следующему
     if(OrderSymbol() != _Symbol) continue;          // Чужой график

     // Если с меньшим лотом и   --- профитом   то запомним тикет и лот
     if(OrderLots()<Лот1     &&  OrderProfit()<0)
     {
       Тикет1=OrderTicket();
       Лот1=OrderLots();
     }

     // Если с большим лотом и   +++ профитом   то запомним тикет и лот
     if(OrderLots()>Лот2     &&  OrderProfit()>0)
     {
       Тикет2=OrderTicket();
       Лот2=OrderLots();
     }
   }

   // Удаление
   if(Тикет1)
   {
      while(!RefreshRates());
      if(OrderSelect(Тикет1,SELECT_BY_TICKET))  // Чтоб получить цену закрытия
         Результат=OrderClose(Тикет1, Лот1,OrderClosePrice(),Проскальзывание);
   }

   if(Тикет2)
   {
      while(!RefreshRates());
      if(OrderSelect(Тикет2,SELECT_BY_TICKET))
         Результат=OrderClose(Тикет2, Лот2,OrderClosePrice(),Проскальзывание);
   }
}   

Und dann stellte sich die Frage: Wenn es nur zwei Ordnungen gibt. Eine mit einem großen Los mit negativem Gewinn und eine mit einem kleineren Los mit positivem Gewinn

Was ist, wenn es nur einen Auftrag gibt? Was ist, wenn alle Aufträge das gleiche Los haben und alle einen negativen Gewinn aufweisen - sollten wir dann einen nach dem anderen schließen?

 

Hallo!

Kann ich Hilfe bekommen? Der Expert Advisor ruftjeden Tick Trades ab. Wie schreibe ich einen Code, um etwa 5 oder nur so viele Gewerke zu entfernen, wie ich möchte?

extern int tp=50;

extern int sl=200;

extern double lot=0.01;

void OnTick()

{

OrderSend("USDJPY",OP_SELL,lot,Bid,0,Ask+sl*Point,Ask-tp*Point, "Batsasho",1,0,Red);

}

Was sollte ich am Code ändern oder hinzufügen?

Können Sie *** beantworten.

Ich danke Ihnen!

 
alstefanov:

Hallo!

Kann ich Hilfe bekommen? Der Expert Advisor ruftjeden Tick Trades ab. Wie schreibe ich einen Code, um etwa 5 oder nur so viele Gewerke zu entfernen, wie ich möchte?

extern int tp=50;

extern int sl=200;

extern double lot=0.01;

void OnTick()

{

OrderSend("USDJPY",OP_SELL,lot,Bid,0,Ask+sl*Point,Ask-tp*Point, "Batsasho",1,0,Red);

}

Was sollte ich am Code ändern oder hinzufügen?

Können Sie *** beantworten.

Ich danke Ihnen!

extern int tp=50;

extern int sl=200;

extern double lot=0.01;

void OnTick()

{ 

if(OrdersTotal()==0)OrderSend("USDJPY",OP_SELL,lot,Bid,0,Ask+sl*Point,Ask-tp*Point,"Batsasho",1,0,Red);

}
 
Bitte beraten Sie, wie man die Arbeit des EA im Tester zu beschleunigen, damit es schneller getestet werden, der EA verwendet nur einen Indikator
 
missha32 Wie kann ich meinen EA im Strategy Tester schneller machen, er verwendet nur einen Indikator

Verkürzen Sie zunächst das Zeitintervall für die Prüfung. Am besten: 1) die letzten drei Monate. 2) drei Monate mit einem Brexit in der Mitte. Achten Sie darauf, dass Sie nicht alle Zecken testen. Im MT4 gibt es in der Tat keine Ticks in der Historie, und sie werden durch leichte Rucke des Preises nach oben und unten modelliert. Wenn Sie auf zwei Zeitrahmen testen - M15 und M1 - dann sehen Sie, wo es besser ist. Oder, noch besser, nutzen Sie die Demo - starten Sie sie am Montagmorgen und überprüfen Sie das Ergebnis am Freitagabend mit dem bekannten Skript. Wenn wir 100 Expert Advisors testen wollen, öffnen wir 10 Terminals und in jedem Terminal gibt es 10 Charts mit Expert Advisors.

Es ist notwendig, eine Vielzahl von Computern zu haben. Auf einem realen Konto sind 4 $ mit einer Hebelwirkung von 500 ausreichend. Schauen Sie sich ein beliebiges Diagramm an - mit dem richtigen Einstieg können Sie Ihre Einlage innerhalb eines Tages leicht verdoppeln. Und das ist eine Million Mal in einem Monat. Gibt es solche kostenlosen EAs im Internet? Wird jemand so etwas verkaufen? Daher sollte das Geld in Computer investiert werden. Wir sind auf der Suche nach den Einstiegspunkten. Wir schreiben Programme, rechnen in Excel mit den Formeln und Makros und schreiben Skripte und Expert Advisors für Berechnungen. Dann, wenn wir herausgefunden haben, wie wir Einstiegspunkte finden, und dann Roboter, Stops, Schleppnetz, Einzahlung, Einlagen, Abhebungen...

 
STARIJ:

Alles Gute zum Tag des Sieges! Es sind schon 4 Tage vergangen - keine Antwort. Versuchen wir es mal... Die Unzufriedenen schreiben in ihren persönlichen Berichten!!!

Und dann stellte sich die Frage: Wenn es nur zwei Ordnungen gibt. Mit einem großen Los mit negativem Gewinn, mit einem kleineren Los mit positivem Gewinn

Was ist, wenn es nur einen Auftrag gibt? Was ist, wenn alle Aufträge das gleiche Los haben und alle einen negativen Gewinn aufweisen - sollten wir dann einen nach dem anderen schließen?

for(int Ticket=BestellungenGesamt()-1; Ticket>=0; Ticket--) - Dies ist der Code für die Suche nach Marktaufträgen nach Ticket in umgekehrter Reihenfolge (vom letzten geöffneten Auftrag bis zum ersten) - habe ich das richtig verstanden?

Aber "Ticket" funktioniert nicht in Kyrillisch, es muss "Ticket" in Latein sein.

 
Yaroslav Nykula:
for(int Ticket=BestellungenGesamt()-1; Ticket>=0; Ticket--) - dies ist der Code der Marktauftragssuche durch das Ticket in umgekehrter Reihenfolge (vom zuletzt geöffneten zum ersten) - habe ich das richtig verstanden?

Aber "Ticket" auf Kyrillisch funktioniert nicht, Sie brauchen "Ticket" auf Lateinisch.

Ich habe es nicht überprüft, aber es sollte nicht nur auf Kyrillisch, sondern auch auf Chinesisch funktionieren.
 
Vitaly Muzichenko:   Ich habe es nicht überprüft, aber es sollte nicht nur auf Kyrillisch, sondern auch auf Chinesisch funktionieren.
Wenn ich eine neue Sprache lerne, prüfe ich zunächst, ob das Kyrillische das Kyrillische frisst oder ausspuckt. Dieser hier schon. Hier ist das Skript - sehen Sie es sich an.
Dateien:
PROBA.mq4  2 kb
 
Hallo. Die Frage ist: Können wir die Werte der Ticks (die entsprechenden Preise) für eine bestimmte Handelsperiode (d.h. für eine einzelne Kerze) in ein eindimensionales Array laden? Und zwar so, dass das Feld während der Entstehung einer Kerze gebildet wird. Ist das in MQL4 realistisch? Ich wäre Ihnen für Ihr Feedback dankbar.
 
STARIJ:

Alles Gute zum Tag des Sieges!!! Es sind vier Tage vergangen - keine Antwort. Versuchen wir es mal... Unzufriedene Menschen schreiben privat!!!

Und dann kam eine Frage auf: Wenn es nur zwei Aufträge gibt. Mit einem großen Los mit negativem Gewinn, mit einem kleineren Los mit positivem Gewinn

Und wenn es nur einen Auftrag gibt. Und wenn alle Aufträge das gleiche Los haben und alle einen negativen Gewinn aufweisen, sollten wir dann einen nach dem anderen schließen?


Herzlichen Dank! Das ist eine gute Funktion! Diese Funktion sollte aufgerufen werden, wenn die Marge nicht ausreicht, um einen weiteren Auftrag zu eröffnen. Aber ich habe meine Idee nicht richtig ausgedrückt; es stellte sich heraus, dass ich etwas anderes brauchte! Das größte Lot mit dem größten Gewinn aus offenen Positionen und das kleinste Lot mit negativem Gewinn aus offenen Positionen.
Grund der Beschwerde: