Ich schreibe kostenlos einen Ratgeber - Seite 156

 
Valeriy Yastremskiy #:

Wenn Sie im Tester beobachten wollen, können Sie den Test für eine spätere Zeit als die tatsächliche Zeit entfernen. Dies geschieht in OnInit. Und ich erinnere mich nicht, ob in 4ka im Tester eine Zeitanfrage genau die Testerzeit zurückgibt. Ich denke, es wird die aktuelle Zeit zurückgeben, so dass im Tester nur Bestellungen auf einmal aufgegeben werden und das war's. Auch bei der Abfrage der Ortszeit wird die aktuelle Ortszeit angezeigt.

Es ist in der 5k im Tester eine komplette Umgebung Emulator.

Danke für die Klarstellung

 
Der vorherige hat leider nicht gepasst. Nach einem genaueren Blick auf die Codebasis habe ich fast genau das gefunden, was ich brauche

https://www.mql5.com/ru/code/10236

//+------------------------------------------------------------------+
//|                                                    i`lbeback.mq4 |
//|                                Copyright ? 2011, AM2 && Tiburond |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright ? 2011, AM2 && Tiburond"
#property link      "http://www.forexsystems.biz"

#define MAGIC  20110406

extern int  StopLoss    = 1300;   //???????? ??????
extern int  StartHour   = 21;     //??? ?????? ????????(???????????? ?????)
extern int  Distance    = 250;    //?????????? ?? ???? ??? ????????? ??????
extern int  Step        = 50;     //??? ????????? ???????
extern int  Count       = 4;      //?????????? ??????????????? ???????
extern int  Expiration  = 4;      //????? ????????? ??????
extern double  Lots     = 1;      //???
extern bool  MM         = true;   //?????????? ???????????????
extern double  TSP      = 5;      //????
extern bool  BU         = true;   //?????????? ?????? ??????? ? ????????? ? ??????? ???
extern int  BUHour      = 2;      //??? ????? ??????? ??????? ??????? ? ?????????

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int  init()
  {
//----
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int  deinit()
  {
//----
  
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int  start()
  {
   int  b=0,s=0,res;
   datetime  expiration = TimeCurrent()+3600*Expiration;
   double  BuyPrice=fND(Open[0]-Distance*Point);
   double  SellPrice=fND(Open[0]+Distance*Point);  
   for (int  i=OrdersTotal()-1;i>=0;i--)
     {
      if (OrderSelect(i, SELECT_BY_POS))
        {  
         if (OrderSymbol()!=Symbol() || OrderMagicNumber()!=MAGIC) continue;
         if (OrderType()==OP_BUYLIMIT) b++;
         if (OrderType()==OP_SELLLIMIT) s++;
        }  
     }
   if (Hour()>BUHour && Hour()<StartHour && AllProfit()>0) ClosePositions();
   if (Hour()>BUHour && DayOfWeek() == 5) ClosePositions();  
   if (Hour()==StartHour && b<1 && DayOfWeek() != 5)
   for(i=1;i<=Count;i++)
    {
     {              
      res=OrderSend(Symbol(),OP_BUYLIMIT,fLots(),fND(Ask-(Distance*Point+i*Step*Point)),3,fND(BuyPrice-StopLoss*Point),fND(Open[0]),"",MAGIC,expiration,Blue);      
      Sleep(3000);
      if(res<0)
         {
            Print("??????: ",GetLastError());
         } else {
            RefreshRates();
         }    
     }
    }
        
   if (Hour()==StartHour && s<1 && DayOfWeek() != 5)
   for(i=1;i<=Count;i++)
    {  
     {              
      res=OrderSend(Symbol(),OP_SELLLIMIT,fLots(),fND(Bid+(Distance*Point+i*Step*Point)),3,fND(SellPrice+StopLoss*Point),fND(Open[0]),"",MAGIC,expiration,Red );
      Sleep(3000);
      if(res<0)
         {
            Print("??????: ",GetLastError());
         } else {
            RefreshRates();
         }    
     }
    }    
//----  
   return(0);
  }
//+------------------------------------------------------------------+
double  fND(double  d, int  n=-1)
  {  
   if (n<0) return(NormalizeDouble(d, Digits));
   return(NormalizeDouble(d, n));
  }
//+------------------------------------------------------------------+
double  fLots()
  {
   double  lot=Lots;
   double  lot_min =MarketInfo( Symbol(), MODE_MINLOT  );
   double  lot_max =MarketInfo( Symbol(), MODE_MAXLOT  );
   if (MM)
     {
      double  lot_step =MarketInfo( Symbol(), MODE_LOTSTEP );
      double  lotcost =MarketInfo( Symbol(), MODE_TICKVALUE );      
      double  dollarsPerPip=0.0;

      lot = AccountFreeMargin()*TSP/100.0;
      dollarsPerPip=lot/StopLoss;
      lot=fND(dollarsPerPip/lotcost, 2);      
      lot=fND(lot/lot_step, 0) * lot_step;
     }
   if (lot<lot_min) lot=lot_min;
   if (lot>lot_max) lot=lot_max;
   return(lot);
  }
//+------------------------------------------------------------------+
void  ClosePositions()
  {
   if(BU)
   for (int  i=OrdersTotal()-1;i>=0;i--)
    {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() == Symbol())
       {
         if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
          {
            if (OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, 3, Blue);
            if (OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Red);
          }
         Sleep(1000);
      }
    }
  }
//+------------------------------------------------------------------+
double  AllProfit()
  {
   double  Profit = 0;
   for (int  i=OrdersTotal()-1;i>=0;i--)
    {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if (OrderSymbol() != Symbol() || OrderMagicNumber() != MAGIC) continue;
      if (OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)
         if (OrderType() == OP_BUY || OrderType() == OP_SELL) Profit += OrderProfit();
    }
   return (Profit);
  }
//+------------------------------------------------------------------+


Bitte helfen Sie mir, Korrekturen vorzunehmen. Dieser EA schließt die offenen Aufträge nicht zwangsweise. Ich möchte die Zeit der Zwangsschließung zusammen mit der Zeit der Grenzwerteinstellung einstellen können.
Ich brauche TP und trall, um sie zu optimieren. Ein Trall, so dass alle Grenzen auf eine kleine Art und Weise geschlossen werden würden, aber sammeln nächtlichen Lärm.
Советник по стратегии "Возврат".
Советник по стратегии "Возврат".
  • www.mql5.com
Ночной скальпер. EURUSD H1.
 
Hallo. Wer kann mit einem EA für MT4 helfen. Ich brauche einen EA ohne Tricks, um manuell erteilte Aufträge (mit oder ohne Magie) zu verfolgen. Wenn eine Order bei einem Stop Loss geschlossen wird, öffnet der EA eine neue Order in der gleichen Richtung mit einem bestimmten Lot, SL und TP.Wenn eine Order bei einem Take Profit geschlossen wird, öffnet der EA eine neue Order in der entgegengesetzten Richtung mit einem bestimmten Lot, SL und TP. Vielleicht gibt es einige fertige Lösungen, ich habe nichts gefunden. Vielen Dank im Voraus.
 
Anton Yakovlev:
Wenn Sie eine gute Strategie haben und bereit sind, sie zu teilen, kann ich einen EA schreiben.
Hallo, ich brauche einen Indikator, der auf der Grundlage von Kerzenbewegungen (Muster) arbeitet. ist es möglich, es zu schreiben, wie viel und wie Sie Ihre Anfrage übergeben.
 
Hallo!
Können Sie einen Pips-Advisor für mt4 schreiben?
Strategie:
Setzen Sie 2 unterschiedlich ausgerichtete Kauf-Limit-/Verkaufs-Limit-Aufträge in einem Abstand von X mit Stop, Take, Trawl.
Zum Beispiel:
Wenn der Kurs eines der Limits berührt und diesen Auftrag mit Stop oder Take schließt, wird das gegenüberliegende Limit annulliert und es werden wieder 2 unterschiedlich ausgerichtete Limits gesetzt.
EA-Parameter:
Los
Stopp
Nehmen Sie
Schleppnetz
Grenzabstände
Magie
Schlupf
 
Ivan Bielyi #:
Setzen von 2 unterschiedlich ausgerichteten Kauf-Limit-/Verkaufs-Limit-Orders mit einem Spread-Limit auf

Wie begrenze ich den Spread bei Limit-Aufträgen?

 
Evgeny Belyaev #:

Und wie kann man die Streuung bei Begrenzern begrenzen?

Wenn der Spread z.B. höher als 5 Pips ist, sollten Sie keine Pending Orders platzieren, aber wenn es zu problematisch ist, können Sie diesen Parameter auch weglassen.
 
Ivan Bielyi #:
Ich meine, wenn der Spread höher als 5 Punkte ist, sollten wir keine Pending Orders platzieren, aber wenn es sehr problematisch ist, können wir diesen Parameter auslassen.

Was soll das bringen? Sie werden jetzt nicht ausgeführt (es handelt sich um Grenzwerte). Und wenn es dann an der Zeit ist, den Auftrag auszuführen, wird die Spanne ganz anders aussehen.

 
Evgeny Belyaev #:

Was soll das bringen? Sie werden jetzt nicht ausgeführt (es handelt sich um Grenzwerte). Und wenn es dann an der Zeit ist, den Auftrag auszuführen, wird die Spanne ganz anders aussehen.

Dumm, dann eben ohne diesen Parameter)))
 
Daniil Osipov #:
Was sie als Grundlage nimmt und wie komplex der Algorithmus ist.

Ermittelt den Trend des gleitenden Durchschnitts

TrendUp := MAvg[1]>TrendUp[1] ? max(Up,TrendUp[1]) : Up