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

 
tim2019:
Sie finden also nicht, dass es zu viel ist? Vielleicht sollten sich die Entwickler andere freiberufliche Ressourcen ansehen, um zu verstehen, wie eine benutzerfreundliche Schnittstelle aussehen sollte. Ich konnte nicht einmal die Schaltfläche "Anmelden" auf Anhieb finden. Alles in allem ist es schrecklich.

Nein, das tue ich nicht.

Sie haben sich erst gestern hier angemeldet. Was haben Sie zu verkaufen? Welche Kenntnisse haben Sie für die Ausführung von Aufträgen in der freiberuflichen Dienstleistung auf einem angemessenen Niveau? Nicht auf dem Niveau von "jedes Wie, nur um es rauszuhauen", sondern auf einem Niveau, das dem eines exzellenten, sagen wir mal guten, Entwicklers entspricht?

Oder sollten Sie sich beeilen, bevor Sie Ihre Meinung ändern?

 
Artyom Trishkin:

Nein, das tue ich nicht.

Sie haben sich erst gestern hier angemeldet. Was haben Sie zu verkaufen? Welche Kenntnisse haben Sie, um Aufträge in der freiberuflichen Dienstleistung auf einem angemessenen Niveau auszuführen? Nicht auf dem Niveau von "jedes Wie, nur um es rauszuhauen", sondern auf dem Niveau eines exzellenten, sagen wir mal guten, Entwicklers?

Oder wollen Sie sich beeilen, bevor Sie Ihre Meinung ändern?

Immerhin gibt es einige Standards für die Schnittstelle. Wenn es einen Fehler gab, sollten wir den Benutzer zumindest darüber informieren, um welche Art von Fehler es sich handelt, anstatt ihn zu zwingen, mit der Hartnäckigkeit eines Spechts mehrmals darauf zu hämmern und es erneut herunterzuladen/auszufüllen.

Was hat das mit Wissen oder mit dem, was zu verkaufen ist, zu tun? So weit bin ich noch gar nicht gekommen. Doch leider ist es genau das, was die moderne Welt ausmacht. Er mochte es nicht, schloss es und ging weiter. Das ist nicht unser Wesen. Und alles in allem eine leere Unterhaltung. Ich spreche schief und man redet mir ein, dass es so sein sollte. Ja.

 
tim2019:

Immerhin gibt es einige Schnittstellenstandards. Wenn ein Fehler auftritt, ist es üblich, zumindest anzugeben, um welche Art von Fehler es sich handelt, anstatt den Benutzer zu zwingen, wiederholt mit der Hartnäckigkeit eines Spechts zu picken und erneut herunterzuladen/aufzufüllen.

Was hat das mit Wissen oder mit dem, was zu verkaufen ist, zu tun? So weit bin ich noch gar nicht gekommen. Doch leider ist es genau das, was die moderne Welt ausmacht. Er mochte es nicht, schloss es und ging weiter. Das ist nicht unser Wesen. Und alles in allem eine leere Unterhaltung. Ich spreche schief und man redet mir ein, dass es so sein sollte. Ja.

Ich kenne Leute, die die Verkäuferregistrierung buchstäblich an einem Tag erledigt haben. Aber diese Menschen, und das sieht man ihnen an, sind wissbegierig und haben es nicht eilig. Und ich habe Leute gesehen, die seit Monaten im Forum Fragen stellen, aber nichts von dem tun, was ihnen gesagt und geschrieben wird.

Und um es gleich vorweg zu nehmen, es ist kein Mensch dabei - die Registrierung wird von einem Roboter überwacht. Sie können also lange an seine Tür klopfen und ihm etwas Falsches unterjubeln. Aber es lohnt sich trotzdem, seine Beiträge zu lesen - es sollte alles dabei sein. Leider liegt das alles schon lange zurück, und seither hat sich viel geändert, so dass ich Ihnen im Wesentlichen nicht genau sagen kann, was Ihr Problem ist. Lesen Sie z. B. die Abschnitte in Ihrem Lieferantenprofil:


 

Hilfe bei der Anpassung der Bedingungen für die Eröffnung von Positionen

// открытие продаж

   if(CountSell()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
     
// закрытие продаж
            if(CountSell()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
              
// открытие покупок

   if(CountBuy()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
     
// закрытие покупок    
            if(CountBuy()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])

in Anbetracht der Tatsache, dass die Indikatorparameter in den Roboter eingebaut sind

------------------------------------------------------------------+
//|                                       Test advisor on ZigZag.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                         https:/goga342@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright c 2010, MQL для тебя."
#property link "http://mql4you.ru"
#property strict
extern double lots = 0.01; //
extern int  TakeProfit=60; //
extern int  StopLoss=100; //
extern int Magic=111111111;
extern int Slippage=3;
extern int ExtDepth=12;
extern int ExtDeviation=5;
extern int ExtBackstep=3;

datetime Today=0;
double SL,TP;
int ticket;
//±-----------------------------------------------------------------+
int OnInit()
  {
   if(Digits==3 || Digits==5)
     {
      TakeProfit *=10;
      StopLoss   *=10;
      Slippage   *=10;
     }
   return(INIT_SUCCEEDED);
  }
//±-----------------------------------------------------------------+
int deinit() {return(0);}
//±-----------------------------------------------------------------+
int start()
  {

   if(DayOfWeek()==0 || DayOfWeek()==6) return(0); // в выходные не работаем
   if(!IsTradeAllowed()) return(0); // пропустим тик если терминал занят
                                    //:проверим открытие новой свечи
   if(Time[0]==Today) return(0);
   Today=Time[0];
//:получим значение ZigZag на предыдущей свече
   double lZZ=iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,1);
  
// открытие продаж

   if(CountSell()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
     {
      SL = NormalizeDouble(Bid+StopLoss*Point, Digits);
      TP = NormalizeDouble(Bid-TakeProfit*Point, Digits);
        {

         ticket=OrderSend(Symbol(),OP_SELL,lots,Bid,Slippage,SL,TP,"macd sample",Magic,0,Red);
         if(ticket>0)
           {
            // закрытие продаж
            if(CountSell()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
              {
               for(int i=OrdersTotal()-1; i>=0; i--)
                 {
                  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                    {
                     if(OrderMagicNumber()==Magic && OrderType()==OP_SELL)
                        if(OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,clrNONE))
                           Print("Ошибка открытия ордера на покупку !");
                    }
                 }
              }
           }
        }
     }
// открытие покупок

   if(CountBuy()==0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,0,1)==High[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,0,1)==High[0])
     {
      TP = NormalizeDouble(Ask+TakeProfit*Point, Digits);
      SL = NormalizeDouble(Ask-StopLoss*Point, Digits);
        {
         ticket=OrderSend(Symbol(),OP_BUY,lots,Ask,Slippage,SL,TP,"macd sample",Magic,0,Green);
         if(ticket>0)
           {
            // закрытие покупок    
            if(CountBuy()>0 && iCustom(NULL,0,"ZigZag_Rosh",12,5,3,1,0)==Low[0] && iCustom(NULL,0,"ZigZag_Rosh",48,20,12,1,0)==Low[0])
              {
               for(int i=OrdersTotal()-1; i>=0; i--)
                 {
                  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
                    {
                     if(OrderMagicNumber()==Magic && OrderType()==OP_BUY)
                        if(!OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,clrNONE))
                           Print("Ошибка открытия ордера на продажу!");
                    }
                 }
              }
           }
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
int CountSell()//проверкна открытие ордеров на продажу
  {
   int count=0;

   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_SELL)
           {
            if(OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
int CountBuy()// проверкна открытие ордеров на покупку
  {
   int count=0;

   for(int trade=OrdersTotal()-1; trade>=0; trade--)
     {
      if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType()==OP_BUY)
           {
            if(OrderType()==OP_BUY)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
 
Алексей Тарабанов:

Wenn du nichts verdienen kannst, stiehl.

Ein klassischer Satz aus einem Film, dessen Titel ich nicht mehr weiß: "Wenn du nicht stehlen kannst, lerne zu verdienen.
 
Guten Tag, aus irgendeinem Grund lädt der EA das Terminal. Wie kann man den Fehler erkennen? ((( Danke.
 
rabanik:
Guten Tag, aus irgendeinem Grund lädt der EA das Terminal. Wie kann man den Fehler erkennen? ((( Danke.
Профилирование кода - Разработка программ - MetaTrader 5
Профилирование кода - Разработка программ - MetaTrader 5
  • www.metatrader5.com
Профилирование — это сбор характеристик программы во время ее выполнения. При профилировании замеряется время выполнения и количество вызовов отдельных функций и строк в коде программы. При помощи этого инструмента программист может найти наиболее медленные участки кода и провести их оптимизацию. Профилирование можно проводить на обычном...
 

Guten Tag. Ich habe begonnen, den Expert Advisor auf einem echten Konto zu testen. So etwas habe ich bei Verkaufsaufträgen noch nie gesehen.

 
Lomonosov1991:

Guten Tag. Ich habe begonnen, den Expert Advisor auf einem echten Konto zu testen. So etwas habe ich bei Verkaufsaufträgen noch nie gesehen.

Schauen Sie in der Zeitschrift "Experten" nach

 

Einen guten Tag an Sie alle! Leute, gut beraten, wenn jemand weiß.

Dies ist der Code, den Sie verwenden können, um die aktuellen Preise zu erhalten.

void OnTick()
  {
   MqlTick last_tick;
//---
   if(SymbolInfoTick(Symbol(),last_tick))
     {
      Print(last_tick.time,": Bid = ",last_tick.bid,
            " Ask = ",last_tick.ask,"  Volume = ",last_tick.volume);
     }
   else 
      Print("SymbolInfoTick() failed, error = ",GetLastError());
//---
  }

Frage:

Wie kann man das richtig anbringen?

bool  SymbolInfoTick(
   string    symbol,     // символ
   MqlTick&  tick        // ссылка на структуру
   );

Gut, dass es möglich war, die aktuellen Kurse in einem Expert Advisor für mehrere Währungspaare zu erhalten.

Nun, ich bin nicht gut im Programmieren, also versuche ich, es herauszufinden!